From 1dbec3e10ed299e2b5f337f3c6f14bd4f4560257 Mon Sep 17 00:00:00 2001 From: Lordworms <48054792+Lordworms@users.noreply.github.com> Date: Sat, 23 Mar 2024 06:05:56 -0500 Subject: [PATCH] adding expr to string for IsNotNull IsTrue IsFalse and IsUnkown (#9739) * adding expr to string for IsNotNull IsTrue IsFalse and IsUnkown * fix clippy * change to raw string --- datafusion/sql/src/unparser/expr.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/datafusion/sql/src/unparser/expr.rs b/datafusion/sql/src/unparser/expr.rs index 43f3e348dc32..8d25a607bb89 100644 --- a/datafusion/sql/src/unparser/expr.rs +++ b/datafusion/sql/src/unparser/expr.rs @@ -181,6 +181,18 @@ impl Unparser<'_> { negated: insubq.negated, }) } + Expr::IsNotNull(expr) => { + Ok(ast::Expr::IsNotNull(Box::new(self.expr_to_sql(expr)?))) + } + Expr::IsTrue(expr) => { + Ok(ast::Expr::IsTrue(Box::new(self.expr_to_sql(expr)?))) + } + Expr::IsFalse(expr) => { + Ok(ast::Expr::IsFalse(Box::new(self.expr_to_sql(expr)?))) + } + Expr::IsUnknown(expr) => { + Ok(ast::Expr::IsUnknown(Box::new(self.expr_to_sql(expr)?))) + } _ => not_impl_err!("Unsupported expression: {expr:?}"), } } @@ -599,6 +611,19 @@ mod tests { }), "COUNT(DISTINCT *)", ), + (Expr::IsNotNull(Box::new(col("a"))), r#""a" IS NOT NULL"#), + ( + Expr::IsTrue(Box::new((col("a") + col("b")).gt(lit(4)))), + r#"(("a" + "b") > 4) IS TRUE"#, + ), + ( + Expr::IsFalse(Box::new((col("a") + col("b")).gt(lit(4)))), + r#"(("a" + "b") > 4) IS FALSE"#, + ), + ( + Expr::IsUnknown(Box::new((col("a") + col("b")).gt(lit(4)))), + r#"(("a" + "b") > 4) IS UNKNOWN"#, + ), ]; for (expr, expected) in tests {