andygrove commented on code in PR #4557:
URL: https://github.com/apache/datafusion-comet/pull/4557#discussion_r3352323219


##########
spark/src/main/scala/org/apache/comet/codegen/CometBatchKernelCodegen.scala:
##########
@@ -401,10 +401,15 @@ object CometBatchKernelCodegen extends Logging with 
CometExprTraitShim {
    * True iff every node in the tree propagates nulls (`NullIntolerant`, 
`BoundReference`, or
    * `Literal`). Gates the [[defaultBody]] short-circuit, which is only 
correct when no node
    * (`Coalesce`, `If`, `CaseWhen`, `Concat`, ...) breaks the propagation 
chain.
+   *
+   * `TryEval` is rejected: it is `NullIntolerant` (null input -> null 
output), but its
+   * `doGenCode` also yields null on non-null input when the child throws. The 
short-circuit
+   * assumes non-null inputs imply non-null output and would feed a null 
`ev.value` to the writer.
    */
   private def allNullIntolerant(expr: Expression): Boolean =
     !expr.exists {
       case _: BoundReference | _: Literal => false
+      case _: TryEval => true

Review Comment:
   Thanks @mbutrovich I have addressed this



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