[
https://issues.apache.org/jira/browse/SPARK-42286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17683167#comment-17683167
]
Apache Spark commented on SPARK-42286:
--------------------------------------
User 'RunyaoChen' has created a pull request for this issue:
https://github.com/apache/spark/pull/39855
> Fix internal error for valid CASE WHEN expression with CAST when inserting
> into a table
> ---------------------------------------------------------------------------------------
>
> Key: SPARK-42286
> URL: https://issues.apache.org/jira/browse/SPARK-42286
> Project: Spark
> Issue Type: Bug
> Components: Spark Core
> Affects Versions: 3.4.0
> Reporter: Runyao.Chen
> Priority: Major
>
> ```
> spark-sql> create or replace table es570639t1 as select x FROM values (1),
> (2), (3) as tab(x);
> spark-sql> create or replace table es570639t2 (x Decimal(9, 0));
> spark-sql> insert into es570639t2 select 0 - (case when x = 1 then 1 else x
> end) from es570639t1 where x = 1;
> ```
> hits the following internal error
> org.apache.spark.SparkException: [INTERNAL_ERROR] Child is not Cast or
> ExpressionProxy of Cast
>
> Stack trace:
> org.apache.spark.SparkException: [INTERNAL_ERROR] Child is not Cast or
> ExpressionProxy of Cast at
> org.apache.spark.SparkException$.internalError(SparkException.scala:78) at
> org.apache.spark.SparkException$.internalError(SparkException.scala:82) at
> org.apache.spark.sql.catalyst.expressions.CheckOverflowInTableInsert.checkChild(Cast.scala:2693)
> at
> org.apache.spark.sql.catalyst.expressions.CheckOverflowInTableInsert.withNewChildInternal(Cast.scala:2697)
> at
> org.apache.spark.sql.catalyst.expressions.CheckOverflowInTableInsert.withNewChildInternal(Cast.scala:2683)
> at
> org.apache.spark.sql.catalyst.trees.UnaryLike.$anonfun$mapChildren$5(TreeNode.scala:1315)
> at
> org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:106)
> at
> org.apache.spark.sql.catalyst.trees.UnaryLike.mapChildren(TreeNode.scala:1314)
> at
> org.apache.spark.sql.catalyst.trees.UnaryLike.mapChildren$(TreeNode.scala:1309)
> at
> org.apache.spark.sql.catalyst.expressions.UnaryExpression.mapChildren(Expression.scala:636)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode.transformUpWithPruning(TreeNode.scala:570)
> at
> org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformUpWithPruning$1(TreeNode.scala:570)
>
> This internal error comes from `CheckOverflowInTableInsert``checkChild`,
> where we covered only `Cast` expr and `ExpressionProxy` expr, but not the
> `CaseWhen` expr.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]