This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch dev-1.0.1 in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
commit 63053b7324aca293fa739b5cd3625d3aabc056b4 Author: morrySnow <101034200+morrys...@users.noreply.github.com> AuthorDate: Wed Jun 8 14:12:04 2022 +0800 [fix](planner) passthrough child in SetOperationNode is wrong when enable vector engine (#9991) In SetOperationNode we do passthrough, if we child output is same with itself output. In method isChildPassthrough we only consider memory layout. When we use vectorized engine, we need to use SlotDesc offset in TupleDesc instead of memory layout to check whether pass-through can be performed --- .../main/java/org/apache/doris/planner/SetOperationNode.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/SetOperationNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/SetOperationNode.java index 67ef3b5bf9..93082e3e30 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/SetOperationNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/SetOperationNode.java @@ -25,6 +25,7 @@ import org.apache.doris.analysis.TupleDescriptor; import org.apache.doris.analysis.TupleId; import org.apache.doris.common.CheckedMath; import org.apache.doris.common.UserException; +import org.apache.doris.common.util.VectorizedUtil; import org.apache.doris.thrift.TExceptNode; import org.apache.doris.thrift.TExplainLevel; import org.apache.doris.thrift.TExpr; @@ -268,8 +269,14 @@ public abstract class SetOperationNode extends PlanNode { if (childSlotRef == null) { return false; } - if (!childSlotRef.getDesc().LayoutEquals(setOpSlotRef.getDesc())) { - return false; + if (VectorizedUtil.isVectorized()) { + if (childSlotRef.getDesc().getSlotOffset() != setOpSlotRef.getDesc().getSlotOffset()) { + return false; + } + } else { + if (!childSlotRef.getDesc().LayoutEquals(setOpSlotRef.getDesc())) { + return false; + } } } return true; --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org