This is an automated email from the ASF dual-hosted git repository.
jakevin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 6b325a8458 [fix](Nereids): union output can be Alias<Slot> (#20532)
6b325a8458 is described below
commit 6b325a84581b4e1ee205b2a689f336baba6e3785
Author: jakevin <[email protected]>
AuthorDate: Wed Jun 7 15:11:07 2023 +0800
[fix](Nereids): union output can be Alias<Slot> (#20532)
---
.../doris/nereids/rules/rewrite/logical/AdjustNullable.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/AdjustNullable.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/AdjustNullable.java
index abf7940caa..f6d9d9eb04 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/AdjustNullable.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/AdjustNullable.java
@@ -19,6 +19,7 @@ package org.apache.doris.nereids.rules.rewrite.logical;
import org.apache.doris.nereids.jobs.JobContext;
import org.apache.doris.nereids.properties.OrderKey;
+import org.apache.doris.nereids.trees.expressions.Alias;
import org.apache.doris.nereids.trees.expressions.ExprId;
import org.apache.doris.nereids.trees.expressions.Expression;
import org.apache.doris.nereids.trees.expressions.NamedExpression;
@@ -146,11 +147,12 @@ public class AdjustNullable extends
DefaultPlanRewriter<Void> implements CustomR
List<NamedExpression> outputs = setOperation.getOutputs();
List<NamedExpression> newOutputs =
Lists.newArrayListWithCapacity(outputs.size());
for (int i = 0; i < inputNullable.size(); i++) {
- SlotReference slotReference = (SlotReference) outputs.get(i);
+ NamedExpression ne = outputs.get(i);
+ Slot slot = ne instanceof Alias ? (Slot) ((Alias) ne).child() :
(Slot) ne;
if (inputNullable.get(i)) {
- slotReference = slotReference.withNullable(true);
+ slot = slot.withNullable(true);
}
- newOutputs.add(slotReference);
+ newOutputs.add(ne instanceof Alias ? (NamedExpression)
ne.withChildren(slot) : slot);
}
return
setOperation.withNewOutputs(newOutputs).recomputeLogicalProperties();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]