@@ -140,14 +140,37 @@ def _(op, left: TypedExpr, right: TypedExpr) -> sge.Expression:
140140
141141@BINARY_OP_REGISTRATION .register (ops .ge_op )
142142def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
143- return sge .GTE (this = left .expr , expression = right .expr )
143+ left_expr = _coerce_bool_to_int (left )
144+ right_expr = _coerce_bool_to_int (right )
145+ return sge .GTE (this = left_expr , expression = right_expr )
146+
147+
148+ @BINARY_OP_REGISTRATION .register (ops .gt_op )
149+ def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
150+ left_expr = _coerce_bool_to_int (left )
151+ right_expr = _coerce_bool_to_int (right )
152+ return sge .GT (this = left_expr , expression = right_expr )
144153
145154
146155@BINARY_OP_REGISTRATION .register (ops .JSONSet )
147156def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
148157 return sge .func ("JSON_SET" , left .expr , sge .convert (op .json_path ), right .expr )
149158
150159
160+ @BINARY_OP_REGISTRATION .register (ops .lt_op )
161+ def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
162+ left_expr = _coerce_bool_to_int (left )
163+ right_expr = _coerce_bool_to_int (right )
164+ return sge .LT (this = left_expr , expression = right_expr )
165+
166+
167+ @BINARY_OP_REGISTRATION .register (ops .le_op )
168+ def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
169+ left_expr = _coerce_bool_to_int (left )
170+ right_expr = _coerce_bool_to_int (right )
171+ return sge .LTE (this = left_expr , expression = right_expr )
172+
173+
151174@BINARY_OP_REGISTRATION .register (ops .mul_op )
152175def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
153176 left_expr = _coerce_bool_to_int (left )
@@ -170,6 +193,11 @@ def _(op, left: TypedExpr, right: TypedExpr) -> sge.Expression:
170193 return sge .NEQ (this = left_expr , expression = right_expr )
171194
172195
196+ @BINARY_OP_REGISTRATION .register (ops .obj_make_ref_op )
197+ def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
198+ return sge .func ("OBJ.MAKE_REF" , left .expr , right .expr )
199+
200+
173201@BINARY_OP_REGISTRATION .register (ops .sub_op )
174202def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
175203 if dtypes .is_numeric (left .dtype ) and dtypes .is_numeric (right .dtype ):
@@ -202,11 +230,6 @@ def _(op, left: TypedExpr, right: TypedExpr) -> sge.Expression:
202230 )
203231
204232
205- @BINARY_OP_REGISTRATION .register (ops .obj_make_ref_op )
206- def _ (op , left : TypedExpr , right : TypedExpr ) -> sge .Expression :
207- return sge .func ("OBJ.MAKE_REF" , left .expr , right .expr )
208-
209-
210233def _coerce_bool_to_int (typed_expr : TypedExpr ) -> sge .Expression :
211234 """Coerce boolean expression to integer."""
212235 if typed_expr .dtype == dtypes .BOOL_DTYPE :
0 commit comments