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 e751af42df..12b3a93fe9 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; @@ -282,8 +283,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;