diff --git a/spark/src/main/scala/org/apache/comet/serde/aggregates.scala b/spark/src/main/scala/org/apache/comet/serde/aggregates.scala index e7227ccca9..bf7db0fe9b 100644 --- a/spark/src/main/scala/org/apache/comet/serde/aggregates.scala +++ b/spark/src/main/scala/org/apache/comet/serde/aggregates.scala @@ -131,6 +131,9 @@ object CometMax extends CometAggregateExpressionSerde[Max] { } object CometCount extends CometAggregateExpressionSerde[Count] { + + override def supportsMixedPartialFinal: Boolean = true + override def convert( aggExpr: AggregateExpression, expr: Count, diff --git a/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala b/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala index 9e2296067b..a38da97f74 100644 --- a/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala +++ b/spark/src/main/scala/org/apache/spark/sql/comet/CometBroadcastExchangeExec.scala @@ -85,7 +85,20 @@ case class CometBroadcastExchangeExec( "number of coalesced rows for broadcast")) override def doCanonicalize(): SparkPlan = { - CometBroadcastExchangeExec(null, null, mode, child.canonicalized) + // originalPlan is the source-of-truth for the projection applied during broadcast + // (e.g. count+1 vs count-1 in correlated IN with count-bug decorrelation). Two + // CometBroadcastExchanges with identical Comet children but different originalPlans + // produce different broadcast values, so their canonical forms must differ to + // prevent AQE's ReusedExchange from incorrectly merging them. See issue #4242. + // Keying only on originalPlan.output is not sufficient — Spark canonicalization + // rewrites alias names to "none", so count+1 vs count-1 output attributes become + // indistinguishable; the discriminator lives in the Add/Subtract expression nodes + // deep inside the canonicalized plan tree. + // Canonicalize mode as well: HashedRelationBroadcastMode carries join-key expressions + // with non-canonical exprIds, so two semantically equivalent broadcasts would otherwise + // miss legitimate reuse opportunities (matches Spark's BroadcastExchangeExec). + val canonicalOriginal = if (originalPlan != null) originalPlan.canonicalized else null + CometBroadcastExchangeExec(canonicalOriginal, null, mode.canonicalized, child.canonicalized) } override def runtimeStatistics: Statistics = { @@ -245,13 +258,15 @@ case class CometBroadcastExchangeExec( obj match { case other: CometBroadcastExchangeExec => this.originalPlan == other.originalPlan && + this.output == other.output && + this.mode == other.mode && this.child == other.child case _ => false } } - override def hashCode(): Int = Objects.hashCode(child) + override def hashCode(): Int = Objects.hashCode(originalPlan, output, mode, child) override def stringArgs: Iterator[Any] = Iterator(output, child) diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q83/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q83/extended.txt deleted file mode 100644 index 32adaba671..0000000000 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark3_5/q83/extended.txt +++ /dev/null @@ -1,104 +0,0 @@ -CometNativeColumnarToRow -+- CometTakeOrderedAndProject - +- CometProject - +- CometBroadcastHashJoin - :- CometProject - : +- CometBroadcastHashJoin - : :- CometHashAggregate - : : +- CometExchange - : : +- CometHashAggregate - : : +- CometProject - : : +- CometBroadcastHashJoin - : : :- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.store_returns - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.date_dim - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.item - : : +- CometBroadcastExchange - : : +- CometProject - : : +- CometBroadcastHashJoin - : : :- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : +- CometBroadcastExchange - : : +- CometProject - : : +- CometBroadcastHashJoin - : : :- CometNativeScan parquet spark_catalog.default.date_dim - : : +- CometBroadcastExchange - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- CometBroadcastExchange - : +- CometHashAggregate - : +- CometExchange - : +- CometHashAggregate - : +- CometProject - : +- CometBroadcastHashJoin - : :- CometProject - : : +- CometBroadcastHashJoin - : : :- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.catalog_returns - : : : +- ReusedSubquery - : : +- CometBroadcastExchange - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.item - : +- CometBroadcastExchange - : +- CometProject - : +- CometBroadcastHashJoin - : :- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- CometBroadcastExchange - : +- CometProject - : +- CometBroadcastHashJoin - : :- CometNativeScan parquet spark_catalog.default.date_dim - : +- CometBroadcastExchange - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim - +- CometBroadcastExchange - +- CometHashAggregate - +- CometExchange - +- CometHashAggregate - +- CometProject - +- CometBroadcastHashJoin - :- CometProject - : +- CometBroadcastHashJoin - : :- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.web_returns - : : +- ReusedSubquery - : +- CometBroadcastExchange - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.item - +- CometBroadcastExchange - +- CometProject - +- CometBroadcastHashJoin - :- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim - +- CometBroadcastExchange - +- CometProject - +- CometBroadcastHashJoin - :- CometNativeScan parquet spark_catalog.default.date_dim - +- CometBroadcastExchange - +- CometProject - +- CometFilter - +- CometNativeScan parquet spark_catalog.default.date_dim - -Comet accelerated 98 out of 101 eligible operators (97%). Final plan contains 1 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q14b/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q14b/extended.txt index 85cda8b553..6824dac7bf 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q14b/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q14b/extended.txt @@ -132,11 +132,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -180,11 +176,7 @@ CometNativeColumnarToRow : +- CometFilter : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- ReusedSubquery +- CometBroadcastExchange +- CometFilter : +- ReusedSubquery @@ -225,11 +217,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -288,11 +276,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -336,10 +320,6 @@ CometNativeColumnarToRow +- CometFilter : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim - +- Subquery - +- CometNativeColumnarToRow - +- CometProject - +- CometFilter - +- CometNativeScan parquet spark_catalog.default.date_dim + +- ReusedSubquery -Comet accelerated 310 out of 337 eligible operators (91%). Final plan contains 6 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 292 out of 319 eligible operators (91%). Final plan contains 4 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q54/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q54/extended.txt index d262c6d56f..0c132a1621 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q54/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q54/extended.txt @@ -87,21 +87,7 @@ CometNativeColumnarToRow : :- ReusedSubquery : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim - :- Subquery - : +- CometNativeColumnarToRow - : +- CometHashAggregate - : +- CometExchange - : +- CometHashAggregate - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim - +- Subquery - +- CometNativeColumnarToRow - +- CometHashAggregate - +- CometExchange - +- CometHashAggregate - +- CometProject - +- CometFilter - +- CometNativeScan parquet spark_catalog.default.date_dim + :- ReusedSubquery + +- ReusedSubquery -Comet accelerated 89 out of 100 eligible operators (89%). Final plan contains 5 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 77 out of 88 eligible operators (87%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q6/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q6/extended.txt index dd68f2476e..2e15ba8e52 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q6/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q6/extended.txt @@ -40,14 +40,7 @@ CometNativeColumnarToRow : +- CometFilter : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometHashAggregate - : +- CometExchange - : +- CometHashAggregate - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- ReusedSubquery +- CometBroadcastExchange +- CometProject +- CometBroadcastHashJoin @@ -62,4 +55,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.item -Comet accelerated 55 out of 60 eligible operators (91%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 49 out of 54 eligible operators (90%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q83.ansi/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q83.ansi/extended.txt index 32adaba671..e4d1992492 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q83.ansi/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_0/q83.ansi/extended.txt @@ -54,7 +54,20 @@ CometNativeColumnarToRow : : +- CometBroadcastHashJoin : : :- CometFilter : : : +- CometNativeScan parquet spark_catalog.default.catalog_returns - : : : +- ReusedSubquery + : : : +- CometSubqueryBroadcast + : : : +- CometBroadcastExchange + : : : +- CometProject + : : : +- CometBroadcastHashJoin + : : : :- CometFilter + : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : +- CometBroadcastExchange + : : : +- CometProject + : : : +- CometBroadcastHashJoin + : : : :- CometNativeScan parquet spark_catalog.default.date_dim + : : : +- CometBroadcastExchange + : : : +- CometProject + : : : +- CometFilter + : : : +- CometNativeScan parquet spark_catalog.default.date_dim : : +- CometBroadcastExchange : : +- CometProject : : +- CometFilter @@ -82,7 +95,20 @@ CometNativeColumnarToRow : +- CometBroadcastHashJoin : :- CometFilter : : +- CometNativeScan parquet spark_catalog.default.web_returns - : : +- ReusedSubquery + : : +- CometSubqueryBroadcast + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometBroadcastHashJoin + : : :- CometFilter + : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometBroadcastHashJoin + : : :- CometNativeScan parquet spark_catalog.default.date_dim + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometFilter + : : +- CometNativeScan parquet spark_catalog.default.date_dim : +- CometBroadcastExchange : +- CometProject : +- CometFilter @@ -101,4 +127,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 98 out of 101 eligible operators (97%). Final plan contains 1 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 124 out of 127 eligible operators (97%). Final plan contains 1 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_2/q54/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_2/q54/extended.txt index 3cabbbdf79..0f652be148 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_2/q54/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4-spark4_2/q54/extended.txt @@ -93,21 +93,7 @@ CometNativeColumnarToRow : :- ReusedSubquery : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim - :- Subquery - : +- CometNativeColumnarToRow - : +- CometHashAggregate - : +- CometExchange - : +- CometHashAggregate - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim - +- Subquery - +- CometNativeColumnarToRow - +- CometHashAggregate - +- CometExchange - +- CometHashAggregate - +- CometProject - +- CometFilter - +- CometNativeScan parquet spark_catalog.default.date_dim + :- ReusedSubquery + +- ReusedSubquery -Comet accelerated 95 out of 106 eligible operators (89%). Final plan contains 5 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 83 out of 94 eligible operators (88%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt index 07af300183..309ce2c012 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q10/extended.txt @@ -1,61 +1,62 @@ -TakeOrderedAndProject -+- HashAggregate [COMET: Spark Final aggregate without Comet Partial requires compatible intermediate buffer formats] - +- Exchange - +- HashAggregate - +- Project - +- BroadcastHashJoin - :- Project - : +- BroadcastHashJoin - : :- Project - : : +- Filter - : : +- BroadcastHashJoin - : : :- BroadcastHashJoin [COMET: Unsupported join type ExistenceJoin(exists#1)] - : : : :- CometNativeColumnarToRow - : : : : +- CometBroadcastHashJoin - : : : : :- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.customer - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : +- BroadcastExchange - : : : +- CometNativeColumnarToRow - : : : +- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometNativeScan parquet spark_catalog.default.web_sales - : : : : +- ReusedSubquery - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : +- BroadcastExchange - : : +- CometNativeColumnarToRow - : : +- CometProject - : : +- CometBroadcastHashJoin - : : :- CometNativeScan parquet spark_catalog.default.catalog_sales - : : : +- ReusedSubquery - : : +- CometBroadcastExchange - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- BroadcastExchange - : +- CometNativeColumnarToRow - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.customer_address - +- BroadcastExchange - +- CometNativeColumnarToRow - +- CometProject - +- CometFilter - +- CometNativeScan parquet spark_catalog.default.customer_demographics +CometNativeColumnarToRow ++- CometTakeOrderedAndProject + +- CometHashAggregate + +- CometColumnarExchange + +- HashAggregate + +- Project + +- BroadcastHashJoin + :- Project + : +- BroadcastHashJoin + : :- Project + : : +- Filter + : : +- BroadcastHashJoin + : : :- BroadcastHashJoin [COMET: Unsupported join type ExistenceJoin(exists#1)] + : : : :- CometNativeColumnarToRow + : : : : +- CometBroadcastHashJoin + : : : : :- CometFilter + : : : : : +- CometNativeScan parquet spark_catalog.default.customer + : : : : +- CometBroadcastExchange + : : : : +- CometProject + : : : : +- CometBroadcastHashJoin + : : : : :- CometNativeScan parquet spark_catalog.default.store_sales + : : : : : +- CometSubqueryBroadcast + : : : : : +- CometBroadcastExchange + : : : : : +- CometProject + : : : : : +- CometFilter + : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- CometBroadcastExchange + : : : : +- CometProject + : : : : +- CometFilter + : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : +- BroadcastExchange + : : : +- CometNativeColumnarToRow + : : : +- CometProject + : : : +- CometBroadcastHashJoin + : : : :- CometNativeScan parquet spark_catalog.default.web_sales + : : : : +- ReusedSubquery + : : : +- CometBroadcastExchange + : : : +- CometProject + : : : +- CometFilter + : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- BroadcastExchange + : : +- CometNativeColumnarToRow + : : +- CometProject + : : +- CometBroadcastHashJoin + : : :- CometNativeScan parquet spark_catalog.default.catalog_sales + : : : +- ReusedSubquery + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometFilter + : : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- BroadcastExchange + : +- CometNativeColumnarToRow + : +- CometProject + : +- CometFilter + : +- CometNativeScan parquet spark_catalog.default.customer_address + +- BroadcastExchange + +- CometNativeColumnarToRow + +- CometProject + +- CometFilter + +- CometNativeScan parquet spark_catalog.default.customer_demographics -Comet accelerated 35 out of 54 eligible operators (64%). Final plan contains 5 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 38 out of 54 eligible operators (70%). Final plan contains 6 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14a/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14a/extended.txt index 1ae3f23b40..cdaed038ce 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14a/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14a/extended.txt @@ -131,11 +131,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -208,11 +204,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -271,11 +263,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -348,11 +336,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -411,11 +395,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -459,4 +439,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 431 out of 458 eligible operators (94%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 411 out of 438 eligible operators (93%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14b/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14b/extended.txt index 1b9b46662f..11c6baeef0 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14b/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q14b/extended.txt @@ -131,11 +131,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -177,11 +173,7 @@ CometNativeColumnarToRow : +- CometBroadcastExchange : +- CometProject : +- CometFilter - : : +- Subquery - : : +- CometNativeColumnarToRow - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim +- CometBroadcastExchange +- CometFilter @@ -222,11 +214,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -285,11 +273,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -331,11 +315,7 @@ CometNativeColumnarToRow +- CometBroadcastExchange +- CometProject +- CometFilter - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 310 out of 333 eligible operators (93%). Final plan contains 6 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 292 out of 315 eligible operators (92%). Final plan contains 4 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q54/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q54/extended.txt index af2b39b224..afaa307e74 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q54/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q54/extended.txt @@ -82,22 +82,8 @@ CometNativeColumnarToRow +- CometBroadcastExchange +- CometProject +- CometFilter - : :- Subquery - : : +- CometNativeColumnarToRow - : : +- CometHashAggregate - : : +- CometExchange - : : +- CometHashAggregate - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometHashAggregate - : +- CometExchange - : +- CometHashAggregate - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : :- ReusedSubquery + : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 89 out of 96 eligible operators (92%). Final plan contains 5 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 77 out of 84 eligible operators (91%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q6/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q6/extended.txt index 4b31bf751a..83c510d373 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q6/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q6/extended.txt @@ -37,14 +37,7 @@ CometNativeColumnarToRow : +- CometBroadcastExchange : +- CometProject : +- CometFilter - : : +- Subquery - : : +- CometNativeColumnarToRow - : : +- CometHashAggregate - : : +- CometExchange - : : +- CometHashAggregate - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim +- CometBroadcastExchange +- CometProject @@ -60,4 +53,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.item -Comet accelerated 55 out of 58 eligible operators (94%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 49 out of 52 eligible operators (94%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q83/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q83/extended.txt index ef8debea9a..e4d1992492 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q83/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v1_4/q83/extended.txt @@ -95,7 +95,20 @@ CometNativeColumnarToRow : +- CometBroadcastHashJoin : :- CometFilter : : +- CometNativeScan parquet spark_catalog.default.web_returns - : : +- ReusedSubquery + : : +- CometSubqueryBroadcast + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometBroadcastHashJoin + : : :- CometFilter + : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometBroadcastHashJoin + : : :- CometNativeScan parquet spark_catalog.default.date_dim + : : +- CometBroadcastExchange + : : +- CometProject + : : +- CometFilter + : : +- CometNativeScan parquet spark_catalog.default.date_dim : +- CometBroadcastExchange : +- CometProject : +- CometFilter @@ -114,4 +127,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 111 out of 114 eligible operators (97%). Final plan contains 1 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 124 out of 127 eligible operators (97%). Final plan contains 1 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q14/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q14/extended.txt index 85cda8b553..6824dac7bf 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q14/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q14/extended.txt @@ -132,11 +132,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -180,11 +176,7 @@ CometNativeColumnarToRow : +- CometFilter : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- ReusedSubquery +- CometBroadcastExchange +- CometFilter : +- ReusedSubquery @@ -225,11 +217,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -288,11 +276,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -336,10 +320,6 @@ CometNativeColumnarToRow +- CometFilter : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim - +- Subquery - +- CometNativeColumnarToRow - +- CometProject - +- CometFilter - +- CometNativeScan parquet spark_catalog.default.date_dim + +- ReusedSubquery -Comet accelerated 310 out of 337 eligible operators (91%). Final plan contains 6 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 292 out of 319 eligible operators (91%). Final plan contains 4 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q6/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q6/extended.txt index dd68f2476e..2e15ba8e52 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q6/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_0/q6/extended.txt @@ -40,14 +40,7 @@ CometNativeColumnarToRow : +- CometFilter : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometHashAggregate - : +- CometExchange - : +- CometHashAggregate - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- ReusedSubquery +- CometBroadcastExchange +- CometProject +- CometBroadcastHashJoin @@ -62,4 +55,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.item -Comet accelerated 55 out of 60 eligible operators (91%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 49 out of 54 eligible operators (90%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_1/q14a/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_1/q14a/extended.txt index dd43130d46..95bf1eef42 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_1/q14a/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7-spark4_1/q14a/extended.txt @@ -136,11 +136,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -212,11 +208,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -275,11 +267,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -351,11 +339,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -414,11 +398,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -479,11 +459,7 @@ CometNativeColumnarToRow : : : :- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometProject : : : : +- CometBroadcastHashJoin @@ -500,11 +476,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -563,11 +535,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -639,11 +607,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -702,11 +666,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -778,11 +738,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -841,11 +797,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -906,11 +858,7 @@ CometNativeColumnarToRow : : : :- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometProject : : : : +- CometBroadcastHashJoin @@ -927,11 +875,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -990,11 +934,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1066,11 +1006,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1129,11 +1065,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1205,11 +1137,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1268,11 +1196,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -1333,11 +1257,7 @@ CometNativeColumnarToRow : : : :- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometProject : : : : +- CometBroadcastHashJoin @@ -1354,11 +1274,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1417,11 +1333,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1493,11 +1405,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1556,11 +1464,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1632,11 +1536,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1695,11 +1595,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -1760,11 +1656,7 @@ CometNativeColumnarToRow : : :- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometProject : : : +- CometBroadcastHashJoin @@ -1781,11 +1673,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1844,11 +1732,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -1920,11 +1804,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1983,11 +1863,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -2059,11 +1935,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -2122,11 +1994,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -2170,4 +2038,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 2046 out of 2169 eligible operators (94%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 1914 out of 2037 eligible operators (93%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14/extended.txt index 1b9b46662f..11c6baeef0 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14/extended.txt @@ -131,11 +131,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -177,11 +173,7 @@ CometNativeColumnarToRow : +- CometBroadcastExchange : +- CometProject : +- CometFilter - : : +- Subquery - : : +- CometNativeColumnarToRow - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim +- CometBroadcastExchange +- CometFilter @@ -222,11 +214,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -285,11 +273,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -331,11 +315,7 @@ CometNativeColumnarToRow +- CometBroadcastExchange +- CometProject +- CometFilter - : +- Subquery - : +- CometNativeColumnarToRow - : +- CometProject - : +- CometFilter - : +- CometNativeScan parquet spark_catalog.default.date_dim + : +- ReusedSubquery +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 310 out of 333 eligible operators (93%). Final plan contains 6 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 292 out of 315 eligible operators (92%). Final plan contains 4 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14a/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14a/extended.txt index 64d8fff5be..c11901f719 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14a/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q14a/extended.txt @@ -137,11 +137,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -213,11 +209,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -276,11 +268,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -352,11 +340,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -415,11 +399,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -470,40 +450,7 @@ CometNativeColumnarToRow : +- CometHashAggregate : +- CometUnion : :- CometFilter - : : : +- Subquery - : : : +- CometNativeColumnarToRow - : : : +- CometHashAggregate - : : : +- CometExchange - : : : +- CometHashAggregate - : : : +- CometUnion - : : : :- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- ReusedSubquery - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : :- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.catalog_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : +- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometNativeScan parquet spark_catalog.default.web_sales - : : : : +- ReusedSubquery - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : +- ReusedSubquery : : +- CometHashAggregate : : +- CometExchange : : +- CometHashAggregate @@ -514,11 +461,7 @@ CometNativeColumnarToRow : : : :- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometProject : : : : +- CometBroadcastHashJoin @@ -535,11 +478,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -598,11 +537,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -674,11 +609,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -737,11 +668,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -813,11 +740,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -876,11 +799,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -931,40 +850,7 @@ CometNativeColumnarToRow : +- CometHashAggregate : +- CometUnion : :- CometFilter - : : : +- Subquery - : : : +- CometNativeColumnarToRow - : : : +- CometHashAggregate - : : : +- CometExchange - : : : +- CometHashAggregate - : : : +- CometUnion - : : : :- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- ReusedSubquery - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : :- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.catalog_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : +- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometNativeScan parquet spark_catalog.default.web_sales - : : : : +- ReusedSubquery - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : +- ReusedSubquery : : +- CometHashAggregate : : +- CometExchange : : +- CometHashAggregate @@ -975,11 +861,7 @@ CometNativeColumnarToRow : : : :- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometProject : : : : +- CometBroadcastHashJoin @@ -996,11 +878,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1059,11 +937,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1135,11 +1009,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1198,11 +1068,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1274,11 +1140,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1337,11 +1199,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -1392,40 +1250,7 @@ CometNativeColumnarToRow : +- CometHashAggregate : +- CometUnion : :- CometFilter - : : : +- Subquery - : : : +- CometNativeColumnarToRow - : : : +- CometHashAggregate - : : : +- CometExchange - : : : +- CometHashAggregate - : : : +- CometUnion - : : : :- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- ReusedSubquery - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : :- CometProject - : : : : +- CometBroadcastHashJoin - : : : : :- CometNativeScan parquet spark_catalog.default.catalog_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : +- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometNativeScan parquet spark_catalog.default.web_sales - : : : : +- ReusedSubquery - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : +- ReusedSubquery : : +- CometHashAggregate : : +- CometExchange : : +- CometHashAggregate @@ -1436,11 +1261,7 @@ CometNativeColumnarToRow : : : :- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometProject : : : : +- CometBroadcastHashJoin @@ -1457,11 +1278,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1520,11 +1337,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1596,11 +1409,7 @@ CometNativeColumnarToRow : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter : : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : : +- CometSubqueryBroadcast - : : : : : : : +- CometBroadcastExchange - : : : : : : : +- CometProject - : : : : : : : +- CometFilter - : : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : : +- ReusedSubquery : : : : : : +- CometBroadcastExchange : : : : : : +- CometBroadcastHashJoin : : : : : : :- CometFilter @@ -1659,11 +1468,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1735,11 +1540,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1798,11 +1599,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -1853,40 +1650,7 @@ CometNativeColumnarToRow +- CometHashAggregate +- CometUnion :- CometFilter - : : +- Subquery - : : +- CometNativeColumnarToRow - : : +- CometHashAggregate - : : +- CometExchange - : : +- CometHashAggregate - : : +- CometUnion - : : :- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- ReusedSubquery - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : :- CometProject - : : : +- CometBroadcastHashJoin - : : : :- CometNativeScan parquet spark_catalog.default.catalog_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : : +- CometBroadcastExchange - : : : +- CometProject - : : : +- CometFilter - : : : +- CometNativeScan parquet spark_catalog.default.date_dim - : : +- CometProject - : : +- CometBroadcastHashJoin - : : :- CometNativeScan parquet spark_catalog.default.web_sales - : : : +- ReusedSubquery - : : +- CometBroadcastExchange - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- ReusedSubquery : +- CometHashAggregate : +- CometExchange : +- CometHashAggregate @@ -1897,11 +1661,7 @@ CometNativeColumnarToRow : : :- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometProject : : : +- CometBroadcastHashJoin @@ -1918,11 +1678,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -1981,11 +1737,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -2057,11 +1809,7 @@ CometNativeColumnarToRow : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter : : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : : +- CometSubqueryBroadcast - : : : : : : +- CometBroadcastExchange - : : : : : : +- CometProject - : : : : : : +- CometFilter - : : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : : +- ReusedSubquery : : : : : +- CometBroadcastExchange : : : : : +- CometBroadcastHashJoin : : : : : :- CometFilter @@ -2120,11 +1868,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -2196,11 +1940,7 @@ CometNativeColumnarToRow : : : : +- CometBroadcastHashJoin : : : : :- CometFilter : : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : : +- CometSubqueryBroadcast - : : : : : +- CometBroadcastExchange - : : : : : +- CometProject - : : : : : +- CometFilter - : : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : : +- ReusedSubquery : : : : +- CometBroadcastExchange : : : : +- CometBroadcastHashJoin : : : : :- CometFilter @@ -2259,11 +1999,7 @@ CometNativeColumnarToRow : : : +- CometBroadcastHashJoin : : : :- CometFilter : : : : +- CometNativeScan parquet spark_catalog.default.store_sales - : : : : +- CometSubqueryBroadcast - : : : : +- CometBroadcastExchange - : : : : +- CometProject - : : : : +- CometFilter - : : : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : : : +- ReusedSubquery : : : +- CometBroadcastExchange : : : +- CometBroadcastHashJoin : : : :- CometFilter @@ -2307,4 +2043,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.date_dim -Comet accelerated 2167 out of 2302 eligible operators (94%). Final plan contains 6 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 1919 out of 2042 eligible operators (93%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q6/extended.txt b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q6/extended.txt index 4b31bf751a..83c510d373 100644 --- a/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q6/extended.txt +++ b/spark/src/test/resources/tpcds-plan-stability/approved-plans-v2_7/q6/extended.txt @@ -37,14 +37,7 @@ CometNativeColumnarToRow : +- CometBroadcastExchange : +- CometProject : +- CometFilter - : : +- Subquery - : : +- CometNativeColumnarToRow - : : +- CometHashAggregate - : : +- CometExchange - : : +- CometHashAggregate - : : +- CometProject - : : +- CometFilter - : : +- CometNativeScan parquet spark_catalog.default.date_dim + : : +- ReusedSubquery : +- CometNativeScan parquet spark_catalog.default.date_dim +- CometBroadcastExchange +- CometProject @@ -60,4 +53,4 @@ CometNativeColumnarToRow +- CometFilter +- CometNativeScan parquet spark_catalog.default.item -Comet accelerated 55 out of 58 eligible operators (94%). Final plan contains 3 transitions between Spark and Comet. \ No newline at end of file +Comet accelerated 49 out of 52 eligible operators (94%). Final plan contains 2 transitions between Spark and Comet. \ No newline at end of file diff --git a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala index cd0beb56cc..ca670d52af 100644 --- a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala +++ b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala @@ -2067,6 +2067,62 @@ class CometAggregateSuite extends CometTestBase with AdaptiveSparkPlanHelper { } } + // https://github.com/apache/datafusion-comet/issues/4242 + // AQE's PropagateEmptyRelationAfterAQE rule pattern-matches BaseAggregateExec only, not + // CometHashAggregateExec. With mixed Spark-Partial / Comet-Final COUNT, the Final escapes + // the rule and propagation of empty intermediate results stops, changing downstream results + // in some queries. + test("issue #4242: AQE PropagateEmptyRelation with mixed Spark Partial / Comet Final COUNT") { + withSQLConf( + SQLConf.ADAPTIVE_EXECUTION_ENABLED.key -> "true", + SQLConf.AUTO_BROADCASTJOIN_THRESHOLD.key -> "-1") { + withTempDir { dir => + spark.range(10).toDF("a").write.parquet(dir.getCanonicalPath + "/t1") + spark.range(10).toDF("b").write.parquet(dir.getCanonicalPath + "/t2") + withTempView("t1", "t2") { + spark.read.parquet(dir.getCanonicalPath + "/t1").createOrReplaceTempView("t1") + spark.read.parquet(dir.getCanonicalPath + "/t2").createOrReplaceTempView("t2") + + // Empty left side joined with empty right side then grouped count. + val q1 = + """SELECT inner_a, COUNT(*) FROM ( + | SELECT t1.a AS inner_a FROM t1 LEFT OUTER JOIN t2 ON t1.a = t2.b + | WHERE t1.a > 100 AND t2.b > 100 + |) GROUP BY inner_a""".stripMargin + checkSparkAnswer(q1) + + // Global ungrouped count over an empty input should produce one row with COUNT = 0. + val q2 = "SELECT COUNT(*) FROM t1 WHERE a > 100" + checkSparkAnswer(q2) + } + } + } + } + + // https://github.com/apache/datafusion-comet/issues/4242 + // Mirrors the OR pattern in Spark's in-count-bug.sql. Decorrelating correlated IN with + // COUNT inside an OR is known to drop a row when partial/final aggregate stages are + // split between Spark and Comet. + test("issue #4242: count-bug decorrelation with correlated IN OR pattern") { + withTempView("t1", "t2") { + sql("CREATE TEMPORARY VIEW t1(c1, c2) AS VALUES (0, 1), (1, 2)") + sql("CREATE TEMPORARY VIEW t2(c1, c2) AS VALUES (0, 2), (0, 3)") + + val orQuery = + """SELECT * FROM t1 WHERE + | c1 IN (SELECT count(*) + 1 FROM t2 WHERE t2.c1 = t1.c1) OR + | c2 IN (SELECT count(*) - 1 FROM t2 WHERE t2.c1 = t1.c1)""".stripMargin + checkSparkAnswer(orQuery) + + val orAndNotInQuery = + """SELECT * FROM t1 WHERE + | (c1 IN (SELECT count(*) + 1 FROM t2 WHERE t2.c1 = t1.c1) OR + | c2 IN (SELECT count(*) - 1 FROM t2 WHERE t2.c1 = t1.c1)) AND + | c1 NOT IN (SELECT count(*) FROM t2 WHERE t2.c1 = t1.c2)""".stripMargin + checkSparkAnswer(orAndNotInQuery) + } + } + protected def checkSparkAnswerAndNumOfAggregates(query: String, numAggregates: Int): Unit = { val df = sql(query) checkSparkAnswer(df)