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]

Reply via email to