This is an automated email from the ASF dual-hosted git repository.

mingliang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new c5280f8b73 [CORE] Move ClickHouse-only extended rule configs from 
GlutenConfig to CHConfig (#11897)
c5280f8b73 is described below

commit c5280f8b73fadebb1f9393cc1d14676a740e2c7a
Author: Mingliang Zhu <[email protected]>
AuthorDate: Mon Apr 13 09:08:49 2026 +0800

    [CORE] Move ClickHouse-only extended rule configs from GlutenConfig to 
CHConfig (#11897)
---
 .../gluten/backendsapi/clickhouse/CHConfig.scala   | 30 ++++++++++++++++++++
 .../backendsapi/clickhouse/CHListenerApi.scala     |  2 +-
 .../gluten/backendsapi/clickhouse/CHRuleApi.scala  |  6 ++--
 .../extension/GlutenCustomAggExpressionSuite.scala |  4 +--
 ...ckhouseCustomerExpressionTransformerSuite.scala |  4 +--
 .../org/apache/gluten/config/GlutenConfig.scala    | 33 ----------------------
 .../extension/GlutenCustomerExtensionSuite.scala   |  9 ++++--
 .../extension/GlutenCustomerExtensionSuite.scala   |  9 ++++--
 .../extension/GlutenCustomerExtensionSuite.scala   |  9 ++++--
 .../extension/GlutenCustomerExtensionSuite.scala   |  9 ++++--
 .../extension/GlutenCustomerExtensionSuite.scala   |  9 ++++--
 11 files changed, 73 insertions(+), 51 deletions(-)

diff --git 
a/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHConfig.scala
 
b/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHConfig.scala
index e3ad3aedc6..4d82a5dfc0 100644
--- 
a/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHConfig.scala
+++ 
b/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHConfig.scala
@@ -102,6 +102,28 @@ object CHConfig extends ConfigRegistry {
       .doc("Enable local cache for CH backend.")
       .booleanConf
       .createWithDefault(false)
+
+  val EXTENDED_COLUMNAR_TRANSFORM_RULES =
+    buildConf("spark.gluten.sql.columnar.extended.columnar.transform.rules")
+      .internal()
+      .withAlternative("spark.gluten.sql.columnar.extended.columnar.pre.rules")
+      .doc("A comma-separated list of classes for the extended columnar 
transform rules.")
+      .stringConf
+      .createWithDefaultString("")
+
+  val EXTENDED_COLUMNAR_POST_RULES =
+    buildConf("spark.gluten.sql.columnar.extended.columnar.post.rules")
+      .internal()
+      .doc("A comma-separated list of classes for the extended columnar post 
rules.")
+      .stringConf
+      .createWithDefaultString("")
+
+  val EXTENDED_EXPRESSION_TRAN_CONF =
+    buildConf("spark.gluten.sql.columnar.extended.expressions.transformer")
+      .internal()
+      .doc("A class for the extended expressions transformer.")
+      .stringConf
+      .createWithDefaultString("")
 }
 
 class CHConfig(conf: SQLConf) extends GlutenConfig(conf) {
@@ -128,6 +150,14 @@ class CHConfig(conf: SQLConf) extends GlutenConfig(conf) {
     getConf(ENABLE_CH_REWRITE_DATE_CONVERSION)
 
   def enableGlutenLocalFileCache: Boolean = 
getConf(ENABLE_GLUTEN_LOCAL_FILE_CACHE)
+
+  // A comma-separated list of classes for the extended columnar pre rules
+  def extendedColumnarTransformRules: String = 
getConf(EXTENDED_COLUMNAR_TRANSFORM_RULES)
+
+  // A comma-separated list of classes for the extended columnar post rules
+  def extendedColumnarPostRules: String = getConf(EXTENDED_COLUMNAR_POST_RULES)
+
+  def extendedExpressionTransformer: String = 
getConf(EXTENDED_EXPRESSION_TRAN_CONF)
 }
 
 object GlutenObjectStorageConfig {
diff --git 
a/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHListenerApi.scala
 
b/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHListenerApi.scala
index ba74884d2c..2d21a08ca0 100644
--- 
a/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHListenerApi.scala
+++ 
b/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHListenerApi.scala
@@ -49,7 +49,7 @@ class CHListenerApi extends ListenerApi with Logging {
     initialize(pc.conf, isDriver = true)
 
     val expressionExtensionTransformer = 
ExpressionUtil.extendedExpressionTransformer(
-      pc.conf.get(GlutenConfig.EXTENDED_EXPRESSION_TRAN_CONF)
+      pc.conf.get(CHConfig.EXTENDED_EXPRESSION_TRAN_CONF)
     )
     if (expressionExtensionTransformer != null) {
       
ExpressionExtensionTrait.registerExpressionExtension(expressionExtensionTransformer)
diff --git 
a/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHRuleApi.scala
 
b/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHRuleApi.scala
index f6b9e2e317..c960d26c7d 100644
--- 
a/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHRuleApi.scala
+++ 
b/backends-clickhouse/src/main/scala/org/apache/gluten/backendsapi/clickhouse/CHRuleApi.scala
@@ -130,7 +130,7 @@ object CHRuleApi {
       c =>
         intercept(
           SparkPlanRules.extendedColumnarRule(
-            new 
GlutenConfig(c.sqlConf).extendedColumnarTransformRules)(c.session)))
+            new 
CHConfig(c.sqlConf).extendedColumnarTransformRules)(c.session)))
     injector.injectPostTransform(_ => CollectLimitTransformerRule())
     injector.injectPostTransform(_ => CollectTailTransformerRule())
     injector.injectPostTransform(c => 
InsertTransitions.create(c.outputsColumnar, CHBatchType))
@@ -153,8 +153,8 @@ object CHRuleApi {
     injector.injectPost(
       c =>
         intercept(
-          SparkPlanRules.extendedColumnarRule(
-            new GlutenConfig(c.sqlConf).extendedColumnarPostRules)(c.session)))
+          SparkPlanRules
+            .extendedColumnarRule(new 
CHConfig(c.sqlConf).extendedColumnarPostRules)(c.session)))
     injector.injectPost(c => GlutenNoopWriterRule.apply(c.session))
 
     // Gluten columnar: Final rules.
diff --git 
a/backends-clickhouse/src/test/scala/org/apache/gluten/execution/extension/GlutenCustomAggExpressionSuite.scala
 
b/backends-clickhouse/src/test/scala/org/apache/gluten/execution/extension/GlutenCustomAggExpressionSuite.scala
index f0d371f1aa..07f8952ec1 100644
--- 
a/backends-clickhouse/src/test/scala/org/apache/gluten/execution/extension/GlutenCustomAggExpressionSuite.scala
+++ 
b/backends-clickhouse/src/test/scala/org/apache/gluten/execution/extension/GlutenCustomAggExpressionSuite.scala
@@ -16,7 +16,7 @@
  */
 package org.apache.gluten.execution.extension
 
-import org.apache.gluten.config.GlutenConfig
+import org.apache.gluten.backendsapi.clickhouse.CHConfig
 import org.apache.gluten.execution._
 import org.apache.gluten.substrait.SubstraitContext
 import org.apache.gluten.utils.SubstraitPlanPrinterUtil
@@ -33,7 +33,7 @@ class GlutenCustomAggExpressionSuite extends ParquetSuite {
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_EXPRESSION_TRAN_CONF.key,
+        CHConfig.EXTENDED_EXPRESSION_TRAN_CONF.key,
         "org.apache.gluten.execution.extension.CustomAggExpressionTransformer")
   }
 
diff --git 
a/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenClickhouseCustomerExpressionTransformerSuite.scala
 
b/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenClickhouseCustomerExpressionTransformerSuite.scala
index e7e2f3ac52..52d83ce5e2 100644
--- 
a/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenClickhouseCustomerExpressionTransformerSuite.scala
+++ 
b/backends-clickhouse/src/test/scala/org/apache/spark/sql/extension/GlutenClickhouseCustomerExpressionTransformerSuite.scala
@@ -16,7 +16,7 @@
  */
 package org.apache.spark.sql.extension
 
-import org.apache.gluten.config.GlutenConfig
+import org.apache.gluten.backendsapi.clickhouse.CHConfig
 import 
org.apache.gluten.execution.{GlutenClickHouseWholeStageTransformerSuite, 
ProjectExecTransformer}
 import org.apache.gluten.expression.ExpressionConverter
 
@@ -88,7 +88,7 @@ class GlutenClickhouseCustomerExpressionTransformerSuite
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_EXPRESSION_TRAN_CONF.key,
+        CHConfig.EXTENDED_EXPRESSION_TRAN_CONF.key,
         "org.apache.spark.sql.extension.CustomerExpressionTransformer")
   }
 
diff --git 
a/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala 
b/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala
index 371c2b9609..198fc3f025 100644
--- 
a/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala
+++ 
b/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala
@@ -286,14 +286,6 @@ class GlutenConfig(conf: SQLConf) extends 
GlutenCoreConfig(conf) {
 
   def softAffinityLogLevel: String = getConf(SOFT_AFFINITY_LOG_LEVEL)
 
-  // A comma-separated list of classes for the extended columnar pre rules
-  def extendedColumnarTransformRules: String = 
getConf(EXTENDED_COLUMNAR_TRANSFORM_RULES)
-
-  // A comma-separated list of classes for the extended columnar post rules
-  def extendedColumnarPostRules: String = getConf(EXTENDED_COLUMNAR_POST_RULES)
-
-  def extendedExpressionTransformer: String = 
getConf(EXTENDED_EXPRESSION_TRAN_CONF)
-
   def smallFileThreshold: Double = getConf(SMALL_FILE_THRESHOLD)
 
   def expressionBlacklist: Set[String] = {
@@ -1314,31 +1306,6 @@ object GlutenConfig extends ConfigRegistry {
       .booleanConf
       .createWithDefault(true)
 
-  // FIXME: This only works with CH backend.
-  val EXTENDED_COLUMNAR_TRANSFORM_RULES =
-    buildConf("spark.gluten.sql.columnar.extended.columnar.transform.rules")
-      .internal()
-      .withAlternative("spark.gluten.sql.columnar.extended.columnar.pre.rules")
-      .doc("A comma-separated list of classes for the extended columnar 
transform rules.")
-      .stringConf
-      .createWithDefaultString("")
-
-  // FIXME: This only works with CH backend.
-  val EXTENDED_COLUMNAR_POST_RULES =
-    buildConf("spark.gluten.sql.columnar.extended.columnar.post.rules")
-      .internal()
-      .doc("A comma-separated list of classes for the extended columnar post 
rules.")
-      .stringConf
-      .createWithDefaultString("")
-
-  // FIXME: This only works with CH backend.
-  val EXTENDED_EXPRESSION_TRAN_CONF =
-    buildConf("spark.gluten.sql.columnar.extended.expressions.transformer")
-      .internal()
-      .doc("A class for the extended expressions transformer.")
-      .stringConf
-      .createWithDefaultString("")
-
   val EXPRESSION_BLACK_LIST =
     buildConf("spark.gluten.expression.blacklist")
       .doc("A black list of expression to skip transform, multiple values 
separated by commas.")
diff --git 
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
 
b/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
index 1d25f2a40e..4bd104f04c 100644
--- 
a/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ 
b/gluten-ut/spark33/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
@@ -22,15 +22,20 @@ import org.apache.spark.SparkConf
 import org.apache.spark.sql.GlutenSQLTestsTrait
 
 class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
+  // These configs only take effect on ClickHouse backend.
+  private val ExtendedColumnarTransformRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.transform.rules"
+  private val ExtendedColumnarPostRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.post.rules"
 
   override def sparkConf: SparkConf = {
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_COLUMNAR_TRANSFORM_RULES.key,
+        ExtendedColumnarTransformRulesKey,
         "org.apache.spark.sql" +
           ".extension.CustomerColumnarPreRules")
-      .set(GlutenConfig.EXTENDED_COLUMNAR_POST_RULES.key, "")
+      .set(ExtendedColumnarPostRulesKey, "")
   }
 
   testGluten("test customer column rules") {
diff --git 
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
 
b/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
index 1d25f2a40e..4bd104f04c 100644
--- 
a/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ 
b/gluten-ut/spark34/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
@@ -22,15 +22,20 @@ import org.apache.spark.SparkConf
 import org.apache.spark.sql.GlutenSQLTestsTrait
 
 class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
+  // These configs only take effect on ClickHouse backend.
+  private val ExtendedColumnarTransformRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.transform.rules"
+  private val ExtendedColumnarPostRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.post.rules"
 
   override def sparkConf: SparkConf = {
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_COLUMNAR_TRANSFORM_RULES.key,
+        ExtendedColumnarTransformRulesKey,
         "org.apache.spark.sql" +
           ".extension.CustomerColumnarPreRules")
-      .set(GlutenConfig.EXTENDED_COLUMNAR_POST_RULES.key, "")
+      .set(ExtendedColumnarPostRulesKey, "")
   }
 
   testGluten("test customer column rules") {
diff --git 
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
 
b/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
index 6dc265bc4f..cb37cec895 100644
--- 
a/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ 
b/gluten-ut/spark35/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
@@ -22,15 +22,20 @@ import org.apache.spark.SparkConf
 import org.apache.spark.sql.GlutenSQLTestsTrait
 
 class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
+  // These configs only take effect on ClickHouse backend.
+  private val ExtendedColumnarTransformRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.transform.rules"
+  private val ExtendedColumnarPostRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.post.rules"
 
   override def sparkConf: SparkConf = {
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_COLUMNAR_TRANSFORM_RULES.key,
+        ExtendedColumnarTransformRulesKey,
         "org.apache.spark.sql" +
           ".extension.CustomerColumnarPreRules")
-      .set(GlutenConfig.EXTENDED_COLUMNAR_POST_RULES.key, "")
+      .set(ExtendedColumnarPostRulesKey, "")
   }
 
   testGluten("test customer column rules") {
diff --git 
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
 
b/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
index 6dc265bc4f..cb37cec895 100644
--- 
a/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ 
b/gluten-ut/spark40/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
@@ -22,15 +22,20 @@ import org.apache.spark.SparkConf
 import org.apache.spark.sql.GlutenSQLTestsTrait
 
 class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
+  // These configs only take effect on ClickHouse backend.
+  private val ExtendedColumnarTransformRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.transform.rules"
+  private val ExtendedColumnarPostRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.post.rules"
 
   override def sparkConf: SparkConf = {
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_COLUMNAR_TRANSFORM_RULES.key,
+        ExtendedColumnarTransformRulesKey,
         "org.apache.spark.sql" +
           ".extension.CustomerColumnarPreRules")
-      .set(GlutenConfig.EXTENDED_COLUMNAR_POST_RULES.key, "")
+      .set(ExtendedColumnarPostRulesKey, "")
   }
 
   testGluten("test customer column rules") {
diff --git 
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
 
b/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
index 6dc265bc4f..cb37cec895 100644
--- 
a/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
+++ 
b/gluten-ut/spark41/src/test/scala/org/apache/spark/sql/extension/GlutenCustomerExtensionSuite.scala
@@ -22,15 +22,20 @@ import org.apache.spark.SparkConf
 import org.apache.spark.sql.GlutenSQLTestsTrait
 
 class GlutenCustomerExtensionSuite extends GlutenSQLTestsTrait {
+  // These configs only take effect on ClickHouse backend.
+  private val ExtendedColumnarTransformRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.transform.rules"
+  private val ExtendedColumnarPostRulesKey =
+    "spark.gluten.sql.columnar.extended.columnar.post.rules"
 
   override def sparkConf: SparkConf = {
     super.sparkConf
       .set("spark.sql.adaptive.enabled", "false")
       .set(
-        GlutenConfig.EXTENDED_COLUMNAR_TRANSFORM_RULES.key,
+        ExtendedColumnarTransformRulesKey,
         "org.apache.spark.sql" +
           ".extension.CustomerColumnarPreRules")
-      .set(GlutenConfig.EXTENDED_COLUMNAR_POST_RULES.key, "")
+      .set(ExtendedColumnarPostRulesKey, "")
   }
 
   testGluten("test customer column rules") {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to