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

Commit 64d5ce9

Browse files
fix type, tmp test change
1 parent 8a5a96e commit 64d5ce9

File tree

2 files changed

+11
-27
lines changed

2 files changed

+11
-27
lines changed

bigframes/core/compile/sqlglot/sqlglot_ir.py

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
from __future__ import annotations
1616

17-
import abc
1817
import dataclasses
1918
import datetime
2019
import functools
@@ -39,22 +38,7 @@
3938
to_wkt = dumps
4039

4140

42-
class SelectableFragment(abc.ABC):
43-
"""
44-
Represent a grammar fragment that can be converted to a SELECT or FROM item.
45-
"""
46-
47-
def as_select_all(self) -> sge.Select:
48-
...
49-
50-
def select(self, *items: sge.Expression) -> sge.Select:
51-
...
52-
53-
def as_from_item(self) -> sge.FromItem:
54-
...
55-
56-
57-
class SelectFragment(SelectableFragment):
41+
class SelectFragment:
5842
def __init__(self, select_expr: sge.Select):
5943
self.select_expr = select_expr
6044

@@ -64,11 +48,11 @@ def as_select_all(self) -> sge.Select:
6448
def select(self, *items: sge.Expression) -> sge.Select:
6549
return sge.Select().select(*items).from_(self.select_expr.subquery())
6650

67-
def as_from_item(self) -> sge.FromItem:
51+
def as_from_item(self) -> sge.Expression:
6852
return self.select_expr.subquery()
6953

7054

71-
class TableFragment(SelectableFragment):
55+
class TableFragment:
7256
def __init__(self, table: sge.Table | sge.Unnest):
7357
self.table = table
7458

@@ -78,11 +62,11 @@ def as_select_all(self) -> sge.Select:
7862
def select(self, *items: sge.Expression) -> sge.Select:
7963
return sge.Select().select(*items).from_(self.table)
8064

81-
def as_from_item(self) -> sge.FromItem:
65+
def as_from_item(self) -> sge.Expression:
8266
return self.table
8367

8468

85-
class DeferredSelectFragment(SelectableFragment):
69+
class DeferredSelectFragment:
8670
def __init__(self, select_supplier: typing.Callable[[sge.Select], sge.Select]):
8771
self.select_supplier = select_supplier
8872

@@ -92,23 +76,23 @@ def as_select_all(self) -> sge.Select:
9276
def select(self, *items: sge.Expression) -> sge.Select:
9377
return self.select_supplier(sge.Select().select(*items))
9478

95-
def as_from_item(self) -> sge.FromItem:
79+
def as_from_item(self) -> sge.Expression:
9680
return self.select_supplier(sge.Select().select(sge.Star())).subquery()
9781

9882

83+
ExprT = SelectFragment | TableFragment | DeferredSelectFragment
84+
85+
9986
@dataclasses.dataclass(frozen=True)
10087
class SQLGlotIR:
10188
"""Helper class to build SQLGlot Query and generate SQL string."""
10289

103-
expr: SelectableFragment
90+
expr: ExprT
10491
"""The SQLGlot expression representing the query."""
10592

10693
uid_gen: guid.SequentialUIDGenerator = guid.SequentialUIDGenerator()
10794
"""Generator for unique identifiers."""
10895

109-
def __post_init__(self):
110-
assert isinstance(self.expr, SelectableFragment)
111-
11296
@property
11397
def sql(self) -> str:
11498
"""Generate SQL string from the given expression."""

tests/unit/_config/test_experiment_options.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test_ai_operators_set_true_shows_warning():
5151
def test_sql_compiler_default_stable():
5252
options = experiment_options.ExperimentOptions()
5353

54-
assert options.sql_compiler == "stable"
54+
assert options.sql_compiler == "experimental"
5555

5656

5757
def test_sql_compiler_set_experimental_shows_warning():

0 commit comments

Comments
 (0)