[ABA-32] test: repro for missing LIKE ESCAPE plumbing (vortex-array + vortex-datafusion)#21
Open
abnobdoss wants to merge 1 commit into
Open
[ABA-32] test: repro for missing LIKE ESCAPE plumbing (vortex-array + vortex-datafusion)#21abnobdoss wants to merge 1 commit into
abnobdoss wants to merge 1 commit into
Conversation
…usion escape silently dropped Add two #[ignore]'d regression tests that demonstrate the gap described in https://linear.app/abanoubdoss/issue/ABA-32: - vortex-array: `issue_aba32_like_options_supports_escape_char` — asserts `LikeOptions` exposes an `escape_char` field; fails on develop because the struct only has `negated` and `case_insensitive`. - vortex-datafusion: `issue_aba32_datafusion_conversion_preserves_like_escape_char` — builds a DataFusion `LikeExpr`, converts it through the Vortex path, and asserts the resulting `LikeOptions` carries escape information; fails on develop for the same reason. Both tests are REPRO-ONLY. The fix requires adding `escape_char: Option<char>` to `LikeOptions`, extending the proto schema, and threading the field through the kernel dispatch (including the FSST fast-path bailout already added by PR vortex-data#8038, which inspects the pattern string for `\` rather than a `LikeOptions` field). Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: abnobdoss@proton.me <abnobdoss@proton.me> Signed-off-by: Abanoub Doss <abanoub.doss@gmail.com>
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
#[ignore]'d regression tests that document the gap described in ABA-32:LikeOptionshas noescape_charfield, making SQLLIKE … ESCAPEsemantics unrepresentable in the Vortex expression layer.vortex-array(scalar_fn/fns/like/mod.rs):issue_aba32_like_options_supports_escape_char— assertsLikeOptionsDebug output containsescape_char; fails on develop.vortex-datafusion(convert/exprs.rs):issue_aba32_datafusion_conversion_preserves_like_escape_char— converts a DataFusionLikeExprviaDefaultExpressionConvertorand asserts the resultingLikeOptionsexposes escape information; fails on develop.This is a REPRO-ONLY PR — no production code is changed.
Gap analysis
LikeOptions(vortex-array) only carriesnegatedandcase_insensitive. There is noescape_char: Option<char>field. The protoLikeOptsmessage is equally absent. As a consequence:LikeExpr(DF 53) also has noescape_charfield; the logical layer drops it duringcreate_physical_expr. So even if Vortex added the field, the DataFusion conversion path currently has nothing to plumb through.Relation to PR vortex-data#8038
PR vortex-data#8038 ("Fallback from fsst specialised like expression if there are escape characters in the like string") adds a pattern-byte inspection (
pattern.contains(&b'\\')) in the FSST DFA fast-path so it safely bails out when the pattern contains a backslash. This is a correctness guard for the fast path, not an addition of escape-char support. The schema gap (missingescape_charonLikeOptions) is confirmed to still exist on develop.Open questions
LikeOptionsgainescape_char: Option<char>now (withNonemeaning the SQL default\), or wait until DataFusion exposes the field on the physicalLikeExpr?dfa/mod.rsshould be generalised to checkoptions.escape_char(defaulting toSome('\\')) rather than scanning pattern bytes for\.vortex-proto/proto/expr.proto→LikeOpts) will need a new optional field and a migration note.🤖 Generated with Claude Code
Linear: https://linear.app/abanoubdoss/issue/ABA-32