feat: numeric pruning for dim_value_set segments#19704
Conversation
FrankChen021
left a comment
There was a problem hiding this comment.
| Severity | Findings |
|---|---|
| P0 | 0 |
| P1 | 1 |
| P2 | 0 |
| P3 | 0 |
| Total | 1 |
Reviewed 20 of 20 changed files.
This is an automated review by Codex GPT-5.6-Sol
| if (dimValues == null || dimValues.isEmpty()) { | ||
| dimSet.add(null); | ||
| if (longPartitionDimensions.contains(dim)) { | ||
| dimSet.add(canonicalLongValue(row.getRaw(dim), dim)); |
There was a problem hiding this comment.
[P1] Disable legacy string pruning for stamped LONG dimensions
Canonicalizing raw "00001" or "+1" to "1" is correct for the new typed domain, but the dimension still passes through possibleInDomain first. A native SelectorDimFilter("code", "00001", ...) matches indexed LONG 1 through runtime numeric coercion, while its range set remains literal "00001". The range check therefore sees no overlap with stamped "1" and prunes the segment before typed pruning runs, dropping valid rows. Exclude type-stamped LONG dimensions from the legacy string/range channel, or safely canonicalize that channel, and add a regression test for noncanonical string selectors.
There was a problem hiding this comment.
Fixed so that long dims now skip the string/range channel and prune only via the type-gated possibleInValueDomain.
FrankChen021
left a comment
There was a problem hiding this comment.
Follow-up reviewed: stamped LONG dimensions now bypass legacy string/range pruning, with regression coverage for noncanonical selectors. No new issues found.
Reviewed 20 of 20 changed files.
This is an automated review by Codex GPT-5.6-Sol
Description
Follow up to #19571
Adds support for LONG equality /
IN/IS NULLsegment pruning fordim_value_setsegments.Release note
Key changed/added classes in this PR
DimensionValueSetShardSpecSeekableStreamIndexTaskRunnerTypedValueSetThis PR has: