Uh oh!
There was an error while loading. Please reload this page.
branch-4.1 [fix](match) Allow MATCH on aliased variant subcolumns - #63811
Conversation
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. Fix MATCH predicates on VARIANT dot subcolumn access such as msg.trace_id so they are accepted like equivalent bracket subcolumn access. - 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)
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 fixes MATCH predicate validation for VARIANT dot-access subcolumns (e.g., v.trace_id) when pruning/rewrites introduce Alias (and Cast) wrappers around the underlying SlotReference, making dot access behave like equivalent bracket access (e.g., v['trace_id']).
Changes:
- Extend MATCH validation to unwrap
Aliasin addition toCastwhen resolving the left operand down to aSlotReference. - Add unit tests ensuring alias/cast chains over VARIANT subcolumn slots are accepted, while aliases over non-slot expressions are still rejected.
- Add an integration-style planner test verifying the scan predicate uses a
SlotRefwith the expected VARIANT subcolumn labels for dot access.
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 | Allow MATCH left operand resolution through Alias + Cast chains to reach the underlying SlotReference. |
| fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/CheckMatchExpressionTest.java | Add test coverage for alias/cast chains on VARIANT subcolumn MATCH and rejection for alias-on-expression. |
| fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/VariantPruningLogicTest.java | Verify planned scan conjunct contains a MatchPredicate whose left child resolves to a SlotRef with trace_id subcolumn labels. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
hello-stephen
commented
May 28, 2026
FE Regression Coverage ReportIncrement line coverage |
Uh oh!
There was an error while loading. Please reload this page.
cherry-pick #63772