fallintoplace opened a new pull request, #1911:
URL: https://github.com/apache/iceberg-go/pull/1911
**What changed**
- **Precompute min/max for `IN`** when the bound expression is created.
- **Use one comparison per manifest** instead of scanning every literal for
both partition bounds.
- **Keep existing visitor behavior** for public visitors and literals
without a total ordering.
- Added focused tests and a benchmark for int32, string, decimal, binary,
and nanosecond timestamp values.
**Benchmark**
- **Machine:** Apple M1 Pro
- **200 literals, lower-bound prune, median:**
- int32: **3.14 µs -> 0.18 µs**
- string: **3.77 µs -> 0.20 µs**
- decimal: **3.52 µs -> 0.24 µs**
- **Allocations:** int32 **192 B / 7 -> 144 B / 6**; string **208 B / 8 ->
160 B / 7**; decimal **240 B / 10 -> 192 B / 9**
- Command: `go test ./table -run '^$' -bench
'^BenchmarkManifestEvaluatorInPredicate$' -benchmem -benchtime=200ms -count=5`
**Checks**
- `go test . ./table ./table/dv ./table/substrait -count=1`
- `go test -race . ./table -run
'^(TestLiteralSetExtrema|TestVisitBoundPredicateRefPassesInExtrema|TestVisitBoundPredicateRefDoesNotAllocate|TestManifestEvaluatorInPredicateExtrema|TestManifestEvaluator|TestManifestEvalVisitorEvalRace)$'
-count=1`
- `go vet ./...`
--
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]