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]