Reminiscent commented on code in PR #18784: URL: https://github.com/apache/doris/pull/18784#discussion_r1194755873
########## fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java: ########## @@ -464,6 +478,32 @@ private Statistics computeTopN(TopN topN) { return stats.withRowCount(Math.min(stats.getRowCount(), topN.getLimit())); } + private Statistics computePartitionTopN(PartitionTopN partitionTopN) { + Statistics stats = groupExpression.childStatistics(0); + double rowCount = stats.getRowCount(); + List<Expression> partitionKeys = partitionTopN.getPartitionKeys(); + if (!partitionTopN.hasGlobalLimit() && !partitionKeys.isEmpty()) { Review Comment: For the limit part, I don't think it will cause some bad cases. Because we only get the minimal value. ``` private Statistics computeLimit(Limit limit) { Statistics stats = groupExpression.childStatistics(0); return stats.withRowCount(Math.min(stats.getRowCount(), limit.getLimit())); } ``` But for the `filter` part, it may cause some bad cases. We should ignore some predicates. -- 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: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org