From 367eb5c1988abf14cc15fdce543762a4fb20f5d0 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Thu, 30 Apr 2026 12:06:21 -0700 Subject: [PATCH 1/2] [SPARK-40193][SQL] Rename `spark.sql.optimizer.mergeSubplans.( -> filterPropagation.)symmetricFilterPropagation.enabled` --- .../src/main/scala/org/apache/spark/sql/internal/SQLConf.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala index bd0be0f75fe91..b886c08f4d780 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala @@ -6594,7 +6594,7 @@ object SQLConf { .createWithDefault(true) val MERGE_SUBPLANS_SYMMETRIC_FILTER_PROPAGATION_ENABLED = - buildConf("spark.sql.optimizer.mergeSubplans.symmetricFilterPropagation.enabled") + buildConf("spark.sql.optimizer.mergeSubplans.filterPropagation.symmetricFilterPropagation.enabled") .doc("When set to true, two non-grouping aggregate subplans that both have filter " + "conditions (but with different predicates) can be merged into a single scan using " + "FILTER (WHERE ...) clauses on each aggregate expression. " + From e5ec8239066a72293b87d0b734ba604d49014cb0 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Thu, 30 Apr 2026 12:27:03 -0700 Subject: [PATCH 2/2] fix linter error --- .../apache/spark/sql/internal/SQLConf.scala | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala index b886c08f4d780..7fbf2797dc93d 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala @@ -6593,20 +6593,20 @@ object SQLConf { .booleanConf .createWithDefault(true) - val MERGE_SUBPLANS_SYMMETRIC_FILTER_PROPAGATION_ENABLED = - buildConf("spark.sql.optimizer.mergeSubplans.filterPropagation.symmetricFilterPropagation.enabled") - .doc("When set to true, two non-grouping aggregate subplans that both have filter " + - "conditions (but with different predicates) can be merged into a single scan using " + - "FILTER (WHERE ...) clauses on each aggregate expression. " + - "Merging two filtered scans broadens the combined filter to OR(f1, f2), which may " + - "reduce IO pruning (e.g. partition or file skipping) compared to the individual " + - "filters. Disabled by default; enable once the behaviour has been validated in your " + - "workload, particularly on heavily partitioned or file-pruned tables. " + - s"Has no effect when ${MERGE_SUBPLANS_FILTER_PROPAGATION_ENABLED.key} is false.") - .version("4.2.0") - .withBindingPolicy(ConfigBindingPolicy.SESSION) - .booleanConf - .createWithDefault(false) + val MERGE_SUBPLANS_SYMMETRIC_FILTER_PROPAGATION_ENABLED = buildConf( + "spark.sql.optimizer.mergeSubplans.filterPropagation.symmetricFilterPropagation.enabled") + .doc("When set to true, two non-grouping aggregate subplans that both have filter " + + "conditions (but with different predicates) can be merged into a single scan using " + + "FILTER (WHERE ...) clauses on each aggregate expression. " + + "Merging two filtered scans broadens the combined filter to OR(f1, f2), which may " + + "reduce IO pruning (e.g. partition or file skipping) compared to the individual " + + "filters. Disabled by default; enable once the behaviour has been validated in your " + + "workload, particularly on heavily partitioned or file-pruned tables. " + + s"Has no effect when ${MERGE_SUBPLANS_FILTER_PROPAGATION_ENABLED.key} is false.") + .version("4.2.0") + .withBindingPolicy(ConfigBindingPolicy.SESSION) + .booleanConf + .createWithDefault(false) val ERROR_MESSAGE_FORMAT = buildConf("spark.sql.error.messageFormat") .doc("When PRETTY, the error message consists of textual representation of error class, " +