diff --git a/format/spec.md b/format/spec.md index e6f9e0425b01..c6d12b1747c5 100644 --- a/format/spec.md +++ b/format/spec.md @@ -1881,8 +1881,8 @@ The binary single-value serialization can be used to store the lower and upper b | **`timestamptz_ns`** | **`JSON string`** | `"2017-11-16T22:31:08.123456789+00:00"` | Stores ISO-8601 standard timestamp with nanosecond precision; must include a zone offset and it must be '+00:00' | | **`string`** | **`JSON string`** | `"iceberg"` | | | **`uuid`** | **`JSON string`** | `"f79c3e09-677c-4bbd-a479-3f349cb785e7"` | Stores the lowercase uuid string | -| **`fixed(L)`** | **`JSON string`** | `"000102ff"` | Stored as a hexadecimal string | -| **`binary`** | **`JSON string`** | `"000102ff"` | Stored as a hexadecimal string | +| **`fixed(L)`** | **`JSON string`** | `"000102FF"` | Stored as a hexadecimal string; writers should emit uppercase, readers must accept either case | +| **`binary`** | **`JSON string`** | `"000102FF"` | Stored as a hexadecimal string; writers should emit uppercase, readers must accept either case | | **`struct`** | **`JSON object by field ID`** | `{"1": 1, "2": "bar"}` | Stores struct fields using the field ID as the JSON field name; field values are stored using this JSON single-value format | | **`list`** | **`JSON array of values`** | `[1, 2, 3]` | Stores a JSON array of values that are serialized using this JSON single-value format | | **`map`** | **`JSON object of key and value arrays`** | `{ "keys": ["a", "b"], "values": [1, 2] }` | Stores arrays of keys and values; individual keys and values are serialized using this JSON single-value format | diff --git a/open-api/rest-catalog-open-api.py b/open-api/rest-catalog-open-api.py index ad3eed00439b..8b900d8db0da 100644 --- a/open-api/rest-catalog-open-api.py +++ b/open-api/rest-catalog-open-api.py @@ -1203,7 +1203,7 @@ class TimestampTzNanoTypeValue(RootModel[str]): class FixedTypeValue(RootModel[str]): root: str = Field( ..., - description='Fixed length type values are stored and serialized as an uppercase hexadecimal string preserving the fixed length', + description='Fixed length type values are stored and serialized as a hexadecimal string preserving the fixed length. Writers should emit uppercase hexadecimal characters; readers must accept either case', examples=['78797A'], ) @@ -1211,7 +1211,7 @@ class FixedTypeValue(RootModel[str]): class BinaryTypeValue(RootModel[str]): root: str = Field( ..., - description='Binary type values are stored and serialized as an uppercase hexadecimal string', + description='Binary type values are stored and serialized as a hexadecimal string. Writers should emit uppercase hexadecimal characters; readers must accept either case', examples=['78797A'], ) diff --git a/open-api/rest-catalog-open-api.yaml b/open-api/rest-catalog-open-api.yaml index 2064e670a46c..712edae8ee5d 100644 --- a/open-api/rest-catalog-open-api.yaml +++ b/open-api/rest-catalog-open-api.yaml @@ -5463,14 +5463,17 @@ components: FixedTypeValue: type: string description: - "Fixed length type values are stored and serialized as an uppercase hexadecimal string - preserving the fixed length" + "Fixed length type values are stored and serialized as a hexadecimal string + preserving the fixed length. Writers should emit uppercase hexadecimal + characters; readers must accept either case" example: "78797A" BinaryTypeValue: type: string description: - "Binary type values are stored and serialized as an uppercase hexadecimal string" + "Binary type values are stored and serialized as a hexadecimal string. + Writers should emit uppercase hexadecimal characters; readers must accept + either case" example: "78797A" CountMap: