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

viirya pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git


The following commit(s) were added to refs/heads/main by this push:
     new fbf389cc feat: Simplify configs for enabling/disabling operators (#855)
fbf389cc is described below

commit fbf389ccd7bde4d9e7a501840115a73500f78a48
Author: Andy Grove <[email protected]>
AuthorDate: Wed Aug 21 12:34:15 2024 -0600

    feat: Simplify configs for enabling/disabling operators (#855)
    
    * stop unpacking dictionaries for hash join input
    
    * simply configs
    
    * Revert
    
    * simplify configs
    
    * code cleanup and revert changes to FilterExec
    
    * Revert
    
    * revert
    
    * cargo update
    
    * add comment
    
    * update plans
    
    * update tests
    
    * enable stddev
    
    * revert plan changes
    
    * update configs
    
    * revert unrelated changes
---
 .../main/scala/org/apache/comet/CometConf.scala    |  66 +++-----
 docs/source/contributor-guide/benchmarking.md      |   1 -
 docs/source/contributor-guide/debugging.md         |   2 +-
 docs/source/user-guide/configs.md                  |  35 ++--
 docs/source/user-guide/installation.md             |   1 -
 native/Cargo.lock                                  | 177 ++++++++++++---------
 .../apache/comet/CometSparkSessionExtensions.scala |  51 ++----
 .../org/apache/comet/serde/QueryPlanSerde.scala    | 125 +++++++--------
 .../org/apache/comet/CometExpressionSuite.scala    |   1 -
 .../apache/comet/exec/CometAggregateSuite.scala    |   4 +-
 .../org/apache/comet/exec/CometExecSuite.scala     |  16 +-
 .../comet/exec/CometNativeShuffleSuite.scala       |   4 +-
 .../apache/comet/parquet/ParquetReadSuite.scala    |   5 +-
 .../apache/spark/sql/CometTPCDSQuerySuite.scala    |   1 -
 .../org/apache/spark/sql/CometTPCHQuerySuite.scala |   1 -
 .../apache/spark/sql/CometTPCQueryListBase.scala   |   1 -
 .../scala/org/apache/spark/sql/CometTestBase.scala |   1 -
 .../sql/benchmark/CometAggregateBenchmark.scala    |  10 +-
 .../sql/benchmark/CometArithmeticBenchmark.scala   |   6 +-
 .../spark/sql/benchmark/CometBenchmarkBase.scala   |   1 -
 .../CometConditionalExpressionBenchmark.scala      |   6 +-
 .../spark/sql/benchmark/CometExecBenchmark.scala   |  10 +-
 .../CometPredicateExpressionBenchmark.scala        |   3 +-
 .../sql/benchmark/CometShuffleBenchmark.scala      |  15 --
 .../benchmark/CometStringExpressionBenchmark.scala |  49 ++----
 .../sql/benchmark/CometTPCDSMicroBenchmark.scala   |   6 +-
 .../sql/benchmark/CometTPCQueryBenchmarkBase.scala |   1 -
 .../spark/sql/comet/CometPlanStabilitySuite.scala  |   2 -
 .../spark/sql/comet/ParquetEncryptionITCase.scala  |   1 -
 29 files changed, 258 insertions(+), 344 deletions(-)

diff --git a/common/src/main/scala/org/apache/comet/CometConf.scala 
b/common/src/main/scala/org/apache/comet/CometConf.scala
index 9fa66e8c..9f34709a 100644
--- a/common/src/main/scala/org/apache/comet/CometConf.scala
+++ b/common/src/main/scala/org/apache/comet/CometConf.scala
@@ -45,25 +45,6 @@ import org.apache.comet.shims.ShimCometConf
  */
 object CometConf extends ShimCometConf {
 
-  val OPERATOR_PROJECT: String = "project"
-  val OPERATOR_FILTER: String = "filter"
-  val OPERATOR_SORT: String = "sort"
-  val OPERATOR_AGGREGATE: String = "aggregate"
-  val OPERATOR_BROADCAST_EXCHANGE: String = "broadcastExchange"
-  val OPERATOR_COLLECT_LIMIT: String = "collectLimit"
-  val OPERATOR_COALESCE: String = "coalesce"
-  val OPERATOR_TAKE_ORDERED_AND_PROJECT: String = "takeOrderedAndProject"
-  val OPERATOR_HASH_JOIN: String = "hashJoin"
-  val OPERATOR_SORT_MERGE_JOIN: String = "sortMergeJoin"
-  val OPERATOR_BROADCAST_HASH_JOIN: String = "broadcastHashJoin"
-  val OPERATOR_EXPAND: String = "expand"
-  val OPERATOR_WINDOW: String = "window"
-  val OPERATOR_UNION: String = "union"
-  val OPERATOR_LOCAL_LIMIT: String = "localLimit"
-  val OPERATOR_GLOBAL_LIMIT: String = "globalLimit"
-
-  val EXPRESSION_STDDEV: String = "stddev"
-
   /** List of all configs that is used for generating documentation */
   val allConfs = new ListBuffer[ConfigEntry[_]]
 
@@ -123,42 +104,42 @@ object CometConf extends ShimCometConf {
     .createWithDefault(false)
 
   val COMET_EXEC_PROJECT_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_PROJECT, defaultValue = false)
+    createExecEnabledConfig("project", defaultValue = true)
   val COMET_EXEC_FILTER_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_FILTER, defaultValue = false)
+    createExecEnabledConfig("filter", defaultValue = true)
   val COMET_EXEC_SORT_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_SORT, defaultValue = false)
+    createExecEnabledConfig("sort", defaultValue = true)
   val COMET_EXEC_LOCAL_LIMIT_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_LOCAL_LIMIT, defaultValue = false)
+    createExecEnabledConfig("localLimit", defaultValue = true)
   val COMET_EXEC_GLOBAL_LIMIT_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_GLOBAL_LIMIT, defaultValue = false)
+    createExecEnabledConfig("globalLimit", defaultValue = true)
   val COMET_EXEC_BROADCAST_HASH_JOIN_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_BROADCAST_HASH_JOIN, defaultValue = false)
+    createExecEnabledConfig("broadcastHashJoin", defaultValue = true)
   val COMET_EXEC_BROADCAST_EXCHANGE_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_BROADCAST_EXCHANGE, defaultValue = false)
+    createExecEnabledConfig("broadcastExchange", defaultValue = true)
   val COMET_EXEC_HASH_JOIN_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_HASH_JOIN, defaultValue = false)
+    createExecEnabledConfig("hashJoin", defaultValue = true)
   val COMET_EXEC_SORT_MERGE_JOIN_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_SORT_MERGE_JOIN, defaultValue = false)
+    createExecEnabledConfig("sortMergeJoin", defaultValue = true)
   val COMET_EXEC_AGGREGATE_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_AGGREGATE, defaultValue = false)
+    createExecEnabledConfig("aggregate", defaultValue = true)
   val COMET_EXEC_COLLECT_LIMIT_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_COLLECT_LIMIT, defaultValue = false)
+    createExecEnabledConfig("collectLimit", defaultValue = true)
   val COMET_EXEC_COALESCE_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_COALESCE, defaultValue = false)
+    createExecEnabledConfig("coalesce", defaultValue = true)
   val COMET_EXEC_UNION_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_UNION, defaultValue = false)
+    createExecEnabledConfig("union", defaultValue = true)
   val COMET_EXEC_EXPAND_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_EXPAND, defaultValue = false)
+    createExecEnabledConfig("expand", defaultValue = true)
   val COMET_EXEC_WINDOW_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_WINDOW, defaultValue = false)
+    createExecEnabledConfig("window", defaultValue = true)
   val COMET_EXEC_TAKE_ORDERED_AND_PROJECT_ENABLED: ConfigEntry[Boolean] =
-    createExecEnabledConfig(OPERATOR_TAKE_ORDERED_AND_PROJECT, defaultValue = 
false)
+    createExecEnabledConfig("takeOrderedAndProject", defaultValue = true)
 
   val COMET_EXPR_STDDEV_ENABLED: ConfigEntry[Boolean] =
     createExecEnabledConfig(
-      EXPRESSION_STDDEV,
-      defaultValue = false,
+      "stddev",
+      defaultValue = true,
       notes = Some("stddev is slower than Spark's implementation"))
 
   val COMET_MEMORY_OVERHEAD: OptionalConfigEntry[Long] = 
conf("spark.comet.memoryOverhead")
@@ -190,15 +171,6 @@ object CometConf extends ShimCometConf {
       "Ensure that Comet memory overhead min is a long greater than or equal 
to 0")
     .createWithDefault(384)
 
-  val COMET_EXEC_ALL_OPERATOR_ENABLED: ConfigEntry[Boolean] = conf(
-    s"$COMET_EXEC_CONFIG_PREFIX.all.enabled")
-    .doc(
-      "Whether to enable all Comet operators. By default, this config is 
false. Note that " +
-        "this config precedes all separate config 
'spark.comet.exec.<operator_name>.enabled'. " +
-        "That being said, if this config is enabled, separate configs are 
ignored.")
-    .booleanConf
-    .createWithDefault(false)
-
   val COMET_EXEC_SHUFFLE_ENABLED: ConfigEntry[Boolean] =
     conf(s"$COMET_EXEC_CONFIG_PREFIX.shuffle.enabled")
       .doc(
@@ -524,7 +496,7 @@ object CometConf extends ShimCometConf {
       notes: Option[String] = None): ConfigEntry[Boolean] = {
     conf(s"$COMET_EXEC_CONFIG_PREFIX.$exec.enabled")
       .doc(
-        s"Whether to enable $exec by default. The default value is 
$defaultValue." + notes
+        s"Whether to enable $exec by default." + notes
           .map(s => s" $s.")
           .getOrElse(""))
       .booleanConf
diff --git a/docs/source/contributor-guide/benchmarking.md 
b/docs/source/contributor-guide/benchmarking.md
index 5f4f1091..b6e9ce1d 100644
--- a/docs/source/contributor-guide/benchmarking.md
+++ b/docs/source/contributor-guide/benchmarking.md
@@ -63,7 +63,6 @@ $SPARK_HOME/bin/spark-submit \
     --conf spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions \
     --conf spark.comet.enabled=true \
     --conf spark.comet.exec.enabled=true \
-    --conf spark.comet.exec.all.enabled=true \
     --conf spark.comet.cast.allowIncompatible=true \
     --conf spark.comet.exec.shuffle.enabled=true \
     --conf spark.comet.exec.shuffle.mode=auto \
diff --git a/docs/source/contributor-guide/debugging.md 
b/docs/source/contributor-guide/debugging.md
index d1f62a5d..31faa427 100644
--- a/docs/source/contributor-guide/debugging.md
+++ b/docs/source/contributor-guide/debugging.md
@@ -130,7 +130,7 @@ Then build the Comet as 
[described](https://github.com/apache/arrow-datafusion-c
 Start Comet with `RUST_BACKTRACE=1`
 
 ```console
-RUST_BACKTRACE=1 $SPARK_HOME/spark-shell --jars 
spark/target/comet-spark-spark3.4_2.12-0.1.0-SNAPSHOT.jar --conf 
spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions --conf 
spark.comet.enabled=true --conf spark.comet.exec.enabled=true --conf 
spark.comet.exec.all.enabled=true
+RUST_BACKTRACE=1 $SPARK_HOME/spark-shell --jars 
spark/target/comet-spark-spark3.4_2.12-0.1.0-SNAPSHOT.jar --conf 
spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions --conf 
spark.comet.enabled=true --conf spark.comet.exec.enabled=true
 ```
 
 Get the expanded exception details
diff --git a/docs/source/user-guide/configs.md 
b/docs/source/user-guide/configs.md
index 8465baa7..5c29b709 100644
--- a/docs/source/user-guide/configs.md
+++ b/docs/source/user-guide/configs.md
@@ -35,29 +35,28 @@ Comet provides the following configuration settings.
 | spark.comet.debug.enabled | Whether to enable debug mode for Comet. By 
default, this config is false. When enabled, Comet will do additional checks 
for debugging purpose. For example, validating array when importing arrays from 
JVM at native side. Note that these checks may be expensive in performance and 
should only be enabled for debugging purpose. | false |
 | spark.comet.enabled | Whether to enable Comet extension for Spark. When this 
is turned on, Spark will use Comet to read Parquet data source. Note that to 
enable native vectorized execution, both this config and 
'spark.comet.exec.enabled' need to be enabled. By default, this config is the 
value of the env var `ENABLE_COMET` if set, or true otherwise. | true |
 | spark.comet.exceptionOnDatetimeRebase | Whether to throw exception when 
seeing dates/timestamps from the legacy hybrid (Julian + Gregorian) calendar. 
Since Spark 3, dates/timestamps were written according to the Proleptic 
Gregorian calendar. When this is true, Comet will throw exceptions when seeing 
these dates/timestamps that were written by Spark version before 3.0. If this 
is false, these dates/timestamps will be read as if they were written to the 
Proleptic Gregorian calendar and w [...]
-| spark.comet.exec.aggregate.enabled | Whether to enable aggregate by default. 
The default value is false. | false |
-| spark.comet.exec.all.enabled | Whether to enable all Comet operators. By 
default, this config is false. Note that this config precedes all separate 
config 'spark.comet.exec.<operator_name>.enabled'. That being said, if this 
config is enabled, separate configs are ignored. | false |
-| spark.comet.exec.broadcastExchange.enabled | Whether to enable 
broadcastExchange by default. The default value is false. | false |
-| spark.comet.exec.broadcastHashJoin.enabled | Whether to enable 
broadcastHashJoin by default. The default value is false. | false |
-| spark.comet.exec.coalesce.enabled | Whether to enable coalesce by default. 
The default value is false. | false |
-| spark.comet.exec.collectLimit.enabled | Whether to enable collectLimit by 
default. The default value is false. | false |
+| spark.comet.exec.aggregate.enabled | Whether to enable aggregate by default. 
| true |
+| spark.comet.exec.broadcastExchange.enabled | Whether to enable 
broadcastExchange by default. | true |
+| spark.comet.exec.broadcastHashJoin.enabled | Whether to enable 
broadcastHashJoin by default. | true |
+| spark.comet.exec.coalesce.enabled | Whether to enable coalesce by default. | 
true |
+| spark.comet.exec.collectLimit.enabled | Whether to enable collectLimit by 
default. | true |
 | spark.comet.exec.enabled | Whether to enable Comet native vectorized 
execution for Spark. This controls whether Spark should convert operators into 
their Comet counterparts and execute them in native space. Note: each operator 
is associated with a separate config in the format of 
'spark.comet.exec.<operator_name>.enabled' at the moment, and both the config 
and this need to be turned on, in order for the operator to be executed in 
native. By default, this config is false. | false |
-| spark.comet.exec.expand.enabled | Whether to enable expand by default. The 
default value is false. | false |
-| spark.comet.exec.filter.enabled | Whether to enable filter by default. The 
default value is false. | false |
-| spark.comet.exec.globalLimit.enabled | Whether to enable globalLimit by 
default. The default value is false. | false |
-| spark.comet.exec.hashJoin.enabled | Whether to enable hashJoin by default. 
The default value is false. | false |
-| spark.comet.exec.localLimit.enabled | Whether to enable localLimit by 
default. The default value is false. | false |
+| spark.comet.exec.expand.enabled | Whether to enable expand by default. | 
true |
+| spark.comet.exec.filter.enabled | Whether to enable filter by default. | 
true |
+| spark.comet.exec.globalLimit.enabled | Whether to enable globalLimit by 
default. | true |
+| spark.comet.exec.hashJoin.enabled | Whether to enable hashJoin by default. | 
true |
+| spark.comet.exec.localLimit.enabled | Whether to enable localLimit by 
default. | true |
 | spark.comet.exec.memoryFraction | The fraction of memory from Comet memory 
overhead that the native memory manager can use for execution. The purpose of 
this config is to set aside memory for untracked data structures, as well as 
imprecise size estimation during memory acquisition. Default value is 0.7. | 
0.7 |
-| spark.comet.exec.project.enabled | Whether to enable project by default. The 
default value is false. | false |
+| spark.comet.exec.project.enabled | Whether to enable project by default. | 
true |
 | spark.comet.exec.shuffle.codec | The codec of Comet native shuffle used to 
compress shuffle data. Only zstd is supported. | zstd |
 | spark.comet.exec.shuffle.enabled | Whether to enable Comet native shuffle. 
By default, this config is false. Note that this requires setting 
'spark.shuffle.manager' to 
'org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager'. 
'spark.shuffle.manager' must be set before starting the Spark application and 
cannot be changed during the application. | false |
 | spark.comet.exec.shuffle.mode | The mode of Comet shuffle. This config is 
only effective if Comet shuffle is enabled. Available modes are 'native', 
'jvm', and 'auto'. 'native' is for native shuffle which has best performance in 
general. 'jvm' is for jvm-based columnar shuffle which has higher coverage than 
native shuffle. 'auto' is for Comet to choose the best shuffle mode based on 
the query plan. By default, this config is 'jvm'. | jvm |
-| spark.comet.exec.sort.enabled | Whether to enable sort by default. The 
default value is false. | false |
-| spark.comet.exec.sortMergeJoin.enabled | Whether to enable sortMergeJoin by 
default. The default value is false. | false |
-| spark.comet.exec.stddev.enabled | Whether to enable stddev by default. The 
default value is false. stddev is slower than Spark's implementation. | false |
-| spark.comet.exec.takeOrderedAndProject.enabled | Whether to enable 
takeOrderedAndProject by default. The default value is false. | false |
-| spark.comet.exec.union.enabled | Whether to enable union by default. The 
default value is false. | false |
-| spark.comet.exec.window.enabled | Whether to enable window by default. The 
default value is false. | false |
+| spark.comet.exec.sort.enabled | Whether to enable sort by default. | true |
+| spark.comet.exec.sortMergeJoin.enabled | Whether to enable sortMergeJoin by 
default. | true |
+| spark.comet.exec.stddev.enabled | Whether to enable stddev by default. 
stddev is slower than Spark's implementation. | true |
+| spark.comet.exec.takeOrderedAndProject.enabled | Whether to enable 
takeOrderedAndProject by default. | true |
+| spark.comet.exec.union.enabled | Whether to enable union by default. | true |
+| spark.comet.exec.window.enabled | Whether to enable window by default. | 
true |
 | spark.comet.explain.native.enabled | When this setting is enabled, Comet 
will provide a tree representation of the native query plan before execution 
and again after execution, with metrics. | false |
 | spark.comet.explain.verbose.enabled | When this setting is enabled, Comet 
will provide a verbose tree representation of the extended information. | false 
|
 | spark.comet.explainFallback.enabled | When this setting is enabled, Comet 
will provide logging explaining the reason(s) why a query stage cannot be 
executed natively. Set this to false to reduce the amount of logging. | false |
diff --git a/docs/source/user-guide/installation.md 
b/docs/source/user-guide/installation.md
index cb7f032d..a87e41e7 100644
--- a/docs/source/user-guide/installation.md
+++ b/docs/source/user-guide/installation.md
@@ -88,7 +88,6 @@ $SPARK_HOME/bin/spark-shell \
     --conf spark.sql.extensions=org.apache.comet.CometSparkSessionExtensions \
     --conf spark.comet.enabled=true \
     --conf spark.comet.exec.enabled=true \
-    --conf spark.comet.exec.all.enabled=true \
     --conf spark.comet.explainFallback.enabled=true
 ```
 
diff --git a/native/Cargo.lock b/native/Cargo.lock
index 27bc3828..b97740ee 100644
--- a/native/Cargo.lock
+++ b/native/Cargo.lock
@@ -108,9 +108,9 @@ checksum = 
"9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a"
 
 [[package]]
 name = "arrayvec"
-version = "0.7.4"
+version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
 
 [[package]]
 name = "arrow"
@@ -346,7 +346,7 @@ checksum = 
"6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -457,9 +457,9 @@ checksum = 
"79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "bytemuck"
-version = "1.16.3"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83"
+checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31"
 
 [[package]]
 name = "byteorder"
@@ -481,12 +481,13 @@ checksum = 
"37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.1.8"
+version = "1.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "504bdec147f2cc13c8b57ed9401fd8a147cc66b67ad5cb241394244f2c947549"
+checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48"
 dependencies = [
  "jobserver",
  "libc",
+ "shlex",
 ]
 
 [[package]]
@@ -586,18 +587,18 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.13"
+version = "4.5.16"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc"
+checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.5.13"
+version = "4.5.15"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99"
+checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
 dependencies = [
  "anstyle",
  "clap_lex",
@@ -658,9 +659,9 @@ checksum = 
"f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "cpp_demangle"
@@ -673,9 +674,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
 dependencies = [
  "libc",
 ]
@@ -804,7 +805,8 @@ dependencies = [
 [[package]]
 name = "datafusion"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "e4fd4a99fc70d40ef7e52b243b4a399c3f8d353a40d5ecb200deee05e49c61bb"
 dependencies = [
  "ahash",
  "arrow",
@@ -851,7 +853,8 @@ dependencies = [
 [[package]]
 name = "datafusion-catalog"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "e13b3cfbd84c6003594ae1972314e3df303a27ce8ce755fcea3240c90f4c0529"
 dependencies = [
  "arrow-schema",
  "async-trait",
@@ -949,7 +952,8 @@ dependencies = [
 [[package]]
 name = "datafusion-common"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "44fdbc877e3e40dcf88cc8f283d9f5c8851f0a3aa07fee657b1b75ac1ad49b9c"
 dependencies = [
  "ahash",
  "arrow",
@@ -969,7 +973,8 @@ dependencies = [
 [[package]]
 name = "datafusion-common-runtime"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "8a7496d1f664179f6ce3a5cbef6566056ccaf3ea4aa72cc455f80e62c1dd86b1"
 dependencies = [
  "tokio",
 ]
@@ -977,7 +982,8 @@ dependencies = [
 [[package]]
 name = "datafusion-execution"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "799e70968c815b611116951e3dd876aef04bf217da31b72eec01ee6a959336a1"
 dependencies = [
  "arrow",
  "chrono",
@@ -997,7 +1003,8 @@ dependencies = [
 [[package]]
 name = "datafusion-expr"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "1c1841c409d9518c17971d15c9bae62e629eb937e6fb6c68cd32e9186f8b30d2"
 dependencies = [
  "ahash",
  "arrow",
@@ -1015,7 +1022,8 @@ dependencies = [
 [[package]]
 name = "datafusion-functions"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "a8e481cf34d2a444bd8fa09b65945f0ce83dc92df8665b761505b3d9f351bebb"
 dependencies = [
  "arrow",
  "arrow-buffer",
@@ -1041,7 +1049,8 @@ dependencies = [
 [[package]]
 name = "datafusion-functions-aggregate"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "2b4ece19f73c02727e5e8654d79cd5652de371352c1df3c4ac3e419ecd6943fb"
 dependencies = [
  "ahash",
  "arrow",
@@ -1058,7 +1067,8 @@ dependencies = [
 [[package]]
 name = "datafusion-functions-nested"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "a1474552cc824e8c9c88177d454db5781d4b66757d4aca75719306b8343a5e8d"
 dependencies = [
  "arrow",
  "arrow-array",
@@ -1079,7 +1089,8 @@ dependencies = [
 [[package]]
 name = "datafusion-optimizer"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "791ff56f55608bc542d1ea7a68a64bdc86a9413f5a381d06a39fd49c2a3ab906"
 dependencies = [
  "arrow",
  "async-trait",
@@ -1098,7 +1109,8 @@ dependencies = [
 [[package]]
 name = "datafusion-physical-expr"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "9a223962b3041304a3e20ed07a21d5de3d88d7e4e71ca192135db6d24e3365a4"
 dependencies = [
  "ahash",
  "arrow",
@@ -1127,7 +1139,8 @@ dependencies = [
 [[package]]
 name = "datafusion-physical-expr-common"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "db5e7d8532a1601cd916881db87a70b0a599900d23f3db2897d389032da53bc6"
 dependencies = [
  "ahash",
  "arrow",
@@ -1140,7 +1153,8 @@ dependencies = [
 [[package]]
 name = "datafusion-physical-optimizer"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "fdb9c78f308e050f5004671039786a925c3fee83b90004e9fcfd328d7febdcc0"
 dependencies = [
  "datafusion-common",
  "datafusion-execution",
@@ -1151,7 +1165,8 @@ dependencies = [
 [[package]]
 name = "datafusion-physical-plan"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "8d1116949432eb2d30f6362707e2846d942e491052a206f2ddcb42d08aea1ffe"
 dependencies = [
  "ahash",
  "arrow",
@@ -1184,7 +1199,8 @@ dependencies = [
 [[package]]
 name = "datafusion-sql"
 version = "41.0.0"
-source = 
"git+https://github.com/apache/datafusion.git?rev=41.0.0-rc1#b10b820acb6ad92b5d69810e3d4de0ef6f2d6a87";
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "b45d0180711165fe94015d7c4123eb3e1cf5fb60b1506453200b8d1ce666bef0"
 dependencies = [
  "arrow",
  "arrow-array",
@@ -1377,7 +1393,7 @@ checksum = 
"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -1491,6 +1507,12 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
+[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
 [[package]]
 name = "hex"
 version = "0.4.3"
@@ -1547,9 +1569,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0"
+checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1593,11 +1615,11 @@ checksum = 
"8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.4.0",
  "libc",
  "windows-sys 0.52.0",
 ]
@@ -1689,9 +1711,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.69"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1768,9 +1790,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.155"
+version = "0.2.157"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "374af5f94e54fa97cf75e945cce8a6b201e88a1a07e688b47dfd2a59c66dbd86"
 
 [[package]]
 name = "libloading"
@@ -2036,7 +2058,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.3.9",
  "libc",
 ]
 
@@ -2346,10 +2368,10 @@ source = 
"registry+https://github.com/rust-lang/crates.io-index";
 checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
 dependencies = [
  "anyhow",
- "itertools 0.10.5",
+ "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -2546,9 +2568,9 @@ checksum = 
"a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.205"
+version = "1.0.208"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e33aedb1a7135da52b7c21791455563facbbcc43d0f0f66165b42c21b3dfb150"
+checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
 dependencies = [
  "serde_derive",
 ]
@@ -2565,20 +2587,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.205"
+version = "1.0.208"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "692d6f5ac90220161d6774db30c662202721e64aed9058d2c394f451261420c1"
+checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.122"
+version = "1.0.125"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da"
+checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
 dependencies = [
  "itoa",
  "memchr",
@@ -2610,6 +2632,12 @@ dependencies = [
  "digest",
 ]
 
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
 [[package]]
 name = "simd-adler32"
 version = "0.3.7"
@@ -2683,7 +2711,7 @@ checksum = 
"01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -2723,7 +2751,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -2768,9 +2796,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.72"
+version = "2.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
+checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2807,7 +2835,7 @@ checksum = 
"a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -2867,9 +2895,9 @@ checksum = 
"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.39.2"
+version = "1.39.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1"
+checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2885,7 +2913,7 @@ checksum = 
"693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -2907,7 +2935,7 @@ checksum = 
"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
@@ -3037,34 +3065,35 @@ checksum = 
"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
 dependencies = [
  "cfg-if",
+ "once_cell",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3072,28 +3101,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
 
 [[package]]
 name = "web-sys"
-version = "0.3.69"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3317,7 +3346,7 @@ checksum = 
"fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.72",
+ "syn 2.0.75",
 ]
 
 [[package]]
diff --git 
a/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala 
b/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala
index 6e3663e5..2b2c0ebe 100644
--- a/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala
+++ b/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala
@@ -47,7 +47,7 @@ import org.apache.spark.sql.internal.SQLConf
 
 import org.apache.comet.CometConf._
 import org.apache.comet.CometExplainInfo.getActualPlan
-import org.apache.comet.CometSparkSessionExtensions.{createMessage, 
getCometBroadcastNotEnabledReason, getCometShuffleNotEnabledReason, 
isANSIEnabled, isCometBroadCastForceEnabled, isCometEnabled, 
isCometExecEnabled, isCometJVMShuffleMode, isCometNativeShuffleMode, 
isCometOperatorEnabled, isCometScan, isCometScanEnabled, isCometShuffleEnabled, 
isSpark34Plus, isSpark40Plus, shouldApplySparkToColumnar, withInfo, withInfos}
+import org.apache.comet.CometSparkSessionExtensions.{createMessage, 
getCometBroadcastNotEnabledReason, getCometShuffleNotEnabledReason, 
isANSIEnabled, isCometBroadCastForceEnabled, isCometEnabled, 
isCometExecEnabled, isCometJVMShuffleMode, isCometNativeShuffleMode, 
isCometScan, isCometScanEnabled, isCometShuffleEnabled, isSpark34Plus, 
isSpark40Plus, shouldApplySparkToColumnar, withInfo, withInfos}
 import org.apache.comet.parquet.{CometParquetScan, SupportsComet}
 import org.apache.comet.serde.OperatorOuterClass.Operator
 import org.apache.comet.serde.QueryPlanSerde
@@ -394,9 +394,7 @@ class CometSparkSessionExtensions
           }
 
         case op: CollectLimitExec
-            if isCometNative(op.child) && isCometOperatorEnabled(
-              conf,
-              CometConf.OPERATOR_COLLECT_LIMIT)
+            if isCometNative(op.child) && 
CometConf.COMET_EXEC_COLLECT_LIMIT_ENABLED.get(conf)
               && isCometShuffleEnabled(conf)
               && getOffset(op) == 0 =>
           QueryPlanSerde.operator2Proto(op) match {
@@ -472,7 +470,7 @@ class CometSparkSessionExtensions
           }
 
         case op: ShuffledHashJoinExec
-            if isCometOperatorEnabled(conf, CometConf.OPERATOR_HASH_JOIN) &&
+            if CometConf.COMET_EXEC_HASH_JOIN_ENABLED.get(conf) &&
               op.children.forall(isCometNative(_)) =>
           val newOp = transform1(op)
           newOp match {
@@ -494,8 +492,7 @@ class CometSparkSessionExtensions
               op
           }
 
-        case op: ShuffledHashJoinExec
-            if !isCometOperatorEnabled(conf, CometConf.OPERATOR_HASH_JOIN) =>
+        case op: ShuffledHashJoinExec if 
!CometConf.COMET_EXEC_HASH_JOIN_ENABLED.get(conf) =>
           withInfo(op, "ShuffleHashJoin is not enabled")
           op
 
@@ -507,7 +504,7 @@ class CometSparkSessionExtensions
           op
 
         case op: BroadcastHashJoinExec
-            if isCometOperatorEnabled(conf, 
CometConf.OPERATOR_BROADCAST_HASH_JOIN) &&
+            if CometConf.COMET_EXEC_BROADCAST_HASH_JOIN_ENABLED.get(conf) &&
               op.children.forall(isCometNative(_)) =>
           val newOp = transform1(op)
           newOp match {
@@ -530,7 +527,7 @@ class CometSparkSessionExtensions
           }
 
         case op: SortMergeJoinExec
-            if isCometOperatorEnabled(conf, 
CometConf.OPERATOR_SORT_MERGE_JOIN) &&
+            if CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.get(conf) &&
               op.children.forall(isCometNative(_)) =>
           val newOp = transform1(op)
           newOp match {
@@ -552,7 +549,7 @@ class CometSparkSessionExtensions
           }
 
         case op: SortMergeJoinExec
-            if isCometOperatorEnabled(conf, 
CometConf.OPERATOR_SORT_MERGE_JOIN) &&
+            if CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.get(conf) &&
               !op.children.forall(isCometNative(_)) =>
           withInfo(
             op,
@@ -560,8 +557,7 @@ class CometSparkSessionExtensions
               s"${explainChildNotNative(op)}")
           op
 
-        case op: SortMergeJoinExec
-            if !isCometOperatorEnabled(conf, 
CometConf.OPERATOR_SORT_MERGE_JOIN) =>
+        case op: SortMergeJoinExec if 
!CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.get(conf) =>
           withInfo(op, "SortMergeJoin is not enabled")
           op
 
@@ -573,7 +569,7 @@ class CometSparkSessionExtensions
           op
 
         case c @ CoalesceExec(numPartitions, child)
-            if isCometOperatorEnabled(conf, CometConf.OPERATOR_COALESCE)
+            if CometConf.COMET_EXEC_COALESCE_ENABLED.get(conf)
               && isCometNative(child) =>
           QueryPlanSerde.operator2Proto(c) match {
             case Some(nativeOp) =>
@@ -583,8 +579,7 @@ class CometSparkSessionExtensions
               c
           }
 
-        case c @ CoalesceExec(_, _)
-            if !isCometOperatorEnabled(conf, CometConf.OPERATOR_COALESCE) =>
+        case c @ CoalesceExec(_, _) if 
!CometConf.COMET_EXEC_COALESCE_ENABLED.get(conf) =>
           withInfo(c, "Coalesce is not enabled")
           c
 
@@ -596,9 +591,8 @@ class CometSparkSessionExtensions
           op
 
         case s: TakeOrderedAndProjectExec
-            if isCometNative(s.child) && isCometOperatorEnabled(
-              conf,
-              CometConf.OPERATOR_TAKE_ORDERED_AND_PROJECT)
+            if isCometNative(s.child) && 
CometConf.COMET_EXEC_TAKE_ORDERED_AND_PROJECT_ENABLED
+              .get(conf)
               && isCometShuffleEnabled(conf) &&
               CometTakeOrderedAndProjectExec.isSupported(s) =>
           QueryPlanSerde.operator2Proto(s) match {
@@ -618,7 +612,7 @@ class CometSparkSessionExtensions
 
         case s: TakeOrderedAndProjectExec =>
           val info1 = createMessage(
-            !isCometOperatorEnabled(conf, 
CometConf.OPERATOR_TAKE_ORDERED_AND_PROJECT),
+            !CometConf.COMET_EXEC_TAKE_ORDERED_AND_PROJECT_ENABLED.get(conf),
             "TakeOrderedAndProject is not enabled")
           val info2 = createMessage(
             !isCometShuffleEnabled(conf),
@@ -644,7 +638,7 @@ class CometSparkSessionExtensions
           }
 
         case u: UnionExec
-            if isCometOperatorEnabled(conf, CometConf.OPERATOR_UNION) &&
+            if CometConf.COMET_EXEC_UNION_ENABLED.get(conf) &&
               u.children.forall(isCometNative) =>
           QueryPlanSerde.operator2Proto(u) match {
             case Some(nativeOp) =>
@@ -654,7 +648,7 @@ class CometSparkSessionExtensions
               u
           }
 
-        case u: UnionExec if !isCometOperatorEnabled(conf, 
CometConf.OPERATOR_UNION) =>
+        case u: UnionExec if !CometConf.COMET_EXEC_UNION_ENABLED.get(conf) =>
           withInfo(u, "Union is not enabled")
           u
 
@@ -684,7 +678,7 @@ class CometSparkSessionExtensions
           val newChildren = plan.children.map {
             case b: BroadcastExchangeExec
                 if isCometNative(b.child) &&
-                  isCometOperatorEnabled(conf, 
CometConf.OPERATOR_BROADCAST_EXCHANGE) &&
+                  CometConf.COMET_EXEC_BROADCAST_EXCHANGE_ENABLED.get(conf) &&
                   isSpark34Plus => // Spark 3.4+ only
               QueryPlanSerde.operator2Proto(b) match {
                 case Some(nativeOp) =>
@@ -725,7 +719,7 @@ class CometSparkSessionExtensions
           op
 
         case op: BroadcastHashJoinExec
-            if !isCometOperatorEnabled(conf, 
CometConf.OPERATOR_BROADCAST_HASH_JOIN) =>
+            if !CometConf.COMET_EXEC_BROADCAST_HASH_JOIN_ENABLED.get(conf) =>
           withInfo(op, "BroadcastHashJoin is not enabled")
           op
 
@@ -1044,13 +1038,6 @@ object CometSparkSessionExtensions extends Logging {
     }
   }
 
-  private[comet] def isCometOperatorEnabled(conf: SQLConf, operator: String): 
Boolean = {
-    val operatorFlag = s"$COMET_EXEC_CONFIG_PREFIX.$operator.enabled"
-    val operatorDisabledFlag = s"$COMET_EXEC_CONFIG_PREFIX.$operator.disabled"
-    conf.getConfString(operatorFlag, "false").toBoolean || 
isCometAllOperatorEnabled(conf) &&
-    !conf.getConfString(operatorDisabledFlag, "false").toBoolean
-  }
-
   private[comet] def isCometBroadCastForceEnabled(conf: SQLConf): Boolean = {
     COMET_EXEC_BROADCAST_FORCE_ENABLED.get(conf)
   }
@@ -1110,10 +1097,6 @@ object CometSparkSessionExtensions extends Logging {
     }
   }
 
-  private[comet] def isCometAllOperatorEnabled(conf: SQLConf): Boolean = {
-    COMET_EXEC_ALL_OPERATOR_ENABLED.get(conf)
-  }
-
   def isCometScan(op: SparkPlan): Boolean = {
     op.isInstanceOf[CometBatchScanExec] || op.isInstanceOf[CometScanExec]
   }
diff --git a/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala 
b/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala
index 5ef924f6..cfb84764 100644
--- a/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala
+++ b/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala
@@ -43,7 +43,7 @@ import org.apache.spark.sql.types._
 import org.apache.spark.unsafe.types.UTF8String
 
 import org.apache.comet.CometConf
-import org.apache.comet.CometSparkSessionExtensions.{isCometOperatorEnabled, 
isCometScan, isSpark34Plus, withInfo}
+import org.apache.comet.CometSparkSessionExtensions.{isCometScan, 
isSpark34Plus, withInfo}
 import org.apache.comet.expressions.{CometCast, CometEvalMode, Compatible, 
Incompatible, RegExp, Unsupported}
 import org.apache.comet.serde.ExprOuterClass.{AggExpr, DataType => 
ProtoDataType, Expr, ScalarFunc}
 import org.apache.comet.serde.ExprOuterClass.DataType.{DataTypeInfo, 
DecimalInfo, ListInfo, MapInfo, StructInfo}
@@ -666,63 +666,66 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case StddevSamp(child, _) if !isCometOperatorEnabled(conf, 
CometConf.EXPRESSION_STDDEV) =>
-        withInfo(
-          aggExpr,
-          "stddev disabled by default because it can be slower than Spark. " +
-            s"Set ${CometConf.EXPRESSION_STDDEV}.enabled=true to enable it.",
-          child)
-        None
-
       case std @ StddevSamp(child, nullOnDivideByZero) =>
-        val childExpr = exprToProto(child, inputs, binding)
-        val dataType = serializeDataType(std.dataType)
+        if (CometConf.COMET_EXPR_STDDEV_ENABLED.get(conf)) {
+          val childExpr = exprToProto(child, inputs, binding)
+          val dataType = serializeDataType(std.dataType)
 
-        if (childExpr.isDefined && dataType.isDefined) {
-          val stdBuilder = ExprOuterClass.Stddev.newBuilder()
-          stdBuilder.setChild(childExpr.get)
-          stdBuilder.setNullOnDivideByZero(nullOnDivideByZero)
-          stdBuilder.setDatatype(dataType.get)
-          stdBuilder.setStatsTypeValue(0)
+          if (childExpr.isDefined && dataType.isDefined) {
+            val stdBuilder = ExprOuterClass.Stddev.newBuilder()
+            stdBuilder.setChild(childExpr.get)
+            stdBuilder.setNullOnDivideByZero(nullOnDivideByZero)
+            stdBuilder.setDatatype(dataType.get)
+            stdBuilder.setStatsTypeValue(0)
 
-          Some(
-            ExprOuterClass.AggExpr
-              .newBuilder()
-              .setStddev(stdBuilder)
-              .build())
+            Some(
+              ExprOuterClass.AggExpr
+                .newBuilder()
+                .setStddev(stdBuilder)
+                .build())
+          } else {
+            withInfo(aggExpr, child)
+            None
+          }
         } else {
-          withInfo(aggExpr, child)
+          withInfo(
+            aggExpr,
+            "stddev disabled by default because it can be slower than Spark. " 
+
+              s"Set ${CometConf.COMET_EXPR_STDDEV_ENABLED}=true to enable it.",
+            child)
           None
         }
 
-      case StddevPop(child, _) if !isCometOperatorEnabled(conf, 
CometConf.EXPRESSION_STDDEV) =>
-        withInfo(
-          aggExpr,
-          "stddev disabled by default because it can be slower than Spark. " +
-            s"Set ${CometConf.EXPRESSION_STDDEV}.enabled=true to enable it.",
-          child)
-        None
-
       case std @ StddevPop(child, nullOnDivideByZero) =>
-        val childExpr = exprToProto(child, inputs, binding)
-        val dataType = serializeDataType(std.dataType)
+        if (CometConf.COMET_EXPR_STDDEV_ENABLED.get(conf)) {
+          val childExpr = exprToProto(child, inputs, binding)
+          val dataType = serializeDataType(std.dataType)
 
-        if (childExpr.isDefined && dataType.isDefined) {
-          val stdBuilder = ExprOuterClass.Stddev.newBuilder()
-          stdBuilder.setChild(childExpr.get)
-          stdBuilder.setNullOnDivideByZero(nullOnDivideByZero)
-          stdBuilder.setDatatype(dataType.get)
-          stdBuilder.setStatsTypeValue(1)
+          if (childExpr.isDefined && dataType.isDefined) {
+            val stdBuilder = ExprOuterClass.Stddev.newBuilder()
+            stdBuilder.setChild(childExpr.get)
+            stdBuilder.setNullOnDivideByZero(nullOnDivideByZero)
+            stdBuilder.setDatatype(dataType.get)
+            stdBuilder.setStatsTypeValue(1)
 
-          Some(
-            ExprOuterClass.AggExpr
-              .newBuilder()
-              .setStddev(stdBuilder)
-              .build())
+            Some(
+              ExprOuterClass.AggExpr
+                .newBuilder()
+                .setStddev(stdBuilder)
+                .build())
+          } else {
+            withInfo(aggExpr, child)
+            None
+          }
         } else {
-          withInfo(aggExpr, child)
+          withInfo(
+            aggExpr,
+            "stddev disabled by default because it can be slower than Spark. " 
+
+              s"Set ${CometConf.COMET_EXPR_STDDEV_ENABLED}=true to enable it.",
+            child)
           None
         }
+
       case corr @ Corr(child1, child2, nullOnDivideByZero) =>
         val child1Expr = exprToProto(child1, inputs, binding)
         val child2Expr = exprToProto(child2, inputs, binding)
@@ -2526,12 +2529,12 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
    *   converted to a native operator.
    */
   def operator2Proto(op: SparkPlan, childOp: Operator*): Option[Operator] = {
+    val conf = op.conf
     val result = OperatorOuterClass.Operator.newBuilder()
     childOp.foreach(result.addChildren)
 
     op match {
-      case ProjectExec(projectList, child)
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_PROJECT) =>
+      case ProjectExec(projectList, child) if 
CometConf.COMET_EXEC_PROJECT_ENABLED.get(conf) =>
         val exprs = projectList.map(exprToProto(_, child.output))
 
         if (exprs.forall(_.isDefined) && childOp.nonEmpty) {
@@ -2544,8 +2547,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case FilterExec(condition, child)
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_FILTER) =>
+      case FilterExec(condition, child) if 
CometConf.COMET_EXEC_FILTER_ENABLED.get(conf) =>
         val cond = exprToProto(condition, child.output)
 
         if (cond.isDefined && childOp.nonEmpty) {
@@ -2556,8 +2558,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case SortExec(sortOrder, _, child, _)
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_SORT) =>
+      case SortExec(sortOrder, _, child, _) if 
CometConf.COMET_EXEC_SORT_ENABLED.get(conf) =>
         if (!supportedSortType(op, sortOrder)) {
           return None
         }
@@ -2574,8 +2575,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case LocalLimitExec(limit, _)
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_LOCAL_LIMIT) =>
+      case LocalLimitExec(limit, _) if 
CometConf.COMET_EXEC_LOCAL_LIMIT_ENABLED.get(conf) =>
         if (childOp.nonEmpty) {
           // LocalLimit doesn't use offset, but it shares same operator serde 
class.
           // Just set it to zero.
@@ -2590,7 +2590,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
         }
 
       case globalLimitExec: GlobalLimitExec
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_GLOBAL_LIMIT) 
=>
+          if CometConf.COMET_EXEC_GLOBAL_LIMIT_ENABLED.get(conf) =>
         // TODO: We don't support negative limit for now.
         if (childOp.nonEmpty && globalLimitExec.limit >= 0) {
           val limitBuilder = OperatorOuterClass.Limit.newBuilder()
@@ -2605,8 +2605,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case ExpandExec(projections, _, child)
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_EXPAND) =>
+      case ExpandExec(projections, _, child) if 
CometConf.COMET_EXEC_EXPAND_ENABLED.get(conf) =>
         var allProjExprs: Seq[Expression] = Seq()
         val projExprs = projections.flatMap(_.map(e => {
           allProjExprs = allProjExprs :+ e
@@ -2625,7 +2624,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
         }
 
       case WindowExec(windowExpression, partitionSpec, orderSpec, child)
-          if isCometOperatorEnabled(op.conf, CometConf.OPERATOR_WINDOW) =>
+          if CometConf.COMET_EXEC_WINDOW_ENABLED.get(conf) =>
         val output = child.output
 
         val winExprs: Array[WindowExpression] = windowExpression.flatMap { 
expr =>
@@ -2666,7 +2665,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
       case aggregate: BaseAggregateExec
           if (aggregate.isInstanceOf[HashAggregateExec] ||
             aggregate.isInstanceOf[ObjectHashAggregateExec]) &&
-            isCometOperatorEnabled(op.conf, CometConf.OPERATOR_AGGREGATE) =>
+            CometConf.COMET_EXEC_AGGREGATE_ENABLED.get(conf) =>
         val groupingExpressions = aggregate.groupingExpressions
         val aggregateExpressions = aggregate.aggregateExpressions
         val aggregateAttributes = aggregate.aggregateAttributes
@@ -2770,9 +2769,9 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
       case join: HashJoin =>
         // `HashJoin` has only two implementations in Spark, but we check the 
type of the join to
         // make sure we are handling the correct join type.
-        if (!(isCometOperatorEnabled(op.conf, CometConf.OPERATOR_HASH_JOIN) &&
+        if (!(CometConf.COMET_EXEC_HASH_JOIN_ENABLED.get(conf) &&
             join.isInstanceOf[ShuffledHashJoinExec]) &&
-          !(isCometOperatorEnabled(op.conf, 
CometConf.OPERATOR_BROADCAST_HASH_JOIN) &&
+          !(CometConf.COMET_EXEC_BROADCAST_HASH_JOIN_ENABLED.get(conf) &&
             join.isInstanceOf[BroadcastHashJoinExec])) {
           withInfo(join, s"Invalid hash join type ${join.nodeName}")
           return None
@@ -2826,8 +2825,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case join: SortMergeJoinExec
-          if isCometOperatorEnabled(op.conf, 
CometConf.OPERATOR_SORT_MERGE_JOIN) =>
+      case join: SortMergeJoinExec if 
CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.get(conf) =>
         // `requiredOrders` and `getKeyOrdering` are copied from Spark's 
SortMergeJoinExec.
         def requiredOrders(keys: Seq[Expression]): Seq[SortOrder] = {
           keys.map(SortOrder(_, Ascending))
@@ -2903,8 +2901,7 @@ object QueryPlanSerde extends Logging with 
ShimQueryPlanSerde with CometExprShim
           None
         }
 
-      case join: SortMergeJoinExec
-          if !isCometOperatorEnabled(op.conf, 
CometConf.OPERATOR_SORT_MERGE_JOIN) =>
+      case join: SortMergeJoinExec if 
!CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.get(conf) =>
         withInfo(join, "SortMergeJoin is not enabled")
         None
 
diff --git a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala 
b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala
index 09d7ca97..c50823b5 100644
--- a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala
@@ -1706,7 +1706,6 @@ class CometExpressionSuite extends CometTestBase with 
AdaptiveSparkPlanHelper {
       SQLConf.COALESCE_PARTITIONS_ENABLED.key -> "true",
       CometConf.COMET_ENABLED.key -> "true",
       CometConf.COMET_EXEC_ENABLED.key -> "true",
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
       EXTENDED_EXPLAIN_PROVIDERS_KEY -> 
"org.apache.comet.ExtendedExplainInfo") {
       val table = "test"
       withTable(table) {
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 f2da9587..f1c96eba 100644
--- a/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/exec/CometAggregateSuite.scala
@@ -1222,7 +1222,9 @@ class CometAggregateSuite extends CometTestBase with 
AdaptiveSparkPlanHelper {
   }
 
   test("stddev_pop and stddev_samp") {
-    withSQLConf(CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true") {
+    withSQLConf(
+      CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
+      CometConf.COMET_EXPR_STDDEV_ENABLED.key -> "true") {
       Seq("native", "jvm").foreach { cometShuffleMode =>
         withSQLConf(CometConf.COMET_SHUFFLE_MODE.key -> cometShuffleMode) {
           Seq(true, false).foreach { dictionary =>
diff --git a/spark/src/test/scala/org/apache/comet/exec/CometExecSuite.scala 
b/spark/src/test/scala/org/apache/comet/exec/CometExecSuite.scala
index 455fd76f..b7839abd 100644
--- a/spark/src/test/scala/org/apache/comet/exec/CometExecSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/exec/CometExecSuite.scala
@@ -377,9 +377,7 @@ class CometExecSuite extends CometTestBase {
 
   test("CometExec.executeColumnarCollectIterator can collect ColumnarBatch 
results") {
     assume(isSpark34Plus, "ChunkedByteBuffer is not serializable before Spark 
3.4+")
-    withSQLConf(
-      CometConf.COMET_EXEC_ENABLED.key -> "true",
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+    withSQLConf(CometConf.COMET_EXEC_ENABLED.key -> "true") {
       withParquetTable((0 until 50).map(i => (i, i + 1)), "tbl") {
         val df = sql("SELECT _1 + 1, _2 + 2 FROM tbl WHERE _1 > 3")
 
@@ -469,9 +467,7 @@ class CometExecSuite extends CometTestBase {
   }
 
   test("Comet native metrics: project and filter") {
-    withSQLConf(
-      CometConf.COMET_EXEC_ENABLED.key -> "true",
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+    withSQLConf(CometConf.COMET_EXEC_ENABLED.key -> "true") {
       withParquetTable((0 until 5).map(i => (i, i + 1)), "tbl") {
         val df = sql("SELECT _1 + 1, _2 + 2 FROM tbl WHERE _1 > 3")
         df.collect()
@@ -498,7 +494,6 @@ class CometExecSuite extends CometTestBase {
   test("Comet native metrics: SortMergeJoin") {
     withSQLConf(
       CometConf.COMET_EXEC_ENABLED.key -> "true",
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
       "spark.sql.adaptive.autoBroadcastJoinThreshold" -> "-1",
       "spark.sql.autoBroadcastJoinThreshold" -> "-1",
       "spark.sql.join.preferSortMergeJoin" -> "true") {
@@ -1240,7 +1235,7 @@ class CometExecSuite extends CometTestBase {
         .saveAsTable("bucketed_table2")
 
       withSQLConf(
-        "spark.comet.exec.sortMergeJoin.disabled" -> "true",
+        CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.key -> "false",
         SQLConf.AUTO_BROADCASTJOIN_THRESHOLD.key -> "0",
         SQLConf.WHOLESTAGE_CODEGEN_ENABLED.key -> "false") {
         val t1 = spark.table("bucketed_table1")
@@ -1348,9 +1343,8 @@ class CometExecSuite extends CometTestBase {
 
   test("disabled/unsupported exec with multiple children should not 
disappear") {
     withSQLConf(
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "false",
-      CometConf.COMET_EXEC_CONFIG_PREFIX + ".project.enabled" -> "true",
-      CometConf.COMET_EXEC_CONFIG_PREFIX + ".union.enabled" -> "false") {
+      CometConf.COMET_EXEC_PROJECT_ENABLED.key -> "true",
+      CometConf.COMET_EXEC_UNION_ENABLED.key -> "false") {
       withParquetDataFrame((0 until 5).map(Tuple1(_))) { df =>
         val projected = df.selectExpr("_1 as x")
         val unioned = projected.union(df)
diff --git 
a/spark/src/test/scala/org/apache/comet/exec/CometNativeShuffleSuite.scala 
b/spark/src/test/scala/org/apache/comet/exec/CometNativeShuffleSuite.scala
index d17e4abf..aec122be 100644
--- a/spark/src/test/scala/org/apache/comet/exec/CometNativeShuffleSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/exec/CometNativeShuffleSuite.scala
@@ -174,9 +174,7 @@ class CometNativeShuffleSuite extends CometTestBase with 
AdaptiveSparkPlanHelper
 
   test("fix: Dictionary arrays imported from native should not be overridden") 
{
     Seq(10, 201).foreach { numPartitions =>
-      withSQLConf(
-        CometConf.COMET_BATCH_SIZE.key -> "10",
-        CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+      withSQLConf(CometConf.COMET_BATCH_SIZE.key -> "10") {
         withParquetTable((0 until 50).map(i => (1.toString, 2.toString, (i + 
1).toLong)), "tbl") {
           val df = sql("SELECT * FROM tbl")
             .filter($"_1" === 1.toString)
diff --git 
a/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala 
b/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala
index 3c5ed16c..376139b5 100644
--- a/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala
@@ -659,8 +659,7 @@ abstract class ParquetReadSuite extends CometTestBase {
     Seq(false, true).foreach { enableDictionary =>
       withSQLConf(
         CometConf.COMET_BATCH_SIZE.key -> 7.toString,
-        CometConf.COMET_EXEC_ENABLED.key -> "true",
-        CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+        CometConf.COMET_EXEC_ENABLED.key -> "true") {
         // Make sure this works with Comet native execution too
         val data = (1 to 100)
           .map(_ % 5) // trigger dictionary encoding
@@ -747,7 +746,6 @@ abstract class ParquetReadSuite extends CometTestBase {
     withSQLConf(
       CometConf.COMET_BATCH_SIZE.key -> 7.toString,
       CometConf.COMET_EXEC_ENABLED.key -> "false",
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
       CometConf.COMET_ENABLED.key -> "true") {
       Seq("a", null).foreach { partValue =>
         withTempPath { dir =>
@@ -1286,7 +1284,6 @@ abstract class ParquetReadSuite extends CometTestBase {
     withSQLConf(
       CometConf.COMET_ENABLED.key -> cometEnabled,
       CometConf.COMET_EXEC_ENABLED.key -> cometEnabled,
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> cometEnabled,
       SQLConf.USE_V1_SOURCE_LIST.key -> v1.getOrElse("")) {
       withParquetTable(Seq((Long.MaxValue, 1), (Long.MaxValue, 2)), "tbl") {
         val df = spark.sql("select * from tbl")
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/CometTPCDSQuerySuite.scala 
b/spark/src/test/scala/org/apache/spark/sql/CometTPCDSQuerySuite.scala
index 0c43fc8d..ee59e789 100644
--- a/spark/src/test/scala/org/apache/spark/sql/CometTPCDSQuerySuite.scala
+++ b/spark/src/test/scala/org/apache/spark/sql/CometTPCDSQuerySuite.scala
@@ -185,7 +185,6 @@ class CometTPCDSQuerySuite
       "org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager")
     conf.set(CometConf.COMET_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_ENABLED.key, "true")
-    conf.set(CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_SHUFFLE_ENABLED.key, "true")
     conf.set(CometConf.COMET_MEMORY_OVERHEAD.key, "15g")
     conf.set("spark.sql.adaptive.coalescePartitions.enabled", "true")
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/CometTPCHQuerySuite.scala 
b/spark/src/test/scala/org/apache/spark/sql/CometTPCHQuerySuite.scala
index 2638a0e6..c81fba3e 100644
--- a/spark/src/test/scala/org/apache/spark/sql/CometTPCHQuerySuite.scala
+++ b/spark/src/test/scala/org/apache/spark/sql/CometTPCHQuerySuite.scala
@@ -89,7 +89,6 @@ class CometTPCHQuerySuite extends QueryTest with TPCBase with 
ShimCometTPCHQuery
       "org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager")
     conf.set(CometConf.COMET_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_ENABLED.key, "true")
-    conf.set(CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_SHUFFLE_ENABLED.key, "true")
     conf.set(CometConf.COMET_SHUFFLE_MODE.key, "jvm")
     conf.set(MEMORY_OFFHEAP_ENABLED.key, "true")
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/CometTPCQueryListBase.scala 
b/spark/src/test/scala/org/apache/spark/sql/CometTPCQueryListBase.scala
index 15b1745c..8cabb3a5 100644
--- a/spark/src/test/scala/org/apache/spark/sql/CometTPCQueryListBase.scala
+++ b/spark/src/test/scala/org/apache/spark/sql/CometTPCQueryListBase.scala
@@ -87,7 +87,6 @@ trait CometTPCQueryListBase
         CometConf.COMET_ENABLED.key -> "true",
         CometConf.COMET_EXEC_ENABLED.key -> "true",
         CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-        CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
         CometConf.COMET_EXPLAIN_VERBOSE_ENABLED.key -> "true",
         // Lower bloom filter thresholds to allows us to simulate the plan 
produced at larger scale.
         "spark.sql.optimizer.runtime.bloomFilter.creationSideThreshold" -> 
"1MB",
diff --git a/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala 
b/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala
index c445aae6..694b977e 100644
--- a/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala
+++ b/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala
@@ -78,7 +78,6 @@ abstract class CometTestBase
     conf.set(SQLConf.COALESCE_PARTITIONS_ENABLED.key, "false")
     conf.set(CometConf.COMET_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_ENABLED.key, "true")
-    conf.set(CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key, "true")
     conf.set(CometConf.COMET_SPARK_TO_ARROW_ENABLED.key, "true")
     conf.set(CometConf.COMET_MEMORY_OVERHEAD.key, "2g")
     conf
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometAggregateBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometAggregateBenchmark.scala
index 21d6d457..86b59050 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometAggregateBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometAggregateBenchmark.scala
@@ -73,8 +73,7 @@ object CometAggregateBenchmark extends CometBenchmarkBase {
         benchmark.addCase(s"SQL Parquet - Comet (Scan, Exec) 
($aggregateFunction)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(query).noop()
           }
         }
@@ -121,8 +120,7 @@ object CometAggregateBenchmark extends CometBenchmarkBase {
         benchmark.addCase(s"SQL Parquet - Comet (Scan, Exec) 
($aggregateFunction)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(query).noop()
           }
         }
@@ -167,7 +165,6 @@ object CometAggregateBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_MEMORY_OVERHEAD.key -> "1G") {
             spark.sql(query).noop()
           }
@@ -210,8 +207,7 @@ object CometAggregateBenchmark extends CometBenchmarkBase {
         benchmark.addCase(s"SQL Parquet - Comet (Scan, Exec) 
($aggregateFunction)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(query).noop()
           }
         }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometArithmeticBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometArithmeticBenchmark.scala
index cd3fcadb..c6fe55b5 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometArithmeticBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometArithmeticBenchmark.scala
@@ -61,8 +61,7 @@ object CometArithmeticBenchmark extends CometBenchmarkBase {
         benchmark.addCase(s"$op ($dataType) - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(s"SELECT c1 ${op.sig} c2 FROM $table").noop()
           }
         }
@@ -101,8 +100,7 @@ object CometArithmeticBenchmark extends CometBenchmarkBase {
         benchmark.addCase(s"$op ($dataType) - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(s"SELECT c1 ${op.sig} c2 FROM $table").noop()
           }
         }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometBenchmarkBase.scala 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometBenchmarkBase.scala
index f3704002..6e6c6249 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometBenchmarkBase.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometBenchmarkBase.scala
@@ -97,7 +97,6 @@ trait CometBenchmarkBase extends SqlBasedBenchmark {
       withSQLConf(
         CometConf.COMET_ENABLED.key -> "true",
         CometConf.COMET_EXEC_ENABLED.key -> "true",
-        CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
         SQLConf.ANSI_ENABLED.key -> "false") {
         f
       }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometConditionalExpressionBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometConditionalExpressionBenchmark.scala
index 032b9469..0dddfb36 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometConditionalExpressionBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometConditionalExpressionBenchmark.scala
@@ -54,8 +54,7 @@ object CometConditionalExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(query).noop()
           }
         }
@@ -86,8 +85,7 @@ object CometConditionalExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(query).noop()
           }
         }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometExecBenchmark.scala 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometExecBenchmark.scala
index bf4bfdbe..400d9b82 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometExecBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometExecBenchmark.scala
@@ -91,8 +91,7 @@ object CometExecBenchmark extends CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select c2 + 1, c1 + 2 from parquetV1Table where c1 + 1 
> 0").noop()
           }
         }
@@ -129,7 +128,6 @@ object CometExecBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm") {
             spark.sql(
@@ -163,8 +161,7 @@ object CometExecBenchmark extends CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select * from 
parquetV1Table").sortWithinPartitions("value").noop()
           }
         }
@@ -202,8 +199,7 @@ object CometExecBenchmark extends CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark
               .sql("SELECT col1, col2, SUM(col3) FROM parquetV1Table " +
                 "GROUP BY col1, col2 GROUPING SETS ((col1), (col2))")
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometPredicateExpressionBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometPredicateExpressionBenchmark.scala
index 7f1f4b44..2ca92482 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometPredicateExpressionBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometPredicateExpressionBenchmark.scala
@@ -56,8 +56,7 @@ object CometPredicateExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql(query).noop()
           }
         }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometShuffleBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometShuffleBenchmark.scala
index 30a2823c..46af7115 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometShuffleBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometShuffleBenchmark.scala
@@ -89,7 +89,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "false") {
             spark
               .sql(
@@ -104,7 +103,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_PREFER_DICTIONARY_RATIO.key -> "1.0",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "false") {
@@ -146,7 +144,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "false") {
             spark
               .sql(
@@ -163,7 +160,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_PREFER_DICTIONARY_RATIO.key -> "1.0",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "false") {
@@ -206,7 +202,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "false") {
             spark
               .sql("select c1 from parquetV1Table")
@@ -220,7 +215,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_PREFER_DICTIONARY_RATIO.key -> "1.0",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "false") {
@@ -236,7 +230,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_PREFER_DICTIONARY_RATIO.key -> "2.0",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "false") {
@@ -252,7 +245,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_PREFER_DICTIONARY_RATIO.key -> 
"1000000000.0",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "false") {
@@ -306,7 +298,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "false") {
             spark
               .sql("select c1 from parquetV1Table")
@@ -320,7 +311,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "false") {
             spark
@@ -335,7 +325,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm",
             CometConf.COMET_COLUMNAR_SHUFFLE_ASYNC_ENABLED.key -> "true") {
             spark
@@ -349,7 +338,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true") {
             spark
               .sql("select c1 from parquetV1Table")
@@ -394,7 +382,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "false") {
             spark
               .sql(s"select $columns from parquetV1Table")
@@ -408,7 +395,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_MODE.key -> "jvm") {
             spark
               .sql(s"select $columns from parquetV1Table")
@@ -421,7 +407,6 @@ object CometShuffleBenchmark extends CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
             CometConf.COMET_SHUFFLE_MODE.key -> "native") {
             spark
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometStringExpressionBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometStringExpressionBenchmark.scala
index c8bfa774..0546c917 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometStringExpressionBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometStringExpressionBenchmark.scala
@@ -51,8 +51,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select substring(c1, 1, 100) from 
parquetV1Table").noop()
           }
         }
@@ -82,8 +81,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select space(c1) from parquetV1Table").noop()
           }
         }
@@ -113,8 +111,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select ascii(c1) from parquetV1Table").noop()
           }
         }
@@ -144,8 +141,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select bit_length(c1) from parquetV1Table").noop()
           }
         }
@@ -175,8 +171,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select octet_length(c1) from parquetV1Table").noop()
           }
         }
@@ -207,7 +202,6 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
             CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
             CometConf.COMET_CASE_CONVERSION_ENABLED.key -> "true") {
             spark.sql("select upper(c1) from parquetV1Table").noop()
           }
@@ -238,8 +232,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select lower(c1) from parquetV1Table").noop()
           }
         }
@@ -269,8 +262,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select chr(c1) from parquetV1Table").noop()
           }
         }
@@ -300,8 +292,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select initCap(c1) from parquetV1Table").noop()
           }
         }
@@ -331,8 +322,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select trim(c1) from parquetV1Table").noop()
           }
         }
@@ -362,8 +352,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select concat_ws(' ', c1, c1) from 
parquetV1Table").noop()
           }
         }
@@ -393,8 +382,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select length(c1) from parquetV1Table").noop()
           }
         }
@@ -424,8 +412,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select repeat(c1, 3) from parquetV1Table").noop()
           }
         }
@@ -455,8 +442,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select reverse(c1) from parquetV1Table").noop()
           }
         }
@@ -486,8 +472,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select instr(c1, '123') from parquetV1Table").noop()
           }
         }
@@ -517,8 +502,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select replace(c1, '123', 'abc') from 
parquetV1Table").noop()
           }
         }
@@ -548,8 +532,7 @@ object CometStringExpressionBenchmark extends 
CometBenchmarkBase {
         benchmark.addCase("SQL Parquet - Comet (Scan, Exec)") { _ =>
           withSQLConf(
             CometConf.COMET_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ENABLED.key -> "true",
-            CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+            CometConf.COMET_EXEC_ENABLED.key -> "true") {
             spark.sql("select translate(c1, '123456', 'aBcDeF') from 
parquetV1Table").noop()
           }
         }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCDSMicroBenchmark.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCDSMicroBenchmark.scala
index 08b8de2b..016c2a37 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCDSMicroBenchmark.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCDSMicroBenchmark.scala
@@ -118,9 +118,9 @@ object CometTPCDSMicroBenchmark extends 
CometTPCQueryBenchmarkBase {
           CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
           CometConf.COMET_SHUFFLE_MODE.key -> "auto",
           CometConf.COMET_REGEXP_ALLOW_INCOMPATIBLE.key -> "true",
-          CometConf.COMET_EXPLAIN_NATIVE_ENABLED.key -> "true",
-          CometConf.COMET_EXEC_ENABLED.key -> "true",
-          CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true") {
+          // enabling COMET_EXPLAIN_NATIVE_ENABLED may add overhead but is 
useful for debugging
+          CometConf.COMET_EXPLAIN_NATIVE_ENABLED.key -> "false",
+          CometConf.COMET_EXEC_ENABLED.key -> "true") {
           cometSpark.sql(queryString).noop()
         }
       }
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCQueryBenchmarkBase.scala
 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCQueryBenchmarkBase.scala
index 1700b7ed..2361346b 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCQueryBenchmarkBase.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/benchmark/CometTPCQueryBenchmarkBase.scala
@@ -74,7 +74,6 @@ trait CometTPCQueryBenchmarkBase extends SqlBasedBenchmark 
with CometTPCQueryBas
         withSQLConf(
           CometConf.COMET_ENABLED.key -> "true",
           CometConf.COMET_EXEC_ENABLED.key -> "true",
-          CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
           CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
           CometConf.COMET_SHUFFLE_MODE.key -> "auto") {
           cometSpark.sql(queryString).noop()
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/comet/CometPlanStabilitySuite.scala 
b/spark/src/test/scala/org/apache/spark/sql/comet/CometPlanStabilitySuite.scala
index 62c9d022..759833e6 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/comet/CometPlanStabilitySuite.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/comet/CometPlanStabilitySuite.scala
@@ -261,7 +261,6 @@ trait CometPlanStabilitySuite extends 
DisableAdaptiveExecutionSuite with TPCDSBa
       CometConf.COMET_ENABLED.key -> "true",
       CometConf.COMET_EXEC_ENABLED.key -> "true",
       CometConf.COMET_EXEC_SHUFFLE_ENABLED.key -> "true",
-      CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
       CometConf.COMET_CAST_ALLOW_INCOMPATIBLE.key -> "true", // needed for 
v1.4/q9, v1.4/q44, v2.7.0/q6, v2.7.0/q64
       "spark.sql.readSideCharPadding" -> "false",
       SQLConf.AUTO_BROADCASTJOIN_THRESHOLD.key -> "10MB") {
@@ -288,7 +287,6 @@ trait CometPlanStabilitySuite extends 
DisableAdaptiveExecutionSuite with TPCDSBa
     conf.set(CometConf.COMET_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_ENABLED.key, "true")
     conf.set(CometConf.COMET_MEMORY_OVERHEAD.key, "1g")
-    conf.set(CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key, "true")
     conf.set(CometConf.COMET_EXEC_SHUFFLE_ENABLED.key, "true")
 
     new TestSparkSession(new SparkContext("local[1]", 
this.getClass.getCanonicalName, conf))
diff --git 
a/spark/src/test/scala/org/apache/spark/sql/comet/ParquetEncryptionITCase.scala 
b/spark/src/test/scala/org/apache/spark/sql/comet/ParquetEncryptionITCase.scala
index 0d1a105f..76df1e96 100644
--- 
a/spark/src/test/scala/org/apache/spark/sql/comet/ParquetEncryptionITCase.scala
+++ 
b/spark/src/test/scala/org/apache/spark/sql/comet/ParquetEncryptionITCase.scala
@@ -140,7 +140,6 @@ class ParquetEncryptionITCase extends QueryTest with 
SQLTestUtils {
         withSQLConf(
           CometConf.COMET_ENABLED.key -> cometEnabled,
           CometConf.COMET_EXEC_ENABLED.key -> "true",
-          CometConf.COMET_EXEC_ALL_OPERATOR_ENABLED.key -> "true",
           SQLConf.ANSI_ENABLED.key -> "true") {
           testFun
         }


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


Reply via email to