Uh oh!
There was an error while loading. Please reload this page.
branch-4.0 [fix](match) Allow MATCH on aliased variant subcolumns - #63804
branch-4.0 [fix](match) Allow MATCH on aliased variant subcolumns#63804eldenmoon wants to merge 1 commit into
Conversation
hello-stephen
commented
May 28, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
eldenmoon
commented
May 28, 2026
run buildall |
There was a problem hiding this comment.
Pull request overview
This PR cherry-picks the fix to allow MATCH predicates on aliased VARIANT subcolumn accesses in the Nereids rewrite validation path.
Changes:
- Updates
CheckMatchExpressionto unwrapCastandAliaschains before validating the left operand as aSlotReference. - Adds unit coverage for accepted alias/cast chains and rejected non-slot alias expressions.
- Adds an end-to-end VARIANT pruning test for
cast(msg.trace_id as string) match_phrase_prefix.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/CheckMatchExpression.java | Allows MATCH validation to resolve slots through cast/alias wrappers. |
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/CheckMatchExpressionTest.java | Adds focused tests for slot, alias, cast, and invalid expression handling. |
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/VariantPruningLogicTest.java | Adds integration coverage for MATCH on dot-accessed VARIANT subcolumns. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
hello-stephen
commented
May 28, 2026
FE UT Coverage ReportIncrement line coverage |
### What problem does this PR solve? Issue Number: None Related PR: apache#63772 Problem Summary: MATCH predicates fail for VARIANT dot subcolumn access such as cast(msg.trace_id as string), while the equivalent bracket access msg['trace_id'] works. Dot access can leave an Alias around the pruned subcolumn slot, and CheckMatchExpression rejected the aliased slot. ### Release note Fix MATCH predicates on VARIANT dot subcolumn access such as msg.trace_id so they are accepted like equivalent bracket subcolumn access. ### Check List (For Author) - Test: - Unit Test: ./run-fe-ut.sh --run org.apache.doris.nereids.rules.rewrite.CheckMatchExpressionTest - Unit Test: ./run-fe-ut.sh --run org.apache.doris.nereids.rules.rewrite.VariantPruningLogicTest#testMatchOnDotVariantSubColumnUsesSlotRefInScanPredicate - Behavior changed: Yes. MATCH validation now accepts alias/cast chains that resolve to a SlotReference, while still rejecting aliases over non-slot expressions. - Does this need documentation: No (cherry picked from commit d0cfb94) (cherry picked from commit 26abcfcdb9a04a3d7244ccad5d17c7bdd7a1dfa9)
eeb818c to
c5331abComparemorningman
commented
Jun 24, 2026
run buildall |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
cherry-pick #63772