fallintoplace opened a new pull request, #1937: URL: https://github.com/apache/iceberg-go/pull/1937
## What changed 🔥 - **Collect target data-file paths per position-delete file** from the scan tasks. - **Read only `file_path` and `pos`** from position-delete Parquet files. - **Push a bounded `file_path IN (...)` predicate** into existing Parquet row-group stats and bloom-filter pruning. - **Filter rows while accumulating batches**, so unrelated data-file paths do not create position builders. - Keep the existing whole-file fallback when a task has no usable data-file path. - Keep the existing result shape and validation for dictionary-encoded and reordered delete columns. ## Benchmark 📊 Apple M1 Pro, Go 1.26.3. The file has **1,000 sorted data-file paths** and **1,024 delete rows per path**, with one row group per path. | Target paths | All paths | Target paths | | --- | --- | --- | | 1 | 59.6 ms, 172.5 MB, 201k allocs | 5.7 ms, 18.9 MB, 89k allocs | | 10 | 65.4 ms, 172.5 MB, 201k allocs | 9.0 ms, 20.8 MB, 91k allocs | | 100 | 57.7 ms, 172.2 MB, 201k allocs | 14.2 ms, 38.5 MB, 108k allocs | | 1,000 | 61.1 ms, 172.5 MB, 201k allocs | 63.0 ms, 172.5 MB, 201k allocs | The row-group predicate is intentionally capped at 200 values. Larger target sets still use row-level filtering and avoid changing the read semantics. ## Checks ✅ - `go test ./table` - `go vet ./table` - Focused `go test -race ./table` -- 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]
