fallintoplace opened a new pull request, #2119: URL: https://github.com/apache/iceberg-go/pull/2119
## What - Remove unused partition metadata allocations in the REST scan decoder. ## Why - `NewDataFileBuilder` ignores fixed-size metadata. - Primitive and null partition values do not need logical-type metadata. ## Implementation - Pass `nil` for fixed sizes and create the logical-type map only when needed. - Keep partition values and logical types for data and delete files. - Add a primitive partition benchmark and coverage for null, fixed, date, decimal, UUID and unpartitioned values. **Benchmarks:** 1,024 data tasks per operation. Mixed partitions use integer/date/fixed; primitive partitions use integer/string/fixed. | Partitions | ns/op, base → head | B/op, base → head | allocs/op, base → head | | --- | ---: | ---: | ---: | | Mixed | 4,278,023 → 4,173,623 | 5,161,315 → 5,112,099 | 37,894 → 36,870 | | Primitive | 4,030,529 → 3,434,114 | 4,768,080 → 4,620,560 | 35,846 → 32,774 | **1,024 fewer allocations** for mixed partitions; **3,072 fewer** for primitive partitions. Times varied between samples; allocation counts were stable. Go 1.26.3, darwin/arm64, Apple M1 Pro. Median of 7 samples, 1s each, CPU=1. Base `fa5309b3624d5798bde69722b279366bb7f39846`, head `f37470c6e5996fa40274154d272eaaa67f7a0f0e`. The same benchmark file was used on both revisions. ```sh go test ./catalog/rest -run '^$' -bench '^(BenchmarkDecodeScanTasks|BenchmarkDecodeScanTasksPrimitivePartitions)$/^1024_tasks$' -benchmem -benchtime=1s -count=7 -cpu=1 ``` -- 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]
