xiangfu0 opened a new pull request, #19182: URL: https://github.com/apache/pinot/pull/19182
## What Makes `BloomFilterSegmentPruner` able to prune segments for `UUID` columns. ## The problem The pruner probed the bloom filter with `_comparableValue.toString()`. For a UUID predicate the comparable value is a `ByteArray`, so the probe string was `ByteArray`'s representation and never matched a real entry — the pruner silently never pruned a UUID column. This is **not a correctness bug**: a bloom-filter miss only ever means a segment isn't pruned, so results were always right. It just made the pruner dead weight for UUID predicates. ## The fix `BloomFilterCreator.add(Object, int)` is the write-side contract the reader has to mirror, and it renders a UUID as its canonical dashed string. The pruner now does the same. The rendering is resolved **once at construction** rather than on every `mightBeContained()` call, so the scan path is unchanged. ## Scope Deliberately UUID-only. `BIG_DECIMAL` has the same class of divergence — `DataType#toString` uses `toPlainString()` while the creator uses `value.toString()`, so they disagree on trailing zeros — but fixing that changes pruning behaviour for existing tables and deserves its own PR. ## Testing `BloomFilterSegmentPrunerTest` gains UUID coverage for the prune and no-prune paths, including the mixed-case and dashless input forms that must normalise to the same key. ## About this PR Split out of #18872. Depends only on `UuidUtils` (#18869), already on master — independent of #18872 and #19181, mergeable on its own. Part of the #18140 UUID split. -- 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]
