fix: Aggregate custom scan handles NULL bool values in GROUP BY#4582
Merged
rebasedming merged 5 commits intomainfrom Mar 30, 2026
Merged
fix: Aggregate custom scan handles NULL bool values in GROUP BY#4582rebasedming merged 5 commits intomainfrom
NULL bool values in GROUP BY#4582rebasedming merged 5 commits intomainfrom
Conversation
Use Key::Str sentinel for bool fields in terms aggregation instead of skipping them. This routes through Tantivy's MissingTermAgg collector, which properly counts docs missing the field. NULL bools now form their own group in GROUP BY results. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
390d782 to
bffb05f
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
e5e7833 to
95f4a3b
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4582 +/- ##
==========================================
- Coverage 81.10% 80.79% -0.31%
==========================================
Files 183 184 +1
Lines 45117 45282 +165
==========================================
- Hits 36593 36587 -6
- Misses 8524 8695 +171
🚀 New features to boost your workflow:
|
mdashti
approved these changes
Mar 30, 2026
Contributor
mdashti
left a comment
There was a problem hiding this comment.
@rebasedming Thanks for the PR.
Test 2 was grouping by category (text), testing the non-fast field error path rather than the bool fix. Nullable bool GROUP BY is already covered by Test 4b.
paradedb-bot
pushed a commit
that referenced
this pull request
Mar 30, 2026
…4582) # Ticket(s) Closed - Closes # ## What - `GROUP BY` on a nullable bool column with the aggregate custom scan crashed with: `InvalidArgument("Missing value U64(2) for field ... is not supported for column type Bool")` - The cause was that Tantivy's terms aggregation rejects all numeric `Key` variants for Bool columns - Instead, use `Key::Str(NULL_SENTINEL_*)` for Bool fields, which routes through Tantivy's `MissingTermAgg` collector ## Why ## How ## Tests Added regression test --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]> (cherry picked from commit 99b6ddf)
Contributor
|
Successfully created backport PR for |
rebasedming
added a commit
that referenced
this pull request
Mar 30, 2026
…4582) # Ticket(s) Closed - Closes # ## What - `GROUP BY` on a nullable bool column with the aggregate custom scan crashed with: `InvalidArgument("Missing value U64(2) for field ... is not supported for column type Bool")` - The cause was that Tantivy's terms aggregation rejects all numeric `Key` variants for Bool columns - Instead, use `Key::Str(NULL_SENTINEL_*)` for Bool fields, which routes through Tantivy's `MissingTermAgg` collector ## Why ## How ## Tests Added regression test --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]> (cherry picked from commit 99b6ddf)
rebasedming
added a commit
that referenced
this pull request
Mar 30, 2026
…4584) # Description Backport of #4582 to `0.22.x`. Co-authored-by: Ming <[email protected]> Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket(s) Closed
What
GROUP BYon a nullable bool column with the aggregate custom scan crashed with:InvalidArgument("Missing value U64(2) for field ... is not supported for column type Bool")Keyvariants for Bool columnsKey::Str(NULL_SENTINEL_*)for Bool fields, which routes through Tantivy'sMissingTermAggcollectorWhy
How
Tests
Added regression test