The GitHub Actions job "Java CI" on iceberg.git/nested_field_fix2 has succeeded.
Run started by GitHub user shangxinli (triggered by shangxinli).

Head commit for run:
71f20d99126fbf9581abf3d26ba2287a9476ac7f / Xinli Shang <[email protected]>
Add nested column schema support in DeleteFilter file projection

This commit resolves the TODO in DeleteFilter.fileProjection() that
previously prevented equality deletes from working with nested columns.

The original code used tableSchema.asStruct().field(fieldId) which only
finds top-level fields, causing 'Cannot find required field for ID X'
errors when equality delete files referenced nested fields.

Changes:
- Use Schema.findColumnName() to get full column path for nested fields
- Use Schema.select() to preserve nested structure in projection
- Separate data column IDs from metadata column IDs to avoid passing
  metadata column names to Schema.select()
- Add metadata columns explicitly after projection (they don't exist in 
tableSchema)
- Add MetadataColumns.metadataColumns() to expose metadata columns dynamically
- Add test coverage for nested columns and metadata columns

Fix DeleteFilter projection to preserve requested schema column order

The previous implementation used Schema.select() which returns columns
in the original table schema order, not the requested order. This caused
TestSparkReaderDeletes.testEqualityDeleteWithDifferentScanAndDeleteColumns
to fail because it expected columns in the requested schema order.

The fix directly builds the schema by:
1. Adding requested schema columns first (preserves order)
2. Appending missing fields needed for equality deletes
3. Appending metadata columns

This ensures the final projection maintains the requested schema's
column ordering while still including all fields required for
delete filtering.

Report URL: https://github.com/apache/iceberg/actions/runs/20412969640

With regards,
GitHub Actions via GitBox

Reply via email to