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

   ## Summary
   - Preserve physical `_row_id` and `_last_updated_sequence_number` values 
when inheritance constants are missing.
   - Inherit `_last_updated_sequence_number` from the file data sequence number 
without requiring a base row ID.
   - Add focused Avro, Parquet, ORC, and Arrow reader tests.
   
   ## Problem
   Row-lineage readers used null readers when fallback constants were missing. 
That could drop physical non-null lineage values already stored in files. The 
last-updated reader path also required a base row ID before applying the file 
data sequence number, even though `_last_updated_sequence_number` inheritance 
is based on the file sequence number, not row ID assignment.
   
   ## Spec Basis
   - The format spec says missing row-lineage columns are read as null values.
   - If `_last_updated_sequence_number` is null, readers assign the data file 
manifest-entry `sequence_number`.
   - If `_row_id` is null, readers assign `first_row_id + _pos`; when 
`first_row_id` is null, inherited row IDs remain null, but existing rows still 
inherit `_last_updated_sequence_number` from their containing data file.
   
   ## Testing
   - `JAVA_HOME=/Users/gangwu/.sdkman/candidates/java/17.0.18-zulu ./gradlew 
spotlessApply :iceberg-core:test --tests 
org.apache.iceberg.avro.TestValueReaders :iceberg-parquet:test --tests 
org.apache.iceberg.parquet.TestParquetValueReaders :iceberg-arrow:test --tests 
org.apache.iceberg.arrow.vectorized.TestVectorizedArrowReader :iceberg-orc:test 
--tests org.apache.iceberg.orc.TestOrcValueReaders`
   
   ---
   **AI Disclosure**
   - Model: [unknown - human to fill in]
   - Platform/Tool: OpenAI Codex
   - Human Oversight: [unknown - human to fill in]
   - Prompt Summary: Fix row-lineage reader inheritance and physical value 
preservation.
   


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