diff --git a/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala b/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala index 2d7110120..ed7541788 100644 --- a/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala +++ b/spark-extension/src/main/scala/org/apache/spark/sql/auron/NativeConverters.scala @@ -101,6 +101,10 @@ object NativeConverters extends Logging { AuronConverters.getBooleanConf("spark.auron.datetime.extract.enabled", defaultValue = false) def castTrimStringEnabled: Boolean = AuronConverters.getBooleanConf("spark.auron.cast.trimString", defaultValue = true) + def singleChildFallbackEnabled: Boolean = + AuronConverters.getBooleanConf( + "spark.auron.expression.singleChildFallback.enabled", + defaultValue = true) /** * Is the data type(scalar or complex) supported by Auron. @@ -288,6 +292,10 @@ object NativeConverters extends Logging { throw new NotImplementedError(s"unsupported expression: (${e.getClass}) $e") } + if (!singleChildFallbackEnabled) { + return convertExprWithFallback(sparkExpr, isPruningExpr = false, fallbackToError) + } + try { // get number of inconvertible children var numInconvertibleChildren = 0