@@ -30,6 +30,10 @@ use crate::expr::literal::PyLiteral;
30
30
use datafusion:: scalar:: ScalarValue ;
31
31
32
32
use self :: alias:: PyAlias ;
33
+ use self :: bool_expr:: {
34
+ PyIsFalse , PyIsNotFalse , PyIsNotNull , PyIsNotTrue , PyIsNotUnknown , PyIsNull , PyIsTrue ,
35
+ PyIsUnknown , PyNegative , PyNot ,
36
+ } ;
33
37
use self :: like:: { PyILike , PyLike , PySimilarTo } ;
34
38
use self :: scalar_variable:: PyScalarVariable ;
35
39
@@ -38,6 +42,7 @@ pub mod aggregate_expr;
38
42
pub mod alias;
39
43
pub mod analyze;
40
44
pub mod binary_expr;
45
+ pub mod bool_expr;
41
46
pub mod column;
42
47
pub mod empty_relation;
43
48
pub mod filter;
@@ -81,6 +86,16 @@ impl PyExpr {
81
86
}
82
87
Expr :: Literal ( value) => Ok ( PyLiteral :: from ( value. clone ( ) ) . into_py ( py) ) ,
83
88
Expr :: BinaryExpr ( expr) => Ok ( PyBinaryExpr :: from ( expr. clone ( ) ) . into_py ( py) ) ,
89
+ Expr :: Not ( expr) => Ok ( PyNot :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
90
+ Expr :: IsNotNull ( expr) => Ok ( PyIsNotNull :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
91
+ Expr :: IsNull ( expr) => Ok ( PyIsNull :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
92
+ Expr :: IsTrue ( expr) => Ok ( PyIsTrue :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
93
+ Expr :: IsFalse ( expr) => Ok ( PyIsFalse :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
94
+ Expr :: IsUnknown ( expr) => Ok ( PyIsUnknown :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
95
+ Expr :: IsNotTrue ( expr) => Ok ( PyIsNotTrue :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
96
+ Expr :: IsNotFalse ( expr) => Ok ( PyIsNotFalse :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
97
+ Expr :: IsNotUnknown ( expr) => Ok ( PyIsNotUnknown :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
98
+ Expr :: Negative ( expr) => Ok ( PyNegative :: new ( * expr. clone ( ) ) . into_py ( py) ) ,
84
99
Expr :: AggregateFunction ( expr) => {
85
100
Ok ( PyAggregateFunction :: from ( expr. clone ( ) ) . into_py ( py) )
86
101
}
@@ -200,6 +215,16 @@ pub(crate) fn init_module(m: &PyModule) -> PyResult<()> {
200
215
m. add_class :: < PyBinaryExpr > ( ) ?;
201
216
m. add_class :: < PyLiteral > ( ) ?;
202
217
m. add_class :: < PyAggregateFunction > ( ) ?;
218
+ m. add_class :: < PyNot > ( ) ?;
219
+ m. add_class :: < PyIsNotNull > ( ) ?;
220
+ m. add_class :: < PyIsNull > ( ) ?;
221
+ m. add_class :: < PyIsTrue > ( ) ?;
222
+ m. add_class :: < PyIsFalse > ( ) ?;
223
+ m. add_class :: < PyIsUnknown > ( ) ?;
224
+ m. add_class :: < PyIsNotTrue > ( ) ?;
225
+ m. add_class :: < PyIsNotFalse > ( ) ?;
226
+ m. add_class :: < PyIsNotUnknown > ( ) ?;
227
+ m. add_class :: < PyNegative > ( ) ?;
203
228
m. add_class :: < PyLike > ( ) ?;
204
229
m. add_class :: < PyILike > ( ) ?;
205
230
m. add_class :: < PySimilarTo > ( ) ?;
0 commit comments