rdblue opened a new pull request, #18225:
URL: https://github.com/apache/iceberg/pull/18225
This updates inheritance from #18171 to handle first row ID assignment.
First row ID assignment required distinguishing between uncommitted and
committed in `V4ManfiestReader`. When reading committed files, a first row ID
is always present for v3 and later snapshots or always null for v2 and earlier
snapshots. Uncommitted files may be read during a commit to compact or rewrite
leaf manifests. First row ID should be unchanged when reading these uncommitted
files because there is no manifest-level first row ID to assign from.
This also handles snapshot ID and sequence number inheritance when reading
uncommitted files. In the v3 and earlier `ManifestReader`, this was handled by
using `InheritableManifestFactory.forCopy`, but there is no need for a separate
path.
Test plan:
- In `TestTrackingStruct`:
- Test each entry status with first row ID inheritance
- Test both missing/null and existing first row ID values with non-null
next row ID
- Test null next row ID for pre-v3 snapshots
- In `TestV4ManifestReader`:
- Rely on assignment behavior from `TrackingStruct` validated in
`TestTrackingStruct`
- Test both committed and uncommitted cases for first row ID
- Test existing first row ID, unassigned first row ID
- Test null first row ID from the manifest for pre-v3 snapshots
- Add tests for snapshot ID, sequence number when reading uncommitted
manifests
--
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]