kamcheungting-db opened a new pull request, #975:
URL: https://github.com/apache/iceberg-cpp/pull/975

   ## Summary
   
   Make core `DataFile` JSON compatible with Java Iceberg.
   
   This PR only changes `DataFile` JSON behavior. Core `FileScanTask` serde is 
added separately in #939.
   
   ## Changes with examples
   
   ### Partition data
   
   Continue accepting positional arrays:
   
   ```json
   "partition": [7]
   ```
   
   Also accept Java field-ID objects, which do not depend on field order:
   
   ```json
   "partition": {"1000": 7}
   ```
   
   ### Binary metadata
   
   Write binary values as Java-compatible hexadecimal strings:
   
   ```json
   "key-metadata": "0A0B"
   "lower-bounds": {"keys": [1], "values": ["01000000"]}
   ```
   
   Previously these values were written as JSON byte arrays.
   
   ### Content names
   
   Accept both current lowercase values and older Java enum-style values:
   
   ```json
   "content": "position-deletes"
   "content": "POSITION_DELETES"
   ```
   
   ### Integers
   
   Reject values that are not actual, in-range JSON integers. For example:
   
   ```json
   "record-count": 1.5
   ```
   
   Previously generic JSON conversion could coerce this to `1`.
   
   The parser also accepts a missing `partition`, accepts null metric maps, 
rejects duplicate metric keys, and validates partition value types during 
serialization.
   
   ## Stack
   
   This is **2 of 4** and depends on #974:
   
   1. Move `DataFile` serde into core (#974)
   2. **This PR:** Java-compatible `DataFile` JSON
   3. Add core `FileScanTask` serde (#939)
   4. Validate schema and partition IDs strictly (#940)
   
   Each PR targets `main`; later PRs contain the commits from earlier PRs.
   
   ## Testing
   
   - `DataFile` focused tests: 23 passed across core and REST.
   - Full stack: 142 JSON serde tests passed.
   - Full stack: 332 REST tests passed; 1 existing test skipped.


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

Reply via email to