chore(audit): audit predicate expressions across Spark 3.4.3, 3.5.8, 4.0.1, 4.1.1#4480
Open
andygrove wants to merge 1 commit into
Open
chore(audit): audit predicate expressions across Spark 3.4.3, 3.5.8, 4.0.1, 4.1.1#4480andygrove wants to merge 1 commit into
andygrove wants to merge 1 commit into
Conversation
…4.0.1, 4.1.1 Add per-version audit sub-bullets to all 19 supported predicate SQL function names (`!`, `<`, `<=`, `<=>`, `=`, `==`, `>`, `>=`, `and`, `between`, `ilike`, `in`, `isnan`, `isnotnull`, `isnull`, `like`, `not`, `or`, `rlike`) in `docs/source/contributor-guide/spark_expressions_support.md`. The Spark expression classes are byte-for-byte identical across the four versions; only the `NullIntolerant` -> `nullIntolerant` trait refactor lands in Spark 4.0, with no runtime change. `!` and `==` are registry aliases for `Not` and `EqualTo`. `between` is rewritten by the parser to `expr >= low AND expr <= high`. `ilike` is `RuntimeReplaceable` and rewrites to `Like(Lower(left), Lower(right))`. `like` and `rlike` cross-reference the existing string-expressions audit (apache#4461). No support-level consistency issues were found in the predicate serdes. `CometNot` already optimizes a few special cases (`Not(EqualTo)`, `Not(EqualNullSafe)`, `Not(In)`). No new tracking issues are filed.
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.
Which issue does this PR close?
Closes #.
Rationale for this change
Continuation of the per-category expression audit. Same pattern as #4479 (bitwise), #4478 (map), #4476 (hash), #4475 (conditional), #4474 (misc), #4473 (collection), #4470 (json), #4469 (struct), using the updated
audit-comet-expressionskill in #4468.What changes are included in this PR?
Support-doc audit notes
Add per-version audit sub-bullets to all 19 supported predicate SQL function names (
!,<,<=,<=>,=,==,>,>=,and,between,ilike,in,isnan,isnotnull,isnull,like,not,or,rlike).The Spark expression classes are byte-for-byte identical across the four versions; only the
NullIntolerant->nullIntoleranttrait refactor lands in Spark 4.0, with no runtime change. Highlights:!and==are registry aliases forNotandEqualTo.betweenis rewritten by the parser toexpr >= low AND expr <= high.ilikeisRuntimeReplaceableand rewrites toLike(Lower(left), Lower(right)).likeandrlikecross-reference the existing string-expressions audit (chore(audit): audit string expressions across Spark 3.4.3, 3.5.8, 4.0.1 #4461).CometNotalready optimizes a few special cases (Not(EqualTo),Not(EqualNullSafe),Not(In)).Support-level consistency fixes
None. The 12 backing serdes were already clean.
Tracking issues filed for follow-up
None.
Audit process
Audited directly using the
audit-comet-expressionskill (4 Spark versions per #4468). Twelve serdes, no parallel subagents needed.How are these changes tested?
make coresucceeds (no code changes; doc only).CometExpressionSuiteand the various SQL-file suites remains unchanged.