This is an automated email from the ASF dual-hosted git repository.

liukun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/master by this push:
     new e144920ee refactor: make name of function more meaningful and remove 
useless function (#2841)
e144920ee is described below

commit e144920eea6f86ef3a407844aca02d4169a3b65a
Author: Kun Liu <[email protected]>
AuthorDate: Wed Jul 6 16:28:12 2022 +0800

    refactor: make name of function more meaningful and remove useless function 
(#2841)
---
 datafusion/optimizer/src/simplify_expressions.rs | 39 +++++++++++-------------
 1 file changed, 17 insertions(+), 22 deletions(-)

diff --git a/datafusion/optimizer/src/simplify_expressions.rs 
b/datafusion/optimizer/src/simplify_expressions.rs
index aa089a00a..dd63da989 100644
--- a/datafusion/optimizer/src/simplify_expressions.rs
+++ b/datafusion/optimizer/src/simplify_expressions.rs
@@ -137,8 +137,8 @@ fn is_bool_lit(expr: &Expr) -> bool {
     matches!(expr, Expr::Literal(ScalarValue::Boolean(_)))
 }
 
-/// Return a literal NULL value
-fn lit_null() -> Expr {
+/// Return a literal NULL value of Boolean data type
+fn lit_bool_null() -> Expr {
     Expr::Literal(ScalarValue::Boolean(None))
 }
 
@@ -483,7 +483,7 @@ impl<'a, S: SimplifyInfo> ExprRewriter for Simplifier<'a, 
S> {
                 match as_bool_lit(*left) {
                     Some(true) => *right,
                     Some(false) => Not(right),
-                    None => lit_null(),
+                    None => lit_bool_null(),
                 }
             }
             // A = true  --> A
@@ -497,7 +497,7 @@ impl<'a, S: SimplifyInfo> ExprRewriter for Simplifier<'a, 
S> {
                 match as_bool_lit(*right) {
                     Some(true) => *left,
                     Some(false) => Not(left),
-                    None => lit_null(),
+                    None => lit_bool_null(),
                 }
             }
 
@@ -516,7 +516,7 @@ impl<'a, S: SimplifyInfo> ExprRewriter for Simplifier<'a, 
S> {
                 match as_bool_lit(*left) {
                     Some(true) => Not(right),
                     Some(false) => *right,
-                    None => lit_null(),
+                    None => lit_bool_null(),
                 }
             }
             // A != true  --> !A
@@ -530,7 +530,7 @@ impl<'a, S: SimplifyInfo> ExprRewriter for Simplifier<'a, 
S> {
                 match as_bool_lit(*right) {
                     Some(true) => Not(left),
                     Some(false) => *left,
-                    None => lit_null(),
+                    None => lit_bool_null(),
                 }
             }
 
@@ -996,7 +996,7 @@ mod tests {
 
     #[test]
     fn test_simplify_null_and_false() {
-        let expr = binary_expr(lit_null(), Operator::And, lit(false));
+        let expr = binary_expr(lit_bool_null(), Operator::And, lit(false));
         let expr_eq = lit(false);
 
         assert_eq!(simplify(expr), expr_eq);
@@ -1457,11 +1457,6 @@ mod tests {
         );
     }
 
-    /// Boolean null
-    fn lit_null() -> Expr {
-        Expr::Literal(ScalarValue::Boolean(None))
-    }
-
     #[test]
     fn simplify_expr_bool_or() {
         // col || true is always true
@@ -1471,16 +1466,16 @@ mod tests {
         assert_eq!(simplify(col("c2").or(lit(false))), col("c2"),);
 
         // true || null is always true
-        assert_eq!(simplify(lit(true).or(lit_null())), lit(true),);
+        assert_eq!(simplify(lit(true).or(lit_bool_null())), lit(true),);
 
         // null || true is always true
-        assert_eq!(simplify(lit_null().or(lit(true))), lit(true),);
+        assert_eq!(simplify(lit_bool_null().or(lit(true))), lit(true),);
 
         // false || null is always null
-        assert_eq!(simplify(lit(false).or(lit_null())), lit_null(),);
+        assert_eq!(simplify(lit(false).or(lit_bool_null())), lit_bool_null(),);
 
         // null || false is always null
-        assert_eq!(simplify(lit_null().or(lit(false))), lit_null(),);
+        assert_eq!(simplify(lit_bool_null().or(lit(false))), lit_bool_null(),);
 
         // ( c1 BETWEEN Int32(0) AND Int32(10) ) OR Boolean(NULL)
         // it can be either NULL or  TRUE depending on the value of `c1 
BETWEEN Int32(0) AND Int32(10)`
@@ -1491,7 +1486,7 @@ mod tests {
             low: Box::new(lit(0)),
             high: Box::new(lit(10)),
         };
-        let expr = expr.or(lit_null());
+        let expr = expr.or(lit_bool_null());
         let result = simplify(expr.clone());
         assert_eq!(expr, result);
     }
@@ -1504,16 +1499,16 @@ mod tests {
         assert_eq!(simplify(col("c2").and(lit(false))), lit(false),);
 
         // true && null is always null
-        assert_eq!(simplify(lit(true).and(lit_null())), lit_null(),);
+        assert_eq!(simplify(lit(true).and(lit_bool_null())), lit_bool_null(),);
 
         // null && true is always null
-        assert_eq!(simplify(lit_null().and(lit(true))), lit_null(),);
+        assert_eq!(simplify(lit_bool_null().and(lit(true))), lit_bool_null(),);
 
         // false && null is always false
-        assert_eq!(simplify(lit(false).and(lit_null())), lit(false),);
+        assert_eq!(simplify(lit(false).and(lit_bool_null())), lit(false),);
 
         // null && false is always false
-        assert_eq!(simplify(lit_null().and(lit(false))), lit(false),);
+        assert_eq!(simplify(lit_bool_null().and(lit(false))), lit(false),);
 
         // c1 BETWEEN Int32(0) AND Int32(10) AND Boolean(NULL)
         // it can be either NULL or FALSE depending on the value of `c1 
BETWEEN Int32(0) AND Int32(10`
@@ -1524,7 +1519,7 @@ mod tests {
             low: Box::new(lit(0)),
             high: Box::new(lit(10)),
         };
-        let expr = expr.and(lit_null());
+        let expr = expr.and(lit_bool_null());
         let result = simplify(expr.clone());
         assert_eq!(expr, result);
     }

Reply via email to