fallintoplace opened a new pull request, #1920: URL: https://github.com/apache/iceberg-go/pull/1920
## What changed - Start synthetic position-delete partition field IDs at `LastColumnID() + 1`. - Keep the existing reserved-ID checks and partition-field remapping. - Avoid cloning and indexing every historical schema on each call. ## Benchmark - **Machine:** Apple M1 Pro, darwin/arm64 - **Go:** go1.26.3 - **Setup:** 64 fields per schema; median of 5 runs - **Command:** `go test ./table -run '^$' -bench '^BenchmarkPositionDeletesPartitionType/schemas=(1|16|128|1024)/fields=64$' -benchmem -count=5 -benchtime=1s` | schemas | ns/op | B/op | allocs/op | | --- | ---: | ---: | ---: | | 1 | 40,476 -> 18,736 | 100,368 -> 48,960 | 94 -> 56 | | 16 | 347,383 -> 18,448 | 879,377 -> 48,960 | 570 -> 56 | | 128 | 2,695,818 -> 18,115 | 6,692,085 -> 48,960 | 4,101 -> 56 | | 1,024 | 20,795,189 -> 16,137 | 53,193,992 -> 48,960 | 32,328 -> 56 | The optimized path is effectively flat as schema history grows. ## Tests - Added coverage that the allocator does not request schema history. - Added coverage for skipping reserved IDs after `LastColumnID()`. -- 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]
