github-actions[bot] commented on code in PR #61074:
URL: https://github.com/apache/doris/pull/61074#discussion_r2888818171


##########
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/StatsDerive.java:
##########
@@ -351,19 +351,27 @@ public Statistics visitLogicalWindow(LogicalWindow<? 
extends Plan> window, Deriv
 
     @Override
     public Statistics visitLogicalCTEProducer(LogicalCTEProducer<? extends 
Plan> cteProducer, DeriveContext context) {
+        // Fallback registration: ensure cteId -> producer mapping is always 
available
+        // even if some upstream rewrite path misses explicit registration.
+        
ConnectContext.get().getStatementContext().setCteProducer(cteProducer.getCteId(),
 cteProducer);
         Statistics prodStats = cteProducer.child().accept(this, context);
         StatisticsBuilder builder = new StatisticsBuilder(prodStats);
         builder.setWidthInJoinCluster(1);
         Statistics stats = builder.build();
         cteProducer.setStatistics(stats);
-        
ConnectContext.get().getStatementContext().setProducerStats(cteProducer.getCteId(),
 stats);
         return stats;
     }
 
     @Override
     public Statistics visitLogicalCTEConsumer(LogicalCTEConsumer cteConsumer, 
DeriveContext context) {
         CTEId cteId = cteConsumer.getCteId();
-        Statistics prodStats = 
ConnectContext.get().getStatementContext().getProducerStatsByCteId(cteId);
+        LogicalCTEProducer<? extends Plan> cteProducer = 
ConnectContext.get().getStatementContext()
+                .getCteProducerByCteId(cteId);
+        Preconditions.checkArgument(cteProducer != null, String.format("CTE 
producer for CTE: %s not found", cteId));
+        Statistics prodStats = cteProducer.getStats();

Review Comment:
   Nit: `Preconditions.checkArgument` is semantically for validating method 
arguments. Since this is checking internal state (the CTE producer mapping 
exists), `Preconditions.checkState` would be more appropriate here and at line 
375 (`prodStats != null` check). Same applies to the second `checkArgument` 
below.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to