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

Commit 46f0775

Browse files
committed
update sql after merging with cte extractions
1 parent 8b65e87 commit 46f0775

File tree

23 files changed

+1683
-2088
lines changed

23 files changed

+1683
-2088
lines changed

tests/unit/core/compile/sqlglot/tpch/conftest.py

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -102,51 +102,46 @@
102102
}
103103

104104

105-
@pytest.fixture(autouse=True, scope="session")
106-
def freeze_time():
107-
with freezegun.freeze_time("2026-03-10 18:00:00"):
108-
yield
109-
110-
111105
@pytest.fixture(scope="session")
112106
def tpch_session():
113107
from bigframes.testing import compiler_session
114108

115109
anonymous_dataset = bigquery.DatasetReference.from_string("bigframes-dev.tpch")
116110
location = "us-central1"
117111

118-
session = mocks.create_bigquery_session(
119-
anonymous_dataset=anonymous_dataset,
120-
location=location,
121-
)
112+
with freezegun.freeze_time("2026-03-10 18:00:00"):
113+
session = mocks.create_bigquery_session(
114+
anonymous_dataset=anonymous_dataset,
115+
location=location,
116+
)
122117

123-
def get_table_mock(table_ref):
124-
if isinstance(table_ref, str):
125-
table_ref = bigquery.TableReference.from_string(table_ref)
118+
def get_table_mock(table_ref):
119+
if isinstance(table_ref, str):
120+
table_ref = bigquery.TableReference.from_string(table_ref)
126121

127-
table_id = table_ref.table_id
128-
schema = TPCH_SCHEMAS.get(table_id, [])
122+
table_id = table_ref.table_id
123+
schema = TPCH_SCHEMAS.get(table_id, [])
129124

130-
table = mock.create_autospec(bigquery.Table, instance=True)
131-
table._properties = {}
132-
# mocks.create_bigquery_session's CURRENT_TIMESTAMP() returns offset-naive datetime.now()
133-
# So we should also use offset-naive here to avoid comparison errors.
134-
now = datetime.datetime.now()
135-
type(table).schema = mock.PropertyMock(return_value=schema)
136-
type(table).project = table_ref.project
137-
type(table).dataset_id = table_ref.dataset_id
138-
type(table).table_id = table_id
139-
type(table).num_rows = mock.PropertyMock(return_value=1000000)
140-
type(table).num_bytes = mock.PropertyMock(return_value=1000000)
141-
type(table).location = mock.PropertyMock(return_value=location)
142-
type(table).table_type = mock.PropertyMock(return_value="TABLE")
143-
type(table).created = mock.PropertyMock(return_value=now)
144-
type(table).modified = mock.PropertyMock(return_value=now)
145-
type(table).range_partitioning = mock.PropertyMock(return_value=None)
146-
type(table).time_partitioning = mock.PropertyMock(return_value=None)
147-
type(table).clustering_fields = mock.PropertyMock(return_value=None)
148-
return table
125+
table = mock.create_autospec(bigquery.Table, instance=True)
126+
table._properties = {}
127+
# mocks.create_bigquery_session's CURRENT_TIMESTAMP() returns offset-naive datetime.now()
128+
# So we should also use offset-naive here to avoid comparison errors.
129+
now = datetime.datetime.now()
130+
type(table).schema = mock.PropertyMock(return_value=schema)
131+
type(table).project = table_ref.project
132+
type(table).dataset_id = table_ref.dataset_id
133+
type(table).table_id = table_id
134+
type(table).num_rows = mock.PropertyMock(return_value=1000000)
135+
type(table).num_bytes = mock.PropertyMock(return_value=1000000)
136+
type(table).location = mock.PropertyMock(return_value=location)
137+
type(table).table_type = mock.PropertyMock(return_value="TABLE")
138+
type(table).created = mock.PropertyMock(return_value=now)
139+
type(table).modified = mock.PropertyMock(return_value=now)
140+
type(table).range_partitioning = mock.PropertyMock(return_value=None)
141+
type(table).time_partitioning = mock.PropertyMock(return_value=None)
142+
type(table).clustering_fields = mock.PropertyMock(return_value=None)
143+
return table
149144

150-
session.bqclient.get_table.side_effect = get_table_mock
151-
session._executor = compiler_session.SQLCompilerExecutor()
152-
return session
145+
session.bqclient.get_table.side_effect = get_table_mock
146+
session._executor = compiler_session.SQLCompilerExecutor()
147+
return session

tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql

Lines changed: 81 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,65 @@
11
WITH `bfcte_0` AS (
22
SELECT
3-
`C_CUSTKEY` AS `bfcol_0`,
4-
`C_NAME` AS `bfcol_1`,
5-
`C_ADDRESS` AS `bfcol_2`,
6-
`C_NATIONKEY` AS `bfcol_3`,
7-
`C_PHONE` AS `bfcol_4`,
8-
`C_ACCTBAL` AS `bfcol_5`,
9-
`C_COMMENT` AS `bfcol_6`
10-
FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
3+
`N_NATIONKEY` AS `bfcol_0`,
4+
`N_NAME` AS `bfcol_1`
5+
FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
116
), `bfcte_1` AS (
127
SELECT
13-
`O_ORDERKEY` AS `bfcol_7`,
14-
`O_CUSTKEY` AS `bfcol_8`,
15-
`O_ORDERDATE` AS `bfcol_9`
16-
FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
8+
`L_ORDERKEY` AS `bfcol_2`,
9+
`L_EXTENDEDPRICE` AS `bfcol_3`,
10+
`L_DISCOUNT` AS `bfcol_4`,
11+
`L_RETURNFLAG` AS `bfcol_5`
12+
FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
1713
), `bfcte_2` AS (
1814
SELECT
19-
*
20-
FROM `bfcte_0`
21-
INNER JOIN `bfcte_1`
22-
ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_8`, 0)
23-
AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_8`, 1)
15+
`O_ORDERKEY` AS `bfcol_6`,
16+
`O_CUSTKEY` AS `bfcol_7`,
17+
`O_ORDERDATE` AS `bfcol_8`
18+
FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
2419
), `bfcte_3` AS (
2520
SELECT
26-
`bfcol_0` AS `bfcol_10`,
27-
`bfcol_1` AS `bfcol_11`,
28-
`bfcol_2` AS `bfcol_12`,
29-
`bfcol_3` AS `bfcol_13`,
30-
`bfcol_4` AS `bfcol_14`,
31-
`bfcol_5` AS `bfcol_15`,
32-
`bfcol_6` AS `bfcol_16`,
33-
`bfcol_7` AS `bfcol_17`,
34-
`bfcol_9` AS `bfcol_18`
35-
FROM `bfcte_2`
21+
`C_CUSTKEY` AS `bfcol_9`,
22+
`C_NAME` AS `bfcol_10`,
23+
`C_ADDRESS` AS `bfcol_11`,
24+
`C_NATIONKEY` AS `bfcol_12`,
25+
`C_PHONE` AS `bfcol_13`,
26+
`C_ACCTBAL` AS `bfcol_14`,
27+
`C_COMMENT` AS `bfcol_15`
28+
FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
3629
), `bfcte_4` AS (
3730
SELECT
38-
`L_ORDERKEY` AS `bfcol_19`,
39-
`L_EXTENDEDPRICE` AS `bfcol_20`,
40-
`L_DISCOUNT` AS `bfcol_21`,
41-
`L_RETURNFLAG` AS `bfcol_22`
42-
FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
31+
`bfcol_9` AS `bfcol_16`,
32+
`bfcol_10` AS `bfcol_17`,
33+
`bfcol_11` AS `bfcol_18`,
34+
`bfcol_12` AS `bfcol_19`,
35+
`bfcol_13` AS `bfcol_20`,
36+
`bfcol_14` AS `bfcol_21`,
37+
`bfcol_15` AS `bfcol_22`,
38+
`bfcol_6` AS `bfcol_23`,
39+
`bfcol_8` AS `bfcol_24`
40+
FROM `bfcte_3`
41+
INNER JOIN `bfcte_2`
42+
ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_7`, 0)
43+
AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_7`, 1)
4344
), `bfcte_5` AS (
4445
SELECT
45-
*
46-
FROM `bfcte_3`
47-
INNER JOIN `bfcte_4`
48-
ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_19`, 0)
49-
AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_19`, 1)
46+
`bfcol_16` AS `bfcol_25`,
47+
`bfcol_17` AS `bfcol_26`,
48+
`bfcol_18` AS `bfcol_27`,
49+
`bfcol_19` AS `bfcol_28`,
50+
`bfcol_20` AS `bfcol_29`,
51+
`bfcol_21` AS `bfcol_30`,
52+
`bfcol_22` AS `bfcol_31`,
53+
`bfcol_24` AS `bfcol_32`,
54+
`bfcol_3` AS `bfcol_33`,
55+
`bfcol_4` AS `bfcol_34`,
56+
`bfcol_5` AS `bfcol_35`
57+
FROM `bfcte_4`
58+
INNER JOIN `bfcte_1`
59+
ON COALESCE(`bfcol_23`, 0) = COALESCE(`bfcol_2`, 0)
60+
AND COALESCE(`bfcol_23`, 1) = COALESCE(`bfcol_2`, 1)
5061
), `bfcte_6` AS (
5162
SELECT
52-
`bfcol_10` AS `bfcol_23`,
53-
`bfcol_11` AS `bfcol_24`,
54-
`bfcol_12` AS `bfcol_25`,
55-
`bfcol_13` AS `bfcol_26`,
56-
`bfcol_14` AS `bfcol_27`,
57-
`bfcol_15` AS `bfcol_28`,
58-
`bfcol_16` AS `bfcol_29`,
59-
`bfcol_18` AS `bfcol_30`,
60-
`bfcol_20` AS `bfcol_31`,
61-
`bfcol_21` AS `bfcol_32`,
62-
`bfcol_22` AS `bfcol_33`
63-
FROM `bfcte_5`
64-
), `bfcte_7` AS (
65-
SELECT
66-
`N_NATIONKEY` AS `bfcol_34`,
67-
`N_NAME` AS `bfcol_35`
68-
FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00'
69-
), `bfcte_8` AS (
70-
SELECT
71-
*
72-
FROM `bfcte_6`
73-
INNER JOIN `bfcte_7`
74-
ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_34`, 0)
75-
AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_34`, 1)
76-
), `bfcte_9` AS (
77-
SELECT
78-
`bfcol_23`,
79-
`bfcol_24`,
8063
`bfcol_25`,
8164
`bfcol_26`,
8265
`bfcol_27`,
@@ -88,52 +71,57 @@ WITH `bfcte_0` AS (
8871
`bfcol_33`,
8972
`bfcol_34`,
9073
`bfcol_35`,
91-
`bfcol_23` AS `bfcol_47`,
92-
`bfcol_24` AS `bfcol_48`,
93-
`bfcol_25` AS `bfcol_49`,
94-
`bfcol_27` AS `bfcol_50`,
95-
`bfcol_28` AS `bfcol_51`,
96-
`bfcol_29` AS `bfcol_52`,
97-
`bfcol_31` AS `bfcol_53`,
98-
`bfcol_32` AS `bfcol_54`,
99-
`bfcol_35` AS `bfcol_55`,
74+
`bfcol_0`,
75+
`bfcol_1`,
76+
`bfcol_25` AS `bfcol_47`,
77+
`bfcol_26` AS `bfcol_48`,
78+
`bfcol_27` AS `bfcol_49`,
79+
`bfcol_29` AS `bfcol_50`,
80+
`bfcol_30` AS `bfcol_51`,
81+
`bfcol_31` AS `bfcol_52`,
82+
`bfcol_33` AS `bfcol_53`,
83+
`bfcol_34` AS `bfcol_54`,
84+
`bfcol_1` AS `bfcol_55`,
10085
(
10186
(
102-
`bfcol_30` >= CAST('1993-10-01' AS DATE)
87+
`bfcol_32` >= CAST('1993-10-01' AS DATE)
10388
)
10489
AND (
105-
`bfcol_30` < CAST('1994-01-01' AS DATE)
90+
`bfcol_32` < CAST('1994-01-01' AS DATE)
10691
)
10792
)
10893
AND (
109-
`bfcol_33` = 'R'
94+
`bfcol_35` = 'R'
11095
) AS `bfcol_56`,
111-
`bfcol_23` AS `bfcol_76`,
112-
`bfcol_24` AS `bfcol_77`,
113-
`bfcol_25` AS `bfcol_78`,
114-
`bfcol_27` AS `bfcol_79`,
115-
`bfcol_28` AS `bfcol_80`,
116-
`bfcol_29` AS `bfcol_81`,
117-
`bfcol_35` AS `bfcol_82`,
96+
`bfcol_25` AS `bfcol_76`,
97+
`bfcol_26` AS `bfcol_77`,
98+
`bfcol_27` AS `bfcol_78`,
99+
`bfcol_29` AS `bfcol_79`,
100+
`bfcol_30` AS `bfcol_80`,
101+
`bfcol_31` AS `bfcol_81`,
102+
`bfcol_1` AS `bfcol_82`,
118103
ROUND((
119-
`bfcol_31` * (
120-
1 - `bfcol_32`
104+
`bfcol_33` * (
105+
1 - `bfcol_34`
121106
)
122107
), 2) AS `bfcol_83`
123-
FROM `bfcte_8`
108+
FROM `bfcte_5`
109+
INNER JOIN `bfcte_0`
110+
ON COALESCE(`bfcol_28`, 0) = COALESCE(`bfcol_0`, 0)
111+
AND COALESCE(`bfcol_28`, 1) = COALESCE(`bfcol_0`, 1)
124112
WHERE
125113
(
126114
(
127-
`bfcol_30` >= CAST('1993-10-01' AS DATE)
115+
`bfcol_32` >= CAST('1993-10-01' AS DATE)
128116
)
129117
AND (
130-
`bfcol_30` < CAST('1994-01-01' AS DATE)
118+
`bfcol_32` < CAST('1994-01-01' AS DATE)
131119
)
132120
)
133121
AND (
134-
`bfcol_33` = 'R'
122+
`bfcol_35` = 'R'
135123
)
136-
), `bfcte_10` AS (
124+
), `bfcte_7` AS (
137125
SELECT
138126
`bfcol_76`,
139127
`bfcol_77`,
@@ -143,7 +131,7 @@ WITH `bfcte_0` AS (
143131
`bfcol_78`,
144132
`bfcol_81`,
145133
COALESCE(SUM(`bfcol_83`), 0) AS `bfcol_92`
146-
FROM `bfcte_9`
134+
FROM `bfcte_6`
147135
WHERE
148136
NOT `bfcol_76` IS NULL
149137
AND NOT `bfcol_77` IS NULL
@@ -170,7 +158,7 @@ SELECT
170158
`bfcol_78` AS `C_ADDRESS`,
171159
`bfcol_79` AS `C_PHONE`,
172160
`bfcol_81` AS `C_COMMENT`
173-
FROM `bfcte_10`
161+
FROM `bfcte_7`
174162
ORDER BY
175163
`bfcol_92` DESC,
176164
`bfcol_76` ASC NULLS LAST,

0 commit comments

Comments
 (0)