fallintoplace opened a new pull request, #1972: URL: https://github.com/apache/iceberg-go/pull/1972
## Summary - **Projects** manifest data-file reads to the fields needed for scan tasks. - Keeps metric maps only when row pruning or positional-delete matching needs them. - Drops transient metric maps before local Arrow tasks retain the files. - Keeps `PlanFiles()` on the existing full-metadata path for callers that inspect task stats. - Caches projected Avro schemas by writer schema and projection. ## Benchmark Command: `go test . -run ^ -bench BenchmarkManifestEntryProjection -benchtime=1x -count=1` Apple M1 Pro, 10,000 entries per case: | Stats fields | Full bytes | Scan bytes | Full allocs | Scan allocs | | --- | ---: | ---: | ---: | ---: | | 10 | 32.6 MB | 15.6 MB | 443,928 | 65,797 | | 100 | 260.2 MB | 100.5 MB | 2,257,763 | 77,930 | | 1,000 | 2.93 GB | 1.45 GB | 20,512,582 | 332,865 | ## Validation - `go test . ./table -count=1` - Full package test matrix excluding the idle `io/gocloud` package - `go test ./... -run '^$' -count=1` - `go test -race ./table -run 'TestOpenManifestWithProjectionDropsStatsAfterFiltering|TestOpenManifestShortCircuitsMetricsEvaluation|TestBuildPositionalDeleteIndex|TestBuildEqualityDeleteIndex' -count=1` - `go vet ./...` - `golangci-lint v2.12.2` -- 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]
