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

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


The following commit(s) were added to refs/heads/main by this push:
     new a7de1955a [GLUTEN-5656][CORE] Avoid executing subqueries with complex 
data type during validation
a7de1955a is described below

commit a7de1955a507c185fd7c0ef44a3a36b713115582
Author: Hongze Zhang <[email protected]>
AuthorDate: Thu May 9 12:50:57 2024 +0800

    [GLUTEN-5656][CORE] Avoid executing subqueries with complex data type 
during validation
    
    Fixes #5656
---
 .../gluten/expression/ScalarSubqueryTransformer.scala  | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git 
a/gluten-core/src/main/scala/org/apache/gluten/expression/ScalarSubqueryTransformer.scala
 
b/gluten-core/src/main/scala/org/apache/gluten/expression/ScalarSubqueryTransformer.scala
index 61b1e4382..534bde3b3 100644
--- 
a/gluten-core/src/main/scala/org/apache/gluten/expression/ScalarSubqueryTransformer.scala
+++ 
b/gluten-core/src/main/scala/org/apache/gluten/expression/ScalarSubqueryTransformer.scala
@@ -20,17 +20,13 @@ import 
org.apache.gluten.substrait.expression.{ExpressionBuilder, ExpressionNode
 
 import org.apache.spark.sql.catalyst.expressions._
 import org.apache.spark.sql.execution.{BaseSubqueryExec, ScalarSubquery}
-import org.apache.spark.sql.types.{ArrayType, DataType, MapType, StructType}
 
 case class ScalarSubqueryTransformer(plan: BaseSubqueryExec, exprId: ExprId, 
query: ScalarSubquery)
   extends ExpressionTransformer {
 
   override def doTransform(args: java.lang.Object): ExpressionNode = {
     // don't trigger collect when in validation phase
-    if (
-      TransformerState.underValidationState &&
-      !valueSensitiveDataType(query.dataType)
-    ) {
+    if (TransformerState.underValidationState) {
       return ExpressionBuilder.makeLiteral(null, query.dataType, true)
     }
     // the first column in first row from `query`.
@@ -50,16 +46,4 @@ case class ScalarSubqueryTransformer(plan: BaseSubqueryExec, 
exprId: ExprId, que
     }
     ExpressionBuilder.makeLiteral(result, query.dataType, result == null)
   }
-
-  /**
-   * DataTypes which supported or not depend on actual value
-   *
-   * @param dataType
-   * @return
-   */
-  def valueSensitiveDataType(dataType: DataType): Boolean = {
-    dataType.isInstanceOf[MapType] ||
-    dataType.isInstanceOf[ArrayType] ||
-    dataType.isInstanceOf[StructType]
-  }
 }


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

Reply via email to