rdblue commented on code in PR #9717:
URL: https://github.com/apache/iceberg/pull/9717#discussion_r1495053841


##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -3324,6 +3348,217 @@ components:
           type: integer
           format: int64
 
+    BooleanTypeValue:
+      type: boolean
+      example: true
+
+    IntegerTypeValue:
+      type: integer
+      example: 42
+
+    LongTypeValue:
+      type: integer
+      format: int64
+      example: 9223372036854775807
+
+    FloatTypeValue:
+      type: number
+      format: float
+      example: 3.14
+
+    DoubleTypeValue:
+      type: number
+      format: double
+      example: 123.456
+
+    DecimalTypeValue:
+      type: string
+      description:
+        "Decimal type values are serialized as strings. Decimals with a 
positive scale serialize as numeric plain 
+        text, while decimals with a negative scale use scientific notation and 
the exponent will be equal to 
+        the negated scale"
+      example:
+        positiveScale: "123.4500"
+        zeroScale: "2"
+        negativeScale: "2E+20"
+
+    StringTypeValue:
+      type: string
+      example: "hello"
+
+    UUIDTypeValue:
+      type: string
+      format: uuid
+      description:
+        "UUID type values are serialized as a lowercase string"
+      example: "eb26bdb1-a1d8-4aa6-990e-da940875492c"
+
+    DateTypeValue:
+      type: string
+      format: date
+      description:
+        "Date type values follow the `YYYY-MM-DD` ISO-8601 standard date 
format"
+      example: "2007-12-03"
+
+    TimeTypeValue:
+      type: string
+      description:
+        "Time type values follow the `HH:MM[:SS[.sssssssss]]` ISO-8601 format 
with microsecond precision"
+      example: "22:31:08.123456"
+
+    TimestampTypeValue:
+      type: string
+      description:
+        "Timestamp type values follow the 
'YYYY-MM-DDTHH:MM[:SS[.sssssssss]][+00:00]' ISO-8601 format with microsecond 
+        precision. Timestamps that adjust to UTC include a `+00:00` offset. 
Without this offset, the format implies 
+        local time"
+      example:
+        withoutTimezone: "2007-12-03T10:15:30"
+        withTimezone: "2007-12-03T10:15:30+00:00"
+        withFractionalSeconds: "2007-03-25T12:34:56.123456"
+
+    FixedTypeValue:
+      type: string
+      description:
+        "Fixed length type values are stored and serialized as a hexadecimal 
string preserving the fixed length"
+      example: "000102ff"
+
+    BinaryTypeValue:
+      type: string
+      description:
+        "Binary type values are stored and serialized as a hexadecimal string"
+      example: "000102ff"
+
+    MapTypeValue:
+      type: object
+      description:
+        "A map structure serialized with keys and values arrays that maintain 
type"
+      properties:
+        keys:
+          type: array
+          items:
+            $ref: '#/components/schemas/TypeValue'
+        values:
+          type: array
+          items:
+            $ref: '#/components/schemas/TypeValue'
+      example:
+        {
+          keys: [ 1, 2 ],
+          values: [ "foo", "bar" ]
+        }
+
+    StructTypeValue:
+      type: object
+      description:
+        "Struct type are serialized, where field id are preserved as a string 
JSON key, and the fields value is 
+        serialized based on the defined type, supporting a deep serialization 
of nested structures"
+      additionalProperties:
+        oneOf:
+          - $ref: '#/components/schemas/TypeValue'
+      example:
+        {
+          "4": 1,
+          "5": "bar"
+        }
+
+    ListTypeValue:
+      type: array
+      description:
+        "A list of elements, where each element is serialized according to its 
specific type logic"
+      items:
+         $ref: '#/components/schemas/TypeValue'
+      example: [1, 2, 3]
+
+    PrimitiveTypeValue:
+      oneOf:
+        - $ref: '#/components/schemas/BooleanTypeValue'
+        - $ref: '#/components/schemas/IntegerTypeValue'
+        - $ref: '#/components/schemas/LongTypeValue'
+        - $ref: '#/components/schemas/FloatTypeValue'
+        - $ref: '#/components/schemas/DoubleTypeValue'
+        - $ref: '#/components/schemas/DecimalTypeValue'
+        - $ref: '#/components/schemas/StringTypeValue'
+        - $ref: '#/components/schemas/UUIDTypeValue'
+        - $ref: '#/components/schemas/DateTypeValue'
+        - $ref: '#/components/schemas/TimeTypeValue'
+        - $ref: '#/components/schemas/TimestampTypeValue'
+        - $ref: '#/components/schemas/FixedTypeValue'
+        - $ref: '#/components/schemas/BinaryTypeValue'
+
+    TypeValue:
+      oneOf:
+        - $ref: '#/components/schemas/PrimitiveTypeValue'
+        - $ref: '#/components/schemas/MapTypeValue'
+        - $ref: '#/components/schemas/StructTypeValue'
+        - $ref: '#/components/schemas/ListTypeValue'
+
+    FileContent:
+      type: string
+      enum:
+        - data
+        - position-deletes
+        - equality-deletes
+
+    FileFormat:
+      type: string
+      enum:
+        - avro
+        - orc
+        - parquet
+
+    ContentFile:

Review Comment:
   I think it would be better to have `DataFile` and `DeleteFile` subtypes 
based on this, the same way that we have `BaseUpdate` and subtypes.
   
   That way we would not need to have `equality-field-ids` for data files. We 
may also want to omit parts of `ContentFile` for the `DeleteFile` types. For 
example, delete files have value counts and lower/upper bounds. But I'm 
skeptical it would ever be worth sending them. The stats for delete files are 
used to match them to data files and aren't needed on the client side.
   
   And for this PR, you'd only need `DataFile`.



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to