retikulum commented on code in PR #3824:
URL: https://github.com/apache/arrow-datafusion/pull/3824#discussion_r996326507


##########
datafusion/optimizer/src/simplify_expressions.rs:
##########
@@ -794,13 +794,20 @@ impl<'a, S: SimplifyInfo> ExprRewriter for Simplifier<'a, 
S> {
                 op: Divide,
                 right,
             } if is_null(&right) => *right,
-            // A / A --> 1 (if a is not nullable)
+            // 0 / 0 -> null

Review Comment:
   > I think the expected behavior of a rewrite rule is the same behavior as 
the current expression evaluator.
   > 
   > One way to check the existing behavior is to use `datafusion-cli`. In this 
case the result of `0/0` is null:
   > 
   > ```shell
   > $ datafusion-cli 
   > DataFusion CLI v13.0.0
   > ❯ select 0 / 0
   > ;
   > +---------------------+
   > | Int64(0) / Int64(0) |
   > +---------------------+
   > |                     |
   > +---------------------+
   > ```
   
   Thank you for your valuable feedback. If my understanding is wrong please 
correct me, we should return `null` for `0 / 0` to provide the same behavior 
with the current expression evaluator. So no changes are needed for 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]

Reply via email to