Repository navigation
Conversation
Druid's schema discovery ingests boolean features as the longs 1/0, but the query translator sent `Feature == True` as a selector on the literal `true`, which never matches. The type checker rejects `Feature == 1` for bool features, so boolean features couldn't be queried at all, including the `ContainsHello == True` query the demo suggests. `!= True` matched every event. Translate boolean comparisons (==, !=, in, not in) to an `in` filter on both the numeric and string forms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This branch has not been deployed
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.
Summary
The demo query the docs and
demo.shsuggest,ContainsHello == True, matched nothing. Boolean features couldn't be filtered at all.Root cause: Druid's schema discovery (
useSchemaDiscovery: trueindruid/specs/execution_results.json) ingests JSON booleans asBIGINT1/0.DruidQueryTransformersentFeature == Trueas{"type": "selector", "value": true}, which never matches a long column. The query language's type checker rejectsContainsHello == 1(boolvsint), so users had no working form.ContainsHello != Truematched every event.Fix: boolean comparisons (
==,!=,in,not in, andnotof these) now translate to aninfilter on["1", "true"]/["0", "false"]. That matches the long columns schema discovery produces and also string-typed dimensions. Non-boolean comparisons are unchanged.The query is now correct as written, so the docs (
docs/concepts.md,docs/development/README.md,docs/rules/examples.md) anddemo.shneed no changes.Testing
test_boolean_comparisons_match_how_druid_stores_booleanscovers==,!=, reversed operands,not,in, andnot in../run-tests.sh(full suite) passes; pre-commit passes.--profile test_data, viaPOST /events/timeserieson the UI API:ContainsHello == TrueContainsHello == FalseContainsHello != TrueContainsHello in [True]EventType == "create_post"(all events)The
/events/scanresults forContainsHello == Trueare the posts that contain "hello".🤖 Generated with Claude Code