andygrove opened a new issue, #2744:
URL: https://github.com/apache/datafusion-comet/issues/2744

   ### What is the problem the feature request solves?
   
   Expressions have consistent configs for enabling, disabling, and allowing 
incompatible uses. This is because `CometExpressionSerde` has the following 
method:
   
   ```scala
   def getExprConfigName(expr: T): String = expr.getClass.getSimpleName
   ```
   
   Config names are built from this:
   
   ```scala
   def getExprEnabledConfigKey(name: String): String = {
     s"${CometConf.COMET_EXPR_CONFIG_PREFIX}.$name.enabled"
   }
   def getExprAllowIncompatConfigKey(name: String): String = {
     s"${CometConf.COMET_EXPR_CONFIG_PREFIX}.$name.allowIncompatible"
   }
   ```
   
   Unfortunately, operators followed a different pattern, where explicit 
configs were implemented:
   
   ```scala
   val COMET_EXEC_GLOBAL_LIMIT_ENABLED: ConfigEntry[Boolean] =
     createExecEnabledConfig("globalLimit", defaultValue = true)
   val COMET_EXEC_BROADCAST_HASH_JOIN_ENABLED: ConfigEntry[Boolean] =
     createExecEnabledConfig("broadcastHashJoin", defaultValue = true)
   ```
   
   Once https://github.com/apache/datafusion-comet/pull/2741 is merged, there 
will be different configs for enabling/disabling versus allowing incompatible. 
For example:
   
   ```
   spark.comet.exec.globalLimit.enabled=true
   spark.comet.exec.GlobalLimitExec.allowIncompatible=true
   ```
   
   We can't simply rename the "enable" configs because that would be a breaking 
change for users.
   
   I propose that we update `CometOperatorSerde` to match the 
`CometExpressionSerde` approach, but also build in support for respecting the 
old / deprecated config as well.
   
   
   
   ### Describe the potential solution
   
   _No response_
   
   ### Additional context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to