Skip to content

Commit 1269862

Browse files
committed
[SPARK-39606][SQL] Use child stats to estimate order operator
### What changes were proposed in this pull request? This PR use child stats to estimate `order` operator. ### Why are the changes needed? To make stats more accurate. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Unit test. Closes #36994 from wangyum/SPARK-39606. Authored-by: Yuming Wang <[email protected]> Signed-off-by: Yuming Wang <[email protected]>
1 parent 4e42f8b commit 1269862

File tree

3 files changed

+3
-5
lines changed

3 files changed

+3
-5
lines changed

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/statsEstimation/BasicStatsPlanVisitor.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,7 @@ object BasicStatsPlanVisitor extends LogicalPlanVisitor[Statistics] {
102102

103103
override def visitWindow(p: Window): Statistics = fallback(p)
104104

105-
override def visitSort(p: Sort): Statistics = {
106-
BasicStatsPlanVisitor.visit(p.child)
107-
}
105+
override def visitSort(p: Sort): Statistics = fallback(p)
108106

109107
override def visitTail(p: Tail): Statistics = {
110108
fallback(p)

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/statsEstimation/SizeInBytesOnlyStatsPlanVisitor.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ object SizeInBytesOnlyStatsPlanVisitor extends LogicalPlanVisitor[Statistics] {
162162

163163
override def visitWindow(p: Window): Statistics = visitUnaryNode(p)
164164

165-
override def visitSort(p: Sort): Statistics = default(p)
165+
override def visitSort(p: Sort): Statistics = p.child.stats
166166

167167
override def visitTail(p: Tail): Statistics = {
168168
val limit = p.limitExpr.eval().asInstanceOf[Int]

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/statsEstimation/BasicStatsEstimationSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ class BasicStatsEstimationSuite extends PlanTest with StatsEstimationTestBase {
360360
checkStats(
361361
sort,
362362
expectedStatsCboOn = expectedSortStats,
363-
expectedStatsCboOff = Statistics(sizeInBytes = expectedSize))
363+
expectedStatsCboOff = expectedSortStats)
364364
}
365365

366366
/** Check estimated stats when cbo is turned on/off. */

0 commit comments

Comments
 (0)