Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit fecc37a

Browse files
avoid TypedExpr warpping
1 parent dd39c51 commit fecc37a

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

bigframes/core/compile/sqlglot/expressions/comparison_ops.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,24 @@ def _(expr: TypedExpr, op: ops.IsInOp) -> sge.Expression:
4949
values.append(sge.convert(value))
5050

5151
if expr.dtype == dtypes.BOOL_DTYPE and must_upcast_bools:
52-
expr = TypedExpr(sge.cast(expr.expr, "INT64"), dtypes.INT_DTYPE)
52+
sg_lexpr = sge.cast(expr.expr, "INT64")
53+
else:
54+
sg_lexpr = expr.expr
5355

5456
if op.match_nulls:
5557
contains_nulls = any(_is_null(value) for value in op.values)
5658
if contains_nulls:
5759
if len(values) == 0:
58-
return sge.Is(this=expr.expr, expression=sge.Null())
59-
return sge.Is(this=expr.expr, expression=sge.Null()) | sge.In(
60-
this=expr.expr, expressions=values
60+
return sge.Is(this=sg_lexpr, expression=sge.Null())
61+
return sge.Is(this=sg_lexpr, expression=sge.Null()) | sge.In(
62+
this=sg_lexpr, expressions=values
6163
)
6264

6365
if len(values) == 0:
6466
return sge.convert(False)
6567

6668
return sge.func(
67-
"COALESCE", sge.In(this=expr.expr, expressions=values), sge.convert(False)
69+
"COALESCE", sge.In(this=sg_lexpr, expressions=values), sge.convert(False)
6870
)
6971

7072

0 commit comments

Comments
 (0)