geruh opened a new pull request, #9717:
URL: https://github.com/apache/iceberg/pull/9717

   Let's split the REST API changes from the implementation, since there is 
some overlap with the rest scan API. We are now serializing DataFiles using the 
[ContentFileParser](https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/ContentFileParser.java#L55)
 and passing them to the service. ContentFileParser requires passing additional 
information like the `Schema` and `PartitionSpec` of the table to successfully 
round trip the updates and apply them to a table. With this approach, the 
updates will follow this structure:
   
   ```
   {
     "requirements": [
       {
         "type": "assert-table-uuid",
         "uuid": "b9903b7a-aac4-46d3-af55-953b88bebe67"
       }
     ],
     "updates": [
       {
         "action": "append-data-files",
         "added-data-files": [
           {
             "spec-id": 0,
             "content": "DATA",
             "file-path": "/path/to/data-a.parquet",
             "file-format": "PARQUET",
             "partition": {
               "1000": 0
             },
             "file-size-in-bytes": 10,
             "record-count": 2,
             "sort-order-id": 0
           }
         ],
         "schema": {
           "type": "struct",
           "schema-id": 0,
           "fields": [
             {
               "id": 1,
               "name": "id",
               "required": true,
               "type": "int"
             },
             {
               "id": 2,
               "name": "data",
               "required": true,
               "type": "string"
             }
           ]
         },
         "spec": {
           "spec-id": 0,
           "fields": [
             {
               "name": "id_bucket",
               "transform": "bucket[16]",
               "source-id": 1,
               "field-id": 1000
             }
           ]
         }
       }
     ]
   }
   
   ```
   
   Furthermore, this change includes the models for the 
[SIngleValueParser](https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/SingleValueParser.java#L43)
 which is used to serialize the partition field of a DataFile.
   
   These model changes are stemming from the conversation here: 
https://github.com/apache/iceberg/pull/9292
   
   cc @jackye1995 @rdblue @danielcweeks @rahil-c
   
   ### Testing
   OpenAPI: ran make install, make lint, make generate


-- 
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