cloud-fan commented on code in PR #59072:
URL: https://github.com/apache/spark/pull/59072#discussion_r4118948714


##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ExprUtils.scala:
##########
@@ -59,12 +60,17 @@ object ExprUtils extends EvalHelper with QueryErrorsBase {
     dataType.asInstanceOf[StructType]
   }
 
-  def convertToMapData(exp: Expression): Map[String, String] = exp match {
+  def convertToMapData(exp: Expression, functionName: String): Map[String, 
String] = exp match {
     case m: CreateMap
       if AbstractMapType(
         StringTypeWithCollation(supportsTrimCollation = true),
         StringTypeWithCollation(supportsTrimCollation = true))
         .acceptsType(m.dataType) =>
+      if (!m.foldable &&

Review Comment:
   Updated in f75b84894ba. Constant RuntimeReplaceable options are normalized 
recursively and accepted by default. Other deterministic, row-independent 
non-foldable constants remain behind the legacy config, while references, 
nondeterminism, and unevaluable nodes are rejected in both modes.



##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/ExprUtils.scala:
##########
@@ -65,6 +65,9 @@ object ExprUtils extends EvalHelper with QueryErrorsBase {
         StringTypeWithCollation(supportsTrimCollation = true),
         StringTypeWithCollation(supportsTrimCollation = true))
         .acceptsType(m.dataType) =>
+      if (!m.foldable) {

Review Comment:
   Follow-up: I revised the patch so RuntimeReplaceable expressions are 
recursively normalized before validation and evaluation. The default path 
checks foldability after normalization, while the session legacy flag covers 
only safe deterministic, row-independent non-foldable expressions. The 
migration guide and PR body are updated, and tests cover nvl, nested decode, 
elt, transform, and guarded raise_error.



-- 
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