Repository navigation
fix(gfql): ne()/<> and IN on NULL follow openCypher/SQL 3-valued logic (L0 generic) - #1666
Merged
Merged
Conversation
…c (generic L0)
A NULL cell used to be KEPT by n({col: ne(x)}) / WHERE col <> x (pandas NaN != x
-> True) and by membership n({col: [.., None]}) / IN on cuDF (isin matching a
null against a None list element). Per openCypher/SQL 3VL, null <> x and
null IN [...] are null -> not a match -> excluded, like eq/gt/lt.
Fixed generically: NE predicate masks nulls (& notna); filter_by_dict membership
masks nulls. Engine-uniform pandas + cuDF (polars engine already conformant).
+TestThreeValuedLogicNull (generic). L0 of the layered stack (benefits all
engines); broader openCypher null-semantics + per-engine docs in #1664/#1665.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This was referenced Jul 2, 2026
Co-Authored-By: Claude Opus 4.8 (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.
L0 of the GFQL engine stack: the generic 3-valued-logic null fix (benefits pandas + cuDF; polars already conformant).
ne()/<>and membership/INover a NULL cell now exclude the row per openCypher/SQL 3VL, fixed in theNEpredicate +filter_by_dict. Peeled below the polars engine so all engines inherit it. Part of #1664 (openCypher conformance).Note for the merger: the user-facing CHANGELOG entries for this fix ride the stacked followups PR #1667 (they were written there before this fix was peeled down to L0). Merging this PR alone ships the behavior change without its CHANGELOG line — fine if #1667 follows shortly; otherwise cherry-pick the two 3VL entries from #1667's CHANGELOG.