This is an automated email from the ASF dual-hosted git repository.

morrysnow 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 1063e2094c4 [chore](RF) use a mock tuple descriptor to init 
CTEScanNode (#62235)
1063e2094c4 is described below

commit 1063e2094c4898113f25078432035668ee3d5766
Author: morrySnow <[email protected]>
AuthorDate: Thu Apr 9 14:25:24 2026 +0800

    [chore](RF) use a mock tuple descriptor to init CTEScanNode (#62235)
    
    CTEScanNode's TupleDescriptor has no sense. So use a fake one to avoid call 
unnecessary function of SlotRef.
---
 .../apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java | 4 +---
 fe/fe-core/src/main/java/org/apache/doris/planner/CTEScanNode.java   | 5 +++--
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
index 79f9ff2fd05..1a4c6e54c24 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java
@@ -1439,15 +1439,13 @@ public class PhysicalPlanTranslator extends 
DefaultPlanVisitor<PlanFragment, Pla
         multiCastDataSink.getDestinations().add(Lists.newArrayList());
 
         // update expr to slot mapping
-        TupleDescriptor tupleDescriptor = null;
         for (Slot producerSlot : cteProducer.getOutput()) {
             SlotRef slotRef = context.findSlotRef(producerSlot.getExprId());
-            tupleDescriptor = slotRef.getDesc().getParent();
             for (Slot consumerSlot : 
cteConsumer.getProducerToConsumerSlotMap().get(producerSlot)) {
                 context.addExprIdSlotRefPair(consumerSlot.getExprId(), 
slotRef);
             }
         }
-        CTEScanNode cteScanNode = new CTEScanNode(tupleDescriptor, 
context.getScanContext());
+        CTEScanNode cteScanNode = new CTEScanNode(context.getScanContext());
         translateRuntimeFilter(cteConsumer, cteScanNode, context);
         context.getCteScanNodeMap().put(multiCastFragment.getFragmentId(), 
cteScanNode);
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/CTEScanNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/CTEScanNode.java
index ac202cfa34c..13ac382bf16 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/CTEScanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/CTEScanNode.java
@@ -18,6 +18,7 @@
 package org.apache.doris.planner;
 
 import org.apache.doris.analysis.TupleDescriptor;
+import org.apache.doris.analysis.TupleId;
 import org.apache.doris.common.UserException;
 import org.apache.doris.thrift.TPlanNode;
 import org.apache.doris.thrift.TScanRangeLocations;
@@ -31,8 +32,8 @@ import java.util.List;
 public class CTEScanNode extends ScanNode {
     private static final PlanNodeId UNINITIAL_PLANNODEID = new PlanNodeId(-1);
 
-    public CTEScanNode(TupleDescriptor desc, ScanContext scanContext) {
-        super(UNINITIAL_PLANNODEID, desc, "CTEScanNode", scanContext);
+    public CTEScanNode(ScanContext scanContext) {
+        super(UNINITIAL_PLANNODEID, new TupleDescriptor(new TupleId(-1)), 
"CTEScanNode", scanContext);
     }
 
     public void setPlanNodeId(PlanNodeId id) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to