rdblue commented on code in PR #10981: URL: https://github.com/apache/iceberg/pull/10981#discussion_r1768951335
##########
format/spec.md:
##########
@@ -1117,27 +1136,28 @@ Schemas are serialized as a JSON object with the same
fields as a struct in the
Types are serialized according to this table:
-|Type|JSON representation|Example|
-|--- |--- |--- |
-|**`boolean`**|`JSON string: "boolean"`|`"boolean"`|
-|**`int`**|`JSON string: "int"`|`"int"`|
-|**`long`**|`JSON string: "long"`|`"long"`|
-|**`float`**|`JSON string: "float"`|`"float"`|
-|**`double`**|`JSON string: "double"`|`"double"`|
-|**`date`**|`JSON string: "date"`|`"date"`|
-|**`time`**|`JSON string: "time"`|`"time"`|
-|**`timestamp, microseconds, without zone`**|`JSON string:
"timestamp"`|`"timestamp"`|
-|**`timestamp, microseconds, with zone`**|`JSON string:
"timestamptz"`|`"timestamptz"`|
-|**`timestamp, nanoseconds, without zone`**|`JSON string:
"timestamp_ns"`|`"timestamp_ns"`|
-|**`timestamp, nanoseconds, with zone`**|`JSON string:
"timestamptz_ns"`|`"timestamptz_ns"`|
-|**`string`**|`JSON string: "string"`|`"string"`|
-|**`uuid`**|`JSON string: "uuid"`|`"uuid"`|
-|**`fixed(L)`**|`JSON string: "fixed[<L>]"`|`"fixed[16]"`|
-|**`binary`**|`JSON string: "binary"`|`"binary"`|
-|**`decimal(P, S)`**|`JSON string: "decimal(<P>,<S>)"`|`"decimal(9,2)"`,<br
/>`"decimal(9, 2)"`|
-|**`struct`**|`JSON object: {`<br /> `"type": "struct",`<br
/> `"fields": [ {`<br /> `"id": <field id
int>,`<br /> `"name": <name string>,`<br
/> `"required": <boolean>,`<br
/> `"type": <type JSON>,`<br
/> `"doc": <comment string>,`<br
/> `"initial-default": <JSON encoding of default
value>,`<br /> `"write-default": <JSON encoding of
default value>`<br /> `}, ...`<br /> `]
}`|`{`<br /> `"type": "struct",`<br /> `"fields": [ {`<br
/> `"id": 1,`<br /> `"name":
"id",`<br /> `"required": true,`<br
/> `"type": "uuid",`<br
/> `"initial-default":
"0db3e2a8-9d1d-42b9-aa7b-74ebe558dceb",`<br
/> `"write-default": "ec5911be
-b0a7-458c-8438-c9a3e53cffae"`<br /> `}, {`<br
/> `"id": 2,`<br /> `"name":
"data",`<br /> `"required": false,`<br
/> `"type": {`<br
/> `"type": "list",`<br
/> `...`<br /> `}`<br
/> `} ]`<br />`}`|
-|**`list`**|`JSON object: {`<br /> `"type": "list",`<br
/> `"element-id": <id int>,`<br /> `"element-required":
<bool>`<br /> `"element": <type JSON>`<br />`}`|`{`<br
/> `"type": "list",`<br /> `"element-id": 3,`<br
/> `"element-required": true,`<br /> `"element":
"string"`<br />`}`|
-|**`map`**|`JSON object: {`<br /> `"type": "map",`<br
/> `"key-id": <key id int>,`<br /> `"key": <type
JSON>,`<br /> `"value-id": <val id int>,`<br
/> `"value-required": <bool>`<br /> `"value": <type
JSON>`<br />`}`|`{`<br /> `"type": "map",`<br
/> `"key-id": 4,`<br /> `"key": "string",`<br
/> `"value-id": 5,`<br /> `"value-required": false,`<br
/> `"value": "double"`<br />`}`|
+| Type | JSON representation
| Example
|
+|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **`boolean`** | `JSON string: "boolean"`
| `"boolean"`
|
+| **`int`** | `JSON string: "int"`
| `"int"`
|
+| **`long`** | `JSON string: "long"`
| `"long"`
|
+| **`float`** | `JSON string: "float"`
| `"float"`
|
+| **`double`** | `JSON string: "double"`
| `"double"`
|
+| **`date`** | `JSON string: "date"`
| `"date"`
|
+| **`time`** | `JSON string: "time"`
| `"time"`
|
+| **`timestamp, microseconds, without zone`** | `JSON string: "timestamp"`
| `"timestamp"`
|
+| **`timestamp, microseconds, with zone`** | `JSON string: "timestamptz"`
|
`"timestamptz"`
|
+| **`timestamp, nanoseconds, without zone`** | `JSON string: "timestamp_ns"`
|
`"timestamp_ns"`
|
+| **`timestamp, nanoseconds, with zone`** | `JSON string:
"timestamptz_ns"`
| `"timestamptz_ns"`
|
+| **`string`** | `JSON string: "string"`
| `"string"`
|
+| **`uuid`** | `JSON string: "uuid"`
| `"uuid"`
|
+| **`fixed(L)`** | `JSON string: "fixed[<L>]"`
| `"fixed[16]"`
|
+| **`binary`** | `JSON string: "binary"`
| `"binary"`
|
+| **`decimal(P, S)`** | `JSON string:
"decimal(<P>,<S>)"`
| `"decimal(9,2)"`,<br />`"decimal(9, 2)"`
|
+| **`struct`** | `JSON object: {`<br
/> `"type": "struct",`<br /> `"fields": [ {`<br
/> `"id": <field id int>,`<br
/> `"name": <name string>,`<br
/> `"required": <boolean>,`<br
/> `"type": <type JSON>,`<br
/> `"doc": <comment string>,`<br
/> `"initial-default": <JSON encoding of default
value>,`<br /> `"write-default": <JSON encoding of
default value>`<br /> `}, ...`<br /> `] }` |
`{`<br /> `"type": "struct",`<br /> `"fields": [ {`<br
/> `"id": 1,`<br /> `"name":
"id",`<br /> `"required": true,`<br
/> `"type": "uuid",`<br
/> `"initial-default":
"0db3e2a8-9d1d-42b9-aa7b-74ebe558dceb",`<br /> &nb
sp; `"write-default": "ec5911be-b0a7-458c-8438-c9a3e53cffae"`<br
/> `}, {`<br /> `"id": 2,`<br
/> `"name": "data",`<br
/> `"required": false,`<br
/> `"type": {`<br
/> `"type": "list",`<br
/> `...`<br /> `}`<br
/> `} ]`<br />`}` |
+| **`list`** | `JSON object: {`<br
/> `"type": "list",`<br /> `"element-id": <id int>,`<br
/> `"element-required": <bool>`<br /> `"element": <type
JSON>`<br />`}`
| `{`<br /> `"type": "list",`<br /> `"element-id": 3,`<br
/> `"element-required": true,`<br /> `"element":
"string"`<br />`}`
|
+| **`map`** | `JSON object: {`<br
/> `"type": "map",`<br /> `"key-id": <key id int>,`<br
/> `"key": <type JSON>,`<br /> `"value-id": <val id
int>,`<br /> `"value-required": <bool>`<br /> `"value":
<type JSON>`<br />`}`
| `{`<br /> `"type": "map",`<br /> `"key-id":
4,`<br /> `"key": "string",`<br /> `"value-id": 5,`<br
/> `"value-required": false,`<br /> `"value":
"double"`<br />`}`
|
+| **`geometry(C, E)`** | `JSON object: {`<br
/> `"type": "geometry",`<br /> `"crs": <C>,`<br
/> `"edges": <E>`<br />`}`
| `{`<br /> `"type":
"geometry",`<br /> `"crs": "my.crs.table.property",`<br
/> `"edges": "planar"`<br />`}`
|
Review Comment:
I think the example should be a well-known CRS, like `OGC:CRS84`. We should
also add a _note_ that states that implementations are encouraged to store the
PROJJSON representation of the CRS in a table property using the ID from this
field.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
