cloud-fan commented on code in PR #40446: URL: https://github.com/apache/spark/pull/40446#discussion_r1140005524
########## sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/EquivalentExpressions.scala: ########## @@ -128,10 +131,23 @@ class EquivalentExpressions { // There are some special expressions that we should not recurse into all of its children. // 1. CodegenFallback: it's children will not be used to generate code (call eval() instead) // 2. ConditionalExpression: use its children that will always be evaluated. - private def childrenToRecurse(expr: Expression): Seq[Expression] = expr match { - case _: CodegenFallback => Nil - case c: ConditionalExpression => c.alwaysEvaluatedInputs - case other => other.children + private def childrenToRecurse(expr: Expression): Seq[Expression] = { + val alwaysEvaluated = expr match { + case _: CodegenFallback => Nil + case c: ConditionalExpression => c.alwaysEvaluatedInputs + case other => other.children Review Comment: The tests are correct but I'm confused about why the code works... if `And` is a root expression, we blindly take all its children here, right? -- 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: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org