ulysses-you commented on a change in pull request #35451:
URL: https://github.com/apache/spark/pull/35451#discussion_r803701656
##########
File path:
sql/core/src/test/scala/org/apache/spark/sql/DynamicPartitionPruningSuite.scala
##########
@@ -1482,6 +1482,51 @@ abstract class DynamicPartitionPruningSuiteBase
checkAnswer(df, Row(1150, 1) :: Row(1130, 4) :: Row(1140, 4) :: Nil)
}
}
+
+ test("SPARK-38148: Do not add dynamic partition pruning if there exists
static partition " +
+ "pruning") {
+ withSQLConf(SQLConf.DYNAMIC_PARTITION_PRUNING_ENABLED.key -> "true") {
+ Seq(
+ "f.store_id = 1" -> false,
+ "1 = f.store_id" -> false,
+ "f.store_id <=> 1" -> false,
+ "1 <=> f.store_id" -> false,
+ "f.store_id > 1" -> true,
+ "5 > f.store_id" -> true).foreach { case (condition, withBroadcast) =>
+ // partitioned table at left side
+ val df1 = sql(
+ s"""
+ |SELECT /*+ broadcast(s) */ * FROM fact_sk f
+ |JOIN dim_store s ON f.store_id = s.store_id AND $condition
+ """.stripMargin)
+ checkPartitionPruningPredicate(df1, false, withBroadcast)
Review comment:
the execution of dpp includes subquery or reuse broadcast. If
withBroadcast is true that means dpp use broadcast to execute. If both
withSubquery and withBroadcast are false that means the plan does not contain
dpp.
--
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]