fallintoplace opened a new pull request, #2201: URL: https://github.com/apache/iceberg-go/pull/2201
**What** - Reuse unchanged partition residual expressions. **Why** - Scan planning rebuilds AND, OR, and NOT expressions for every file. **Implementation** - Return the stored expression when child residuals are unchanged. **Benchmark** - Base 4fdbf65ef234b8715dbd2459d2851b7c6f576257, head 47f9afc0709d2bbcd4ed0414555ba67e283feff6. - Go 1.26.3, Apple M1 Pro, median of 5 one-second samples, 4,096 files/op. - Baseline → optimized: | Predicates | Partition | ns/op | B/op | allocs/op | | --- | --- | ---: | ---: | ---: | | 8 | missing | 1,381,040 → 136,011 (10.2x) | 917,504 → 0 | 28,672 → 0 | | 8 | null | 1,381,140 → 134,337 (10.3x) | 917,504 → 0 | 28,672 → 0 | | 8 | one simplified | 1,790,020 → 1,111,240 (1.6x) | 1,048,576 → 524,288 | 36,864 → 20,480 | | 32 | missing | 6,125,770 → 503,339 (12.2x) | 4,063,232 → 0 | 126,976 → 0 | | 32 | null | 6,043,910 → 505,209 (12.0x) | 4,063,232 → 0 | 126,976 → 0 | | 32 | one simplified | 6,523,080 → 1,847,530 (3.5x) | 4,194,304 → 786,432 | 135,168 → 28,672 | Command: `go test ./table -run '^$' -bench '^BenchmarkPartitionResidualUnchangedSubtrees$' -benchmem -benchtime=1s -count=5 -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]
