From 6e6885416e9ec8aeba57398efdc34ffafc8a6279 Mon Sep 17 00:00:00 2001 From: Chelsea Lin Date: Tue, 10 Mar 2026 18:29:25 +0000 Subject: [PATCH 1/2] tests: add golden sql tests on tpch queries --- .../core/compile/sqlglot/tpch/conftest.py | 152 +++++++++++ .../test_tpch/test_tpch_query/1/out.sql | 77 ++++++ .../test_tpch/test_tpch_query/10/out.sql | 183 +++++++++++++ .../test_tpch/test_tpch_query/11/out.sql | 164 +++++++++++ .../test_tpch/test_tpch_query/12/out.sql | 97 +++++++ .../test_tpch/test_tpch_query/13/out.sql | 46 ++++ .../test_tpch/test_tpch_query/14/out.sql | 197 ++++++++++++++ .../test_tpch/test_tpch_query/15/out.sql | 173 ++++++++++++ .../test_tpch/test_tpch_query/16/out.sql | 98 +++++++ .../test_tpch/test_tpch_query/17/out.sql | 129 +++++++++ .../test_tpch/test_tpch_query/18/out.sql | 130 +++++++++ .../test_tpch/test_tpch_query/19/out.sql | 229 ++++++++++++++++ .../test_tpch/test_tpch_query/2/out.sql | 257 ++++++++++++++++++ .../test_tpch/test_tpch_query/20/out.sql | 161 +++++++++++ .../test_tpch/test_tpch_query/21/out.sql | 191 +++++++++++++ .../test_tpch/test_tpch_query/22/out.sql | 145 ++++++++++ .../test_tpch/test_tpch_query/3/out.sql | 88 ++++++ .../test_tpch/test_tpch_query/4/out.sql | 74 +++++ .../test_tpch/test_tpch_query/5/out.sql | 120 ++++++++ .../test_tpch/test_tpch_query/6/out.sql | 65 +++++ .../test_tpch/test_tpch_query/7/out.sql | 159 +++++++++++ .../test_tpch/test_tpch_query/8/out.sql | 221 +++++++++++++++ .../test_tpch/test_tpch_query/9/out.sql | 170 ++++++++++++ .../core/compile/sqlglot/tpch/test_tpch.py | 48 ++++ .../bigframes_vendored/tpch/queries/q19.py | 10 +- 25 files changed, 3382 insertions(+), 2 deletions(-) create mode 100644 tests/unit/core/compile/sqlglot/tpch/conftest.py create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/1/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql create mode 100644 tests/unit/core/compile/sqlglot/tpch/test_tpch.py diff --git a/tests/unit/core/compile/sqlglot/tpch/conftest.py b/tests/unit/core/compile/sqlglot/tpch/conftest.py new file mode 100644 index 00000000000..c21ba5d8adb --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/conftest.py @@ -0,0 +1,152 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import datetime +import unittest.mock as mock + +import freezegun # type: ignore +from google.cloud import bigquery +import pytest + +import bigframes.testing.mocks as mocks + +TPCH_SCHEMAS = { + "LINEITEM": [ + bigquery.SchemaField("L_ORDERKEY", "INTEGER"), + bigquery.SchemaField("L_PARTKEY", "INTEGER"), + bigquery.SchemaField("L_SUPPKEY", "INTEGER"), + bigquery.SchemaField("L_LINENUMBER", "INTEGER"), + bigquery.SchemaField("L_QUANTITY", "FLOAT"), + bigquery.SchemaField("L_EXTENDEDPRICE", "FLOAT"), + bigquery.SchemaField("L_DISCOUNT", "FLOAT"), + bigquery.SchemaField("L_TAX", "FLOAT"), + bigquery.SchemaField("L_RETURNFLAG", "STRING"), + bigquery.SchemaField("L_LINESTATUS", "STRING"), + bigquery.SchemaField("L_SHIPDATE", "DATE"), + bigquery.SchemaField("L_COMMITDATE", "DATE"), + bigquery.SchemaField("L_RECEIPTDATE", "DATE"), + bigquery.SchemaField("L_SHIPINSTRUCT", "STRING"), + bigquery.SchemaField("L_SHIPMODE", "STRING"), + bigquery.SchemaField("L_COMMENT", "STRING"), + ], + "ORDERS": [ + bigquery.SchemaField("O_ORDERKEY", "INTEGER"), + bigquery.SchemaField("O_CUSTKEY", "INTEGER"), + bigquery.SchemaField("O_ORDERSTATUS", "STRING"), + bigquery.SchemaField("O_TOTALPRICE", "FLOAT"), + bigquery.SchemaField("O_ORDERDATE", "DATE"), + bigquery.SchemaField("O_ORDERPRIORITY", "STRING"), + bigquery.SchemaField("O_CLERK", "STRING"), + bigquery.SchemaField("O_SHIPPRIORITY", "INTEGER"), + bigquery.SchemaField("O_COMMENT", "STRING"), + ], + "PART": [ + bigquery.SchemaField("P_PARTKEY", "INTEGER"), + bigquery.SchemaField("P_NAME", "STRING"), + bigquery.SchemaField("P_MFGR", "STRING"), + bigquery.SchemaField("P_BRAND", "STRING"), + bigquery.SchemaField("P_TYPE", "STRING"), + bigquery.SchemaField("P_SIZE", "INTEGER"), + bigquery.SchemaField("P_CONTAINER", "STRING"), + bigquery.SchemaField("P_RETAILPRICE", "FLOAT"), + bigquery.SchemaField("P_COMMENT", "STRING"), + ], + "SUPPLIER": [ + bigquery.SchemaField("S_SUPPKEY", "INTEGER"), + bigquery.SchemaField("S_NAME", "STRING"), + bigquery.SchemaField("S_ADDRESS", "STRING"), + bigquery.SchemaField("S_NATIONKEY", "INTEGER"), + bigquery.SchemaField("S_PHONE", "STRING"), + bigquery.SchemaField("S_ACCTBAL", "FLOAT"), + bigquery.SchemaField("S_COMMENT", "STRING"), + ], + "PARTSUPP": [ + bigquery.SchemaField("PS_PARTKEY", "INTEGER"), + bigquery.SchemaField("PS_SUPPKEY", "INTEGER"), + bigquery.SchemaField("PS_AVAILQTY", "INTEGER"), + bigquery.SchemaField("PS_SUPPLYCOST", "FLOAT"), + bigquery.SchemaField("PS_COMMENT", "STRING"), + ], + "CUSTOMER": [ + bigquery.SchemaField("C_CUSTKEY", "INTEGER"), + bigquery.SchemaField("C_NAME", "STRING"), + bigquery.SchemaField("C_ADDRESS", "STRING"), + bigquery.SchemaField("C_NATIONKEY", "INTEGER"), + bigquery.SchemaField("C_PHONE", "STRING"), + bigquery.SchemaField("C_ACCTBAL", "FLOAT"), + bigquery.SchemaField("C_MKTSEGMENT", "STRING"), + bigquery.SchemaField("C_COMMENT", "STRING"), + ], + "NATION": [ + bigquery.SchemaField("N_NATIONKEY", "INTEGER"), + bigquery.SchemaField("N_NAME", "STRING"), + bigquery.SchemaField("N_REGIONKEY", "INTEGER"), + bigquery.SchemaField("N_COMMENT", "STRING"), + ], + "REGION": [ + bigquery.SchemaField("R_REGIONKEY", "INTEGER"), + bigquery.SchemaField("R_NAME", "STRING"), + bigquery.SchemaField("R_COMMENT", "STRING"), + ], +} + + +@pytest.fixture(autouse=True, scope="session") +def freeze_time(): + with freezegun.freeze_time("2026-03-10 18:00:00"): + yield + + +@pytest.fixture(scope="session") +def tpch_session(): + from bigframes.testing import compiler_session + + anonymous_dataset = bigquery.DatasetReference.from_string("bigframes-dev.tpch") + location = "us-central1" + + session = mocks.create_bigquery_session( + anonymous_dataset=anonymous_dataset, + location=location, + ) + + def get_table_mock(table_ref): + if isinstance(table_ref, str): + table_ref = bigquery.TableReference.from_string(table_ref) + + table_id = table_ref.table_id + schema = TPCH_SCHEMAS.get(table_id, []) + + table = mock.create_autospec(bigquery.Table, instance=True) + table._properties = {} + # mocks.create_bigquery_session's CURRENT_TIMESTAMP() returns offset-naive datetime.now() + # So we should also use offset-naive here to avoid comparison errors. + now = datetime.datetime.now() + type(table).schema = mock.PropertyMock(return_value=schema) + type(table).project = table_ref.project + type(table).dataset_id = table_ref.dataset_id + type(table).table_id = table_id + type(table).num_rows = mock.PropertyMock(return_value=1000000) + type(table).num_bytes = mock.PropertyMock(return_value=1000000) + type(table).location = mock.PropertyMock(return_value=location) + type(table).table_type = mock.PropertyMock(return_value="TABLE") + type(table).created = mock.PropertyMock(return_value=now) + type(table).modified = mock.PropertyMock(return_value=now) + type(table).range_partitioning = mock.PropertyMock(return_value=None) + type(table).time_partitioning = mock.PropertyMock(return_value=None) + type(table).clustering_fields = mock.PropertyMock(return_value=None) + return table + + session.bqclient.get_table.side_effect = get_table_mock + session._executor = compiler_session.SQLCompilerExecutor() + return session diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/1/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/1/out.sql new file mode 100644 index 00000000000..1afccf820c1 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/1/out.sql @@ -0,0 +1,77 @@ +WITH `bfcte_0` AS ( + SELECT + `L_QUANTITY`, + `L_EXTENDEDPRICE`, + `L_DISCOUNT`, + `L_TAX`, + `L_RETURNFLAG`, + `L_LINESTATUS`, + `L_SHIPDATE`, + `L_QUANTITY` AS `bfcol_7`, + `L_EXTENDEDPRICE` AS `bfcol_8`, + `L_DISCOUNT` AS `bfcol_9`, + `L_TAX` AS `bfcol_10`, + `L_RETURNFLAG` AS `bfcol_11`, + `L_LINESTATUS` AS `bfcol_12`, + `L_SHIPDATE` <= CAST('1998-09-02' AS DATE) AS `bfcol_13`, + `L_QUANTITY` AS `bfcol_27`, + `L_EXTENDEDPRICE` AS `bfcol_28`, + `L_DISCOUNT` AS `bfcol_29`, + `L_TAX` AS `bfcol_30`, + `L_RETURNFLAG` AS `bfcol_31`, + `L_LINESTATUS` AS `bfcol_32`, + `L_EXTENDEDPRICE` * ( + 1.0 - `L_DISCOUNT` + ) AS `bfcol_33`, + `L_QUANTITY` AS `bfcol_41`, + `L_EXTENDEDPRICE` AS `bfcol_42`, + `L_DISCOUNT` AS `bfcol_43`, + `L_RETURNFLAG` AS `bfcol_44`, + `L_LINESTATUS` AS `bfcol_45`, + `L_EXTENDEDPRICE` * ( + 1.0 - `L_DISCOUNT` + ) AS `bfcol_46`, + ( + `L_EXTENDEDPRICE` * ( + 1.0 - `L_DISCOUNT` + ) + ) * ( + 1.0 + `L_TAX` + ) AS `bfcol_47` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `L_SHIPDATE` <= CAST('1998-09-02' AS DATE) +), `bfcte_1` AS ( + SELECT + `bfcol_44`, + `bfcol_45`, + COALESCE(SUM(`bfcol_41`), 0) AS `bfcol_55`, + COALESCE(SUM(`bfcol_42`), 0) AS `bfcol_56`, + COALESCE(SUM(`bfcol_46`), 0) AS `bfcol_57`, + COALESCE(SUM(`bfcol_47`), 0) AS `bfcol_58`, + AVG(`bfcol_41`) AS `bfcol_59`, + AVG(`bfcol_42`) AS `bfcol_60`, + AVG(`bfcol_43`) AS `bfcol_61`, + COUNT(`bfcol_41`) AS `bfcol_62` + FROM `bfcte_0` + WHERE + NOT `bfcol_44` IS NULL AND NOT `bfcol_45` IS NULL + GROUP BY + `bfcol_44`, + `bfcol_45` +) +SELECT + `bfcol_44` AS `L_RETURNFLAG`, + `bfcol_45` AS `L_LINESTATUS`, + `bfcol_55` AS `SUM_QTY`, + `bfcol_56` AS `SUM_BASE_PRICE`, + `bfcol_57` AS `SUM_DISC_PRICE`, + `bfcol_58` AS `SUM_CHARGE`, + `bfcol_59` AS `AVG_QTY`, + `bfcol_60` AS `AVG_PRICE`, + `bfcol_61` AS `AVG_DISC`, + `bfcol_62` AS `COUNT_ORDER` +FROM `bfcte_1` +ORDER BY + `bfcol_44` ASC NULLS LAST, + `bfcol_45` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql new file mode 100644 index 00000000000..9fbce13bde0 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql @@ -0,0 +1,183 @@ +WITH `bfcte_0` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_0`, + `C_NAME` AS `bfcol_1`, + `C_ADDRESS` AS `bfcol_2`, + `C_NATIONKEY` AS `bfcol_3`, + `C_PHONE` AS `bfcol_4`, + `C_ACCTBAL` AS `bfcol_5`, + `C_COMMENT` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_7`, + `O_CUSTKEY` AS `bfcol_8`, + `O_ORDERDATE` AS `bfcol_9` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_8`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_8`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_0` AS `bfcol_10`, + `bfcol_1` AS `bfcol_11`, + `bfcol_2` AS `bfcol_12`, + `bfcol_3` AS `bfcol_13`, + `bfcol_4` AS `bfcol_14`, + `bfcol_5` AS `bfcol_15`, + `bfcol_6` AS `bfcol_16`, + `bfcol_7` AS `bfcol_17`, + `bfcol_9` AS `bfcol_18` + FROM `bfcte_2` +), `bfcte_4` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_19`, + `L_EXTENDEDPRICE` AS `bfcol_20`, + `L_DISCOUNT` AS `bfcol_21`, + `L_RETURNFLAG` AS `bfcol_22` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_3` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_19`, 0) + AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_19`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_10` AS `bfcol_23`, + `bfcol_11` AS `bfcol_24`, + `bfcol_12` AS `bfcol_25`, + `bfcol_13` AS `bfcol_26`, + `bfcol_14` AS `bfcol_27`, + `bfcol_15` AS `bfcol_28`, + `bfcol_16` AS `bfcol_29`, + `bfcol_18` AS `bfcol_30`, + `bfcol_20` AS `bfcol_31`, + `bfcol_21` AS `bfcol_32`, + `bfcol_22` AS `bfcol_33` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_34`, + `N_NAME` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_34`, 0) + AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_34`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_23`, + `bfcol_24`, + `bfcol_25`, + `bfcol_26`, + `bfcol_27`, + `bfcol_28`, + `bfcol_29`, + `bfcol_30`, + `bfcol_31`, + `bfcol_32`, + `bfcol_33`, + `bfcol_34`, + `bfcol_35`, + `bfcol_23` AS `bfcol_47`, + `bfcol_24` AS `bfcol_48`, + `bfcol_25` AS `bfcol_49`, + `bfcol_27` AS `bfcol_50`, + `bfcol_28` AS `bfcol_51`, + `bfcol_29` AS `bfcol_52`, + `bfcol_31` AS `bfcol_53`, + `bfcol_32` AS `bfcol_54`, + `bfcol_35` AS `bfcol_55`, + ( + ( + `bfcol_30` >= CAST('1993-10-01' AS DATE) + ) + AND ( + `bfcol_30` < CAST('1994-01-01' AS DATE) + ) + ) + AND ( + `bfcol_33` = 'R' + ) AS `bfcol_56`, + `bfcol_23` AS `bfcol_76`, + `bfcol_24` AS `bfcol_77`, + `bfcol_25` AS `bfcol_78`, + `bfcol_27` AS `bfcol_79`, + `bfcol_28` AS `bfcol_80`, + `bfcol_29` AS `bfcol_81`, + `bfcol_35` AS `bfcol_82`, + ROUND(( + `bfcol_31` * ( + 1 - `bfcol_32` + ) + ), 2) AS `bfcol_83` + FROM `bfcte_8` + WHERE + ( + ( + `bfcol_30` >= CAST('1993-10-01' AS DATE) + ) + AND ( + `bfcol_30` < CAST('1994-01-01' AS DATE) + ) + ) + AND ( + `bfcol_33` = 'R' + ) +), `bfcte_10` AS ( + SELECT + `bfcol_76`, + `bfcol_77`, + `bfcol_80`, + `bfcol_79`, + `bfcol_82`, + `bfcol_78`, + `bfcol_81`, + COALESCE(SUM(`bfcol_83`), 0) AS `bfcol_92` + FROM `bfcte_9` + WHERE + NOT `bfcol_76` IS NULL + AND NOT `bfcol_77` IS NULL + AND NOT `bfcol_80` IS NULL + AND NOT `bfcol_79` IS NULL + AND NOT `bfcol_82` IS NULL + AND NOT `bfcol_78` IS NULL + AND NOT `bfcol_81` IS NULL + GROUP BY + `bfcol_76`, + `bfcol_77`, + `bfcol_80`, + `bfcol_79`, + `bfcol_82`, + `bfcol_78`, + `bfcol_81` +) +SELECT + `bfcol_76` AS `C_CUSTKEY`, + `bfcol_77` AS `C_NAME`, + `bfcol_92` AS `REVENUE`, + `bfcol_80` AS `C_ACCTBAL`, + `bfcol_82` AS `N_NAME`, + `bfcol_78` AS `C_ADDRESS`, + `bfcol_79` AS `C_PHONE`, + `bfcol_81` AS `C_COMMENT` +FROM `bfcte_10` +ORDER BY + `bfcol_92` DESC, + `bfcol_76` ASC NULLS LAST, + `bfcol_77` ASC NULLS LAST, + `bfcol_80` ASC NULLS LAST, + `bfcol_79` ASC NULLS LAST, + `bfcol_82` ASC NULLS LAST, + `bfcol_78` ASC NULLS LAST, + `bfcol_81` ASC NULLS LAST +LIMIT 20 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql new file mode 100644 index 00000000000..80bce4fc6d8 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql @@ -0,0 +1,164 @@ +WITH `bfcte_2` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `N_NAME` = 'GERMANY' +), `bfcte_3` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_7`, + `S_NATIONKEY` AS `bfcol_8` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_2` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_6`, 0) = COALESCE(`bfcol_8`, 0) + AND COALESCE(`bfcol_6`, 1) = COALESCE(`bfcol_8`, 1) +), `bfcte_8` AS ( + SELECT + `bfcol_7` AS `bfcol_9` + FROM `bfcte_5` +), `bfcte_9` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_10`, + `PS_SUPPKEY` AS `bfcol_11`, + `PS_AVAILQTY` AS `bfcol_12`, + `PS_SUPPLYCOST` AS `bfcol_13` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_8` + INNER JOIN `bfcte_9` + ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_11`, 0) + AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_11`, 1) +), `bfcte_13` AS ( + SELECT + `bfcol_9`, + `bfcol_10`, + `bfcol_11`, + `bfcol_12`, + `bfcol_13`, + `bfcol_10` AS `bfcol_17`, + `bfcol_13` * `bfcol_12` AS `bfcol_18` + FROM `bfcte_11` +), `bfcte_15` AS ( + SELECT + `bfcol_17`, + COALESCE(SUM(`bfcol_18`), 0) AS `bfcol_21` + FROM `bfcte_13` + WHERE + NOT `bfcol_17` IS NULL + GROUP BY + `bfcol_17` +), `bfcte_21` AS ( + SELECT + `bfcol_17` AS `bfcol_24`, + ROUND(`bfcol_21`, 2) AS `bfcol_25` + FROM `bfcte_15` +), `bfcte_16` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT(0.0, 0, 0)]) +), `bfcte_0` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `N_NAME` = 'GERMANY' +), `bfcte_1` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_36`, + `S_NATIONKEY` AS `bfcol_37` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_35`, 0) = COALESCE(`bfcol_37`, 0) + AND COALESCE(`bfcol_35`, 1) = COALESCE(`bfcol_37`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_36` AS `bfcol_38` + FROM `bfcte_4` +), `bfcte_7` AS ( + SELECT + `PS_SUPPKEY` AS `bfcol_39`, + `PS_AVAILQTY` AS `bfcol_40`, + `PS_SUPPLYCOST` AS `bfcol_41` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_10` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_38`, 0) = COALESCE(`bfcol_39`, 0) + AND COALESCE(`bfcol_38`, 1) = COALESCE(`bfcol_39`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_38`, + `bfcol_39`, + `bfcol_40`, + `bfcol_41`, + `bfcol_40` AS `bfcol_44`, + `bfcol_41` AS `bfcol_45`, + `bfcol_41` AS `bfcol_48`, + `bfcol_40` AS `bfcol_49`, + `bfcol_41` * `bfcol_40` AS `bfcol_52` + FROM `bfcte_10` +), `bfcte_14` AS ( + SELECT + COALESCE(SUM(`bfcol_52`), 0) AS `bfcol_54` + FROM `bfcte_12` +), `bfcte_17` AS ( + SELECT + `bfcol_54`, + 0 AS `bfcol_55` + FROM `bfcte_14` +), `bfcte_18` AS ( + SELECT + * + FROM `bfcte_16` + CROSS JOIN `bfcte_17` +), `bfcte_19` AS ( + SELECT + `bfcol_26`, + `bfcol_27`, + `bfcol_28`, + `bfcol_54`, + `bfcol_55`, + CASE WHEN `bfcol_28` = 0 THEN `bfcol_54` END AS `bfcol_56`, + IF(`bfcol_55` = 0, CASE WHEN `bfcol_28` = 0 THEN `bfcol_54` END, NULL) AS `bfcol_61` + FROM `bfcte_18` +), `bfcte_20` AS ( + SELECT + `bfcol_26`, + `bfcol_27`, + ANY_VALUE(`bfcol_61`) AS `bfcol_65` + FROM `bfcte_19` + WHERE + NOT `bfcol_26` IS NULL AND NOT `bfcol_27` IS NULL + GROUP BY + `bfcol_26`, + `bfcol_27` +), `bfcte_22` AS ( + SELECT + `bfcol_65` * 0.0001 AS `bfcol_68` + FROM `bfcte_20` +), `bfcte_23` AS ( + SELECT + * + FROM `bfcte_21` + CROSS JOIN `bfcte_22` +) +SELECT + `bfcol_24` AS `PS_PARTKEY`, + `bfcol_25` AS `VALUE` +FROM `bfcte_23` +WHERE + `bfcol_25` > `bfcol_68` +ORDER BY + `bfcol_25` DESC \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql new file mode 100644 index 00000000000..fd6d56012e2 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql @@ -0,0 +1,97 @@ +WITH `bfcte_0` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_0`, + `O_ORDERPRIORITY` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_2`, + `L_SHIPDATE` AS `bfcol_3`, + `L_COMMITDATE` AS `bfcol_4`, + `L_RECEIPTDATE` AS `bfcol_5`, + `L_SHIPMODE` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_2`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_3`, + `bfcol_4`, + `bfcol_5`, + `bfcol_6`, + `bfcol_1` AS `bfcol_12`, + `bfcol_6` AS `bfcol_13`, + ( + ( + ( + COALESCE(COALESCE(`bfcol_6` IN ('MAIL', 'SHIP'), FALSE), FALSE) + AND ( + `bfcol_4` < `bfcol_5` + ) + ) + AND ( + `bfcol_3` < `bfcol_4` + ) + ) + AND ( + `bfcol_5` >= CAST('1994-01-01' AS DATE) + ) + ) + AND ( + `bfcol_5` < CAST('1995-01-01' AS DATE) + ) AS `bfcol_14`, + `bfcol_1` AS `bfcol_20`, + `bfcol_6` AS `bfcol_21`, + CAST(COALESCE(COALESCE(`bfcol_1` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) AS INT64) AS `bfcol_22`, + `bfcol_6` AS `bfcol_26`, + CAST(COALESCE(COALESCE(`bfcol_1` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) AS INT64) AS `bfcol_27`, + CAST(NOT ( + COALESCE(COALESCE(`bfcol_1` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) + ) AS INT64) AS `bfcol_28` + FROM `bfcte_2` + WHERE + ( + ( + ( + COALESCE(COALESCE(`bfcol_6` IN ('MAIL', 'SHIP'), FALSE), FALSE) + AND ( + `bfcol_4` < `bfcol_5` + ) + ) + AND ( + `bfcol_3` < `bfcol_4` + ) + ) + AND ( + `bfcol_5` >= CAST('1994-01-01' AS DATE) + ) + ) + AND ( + `bfcol_5` < CAST('1995-01-01' AS DATE) + ) +), `bfcte_4` AS ( + SELECT + `bfcol_26`, + COALESCE(SUM(`bfcol_27`), 0) AS `bfcol_32`, + COALESCE(SUM(`bfcol_28`), 0) AS `bfcol_33` + FROM `bfcte_3` + WHERE + NOT `bfcol_26` IS NULL + GROUP BY + `bfcol_26` +) +SELECT + `bfcol_26` AS `L_SHIPMODE`, + `bfcol_32` AS `HIGH_LINE_COUNT`, + `bfcol_33` AS `LOW_LINE_COUNT` +FROM `bfcte_4` +ORDER BY + `bfcol_26` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql new file mode 100644 index 00000000000..258ab2cc30a --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql @@ -0,0 +1,46 @@ +WITH `bfcte_0` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_0` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_10`, + `O_CUSTKEY` AS `bfcol_11` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + NOT ( + REGEXP_CONTAINS(`O_COMMENT`, 'special.*requests') + ) +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + LEFT JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_11`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_11`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_0`, + COUNT(`bfcol_10`) AS `bfcol_14` + FROM `bfcte_2` + WHERE + NOT `bfcol_0` IS NULL + GROUP BY + `bfcol_0` +), `bfcte_4` AS ( + SELECT + `bfcol_14`, + COUNT(1) AS `bfcol_16` + FROM `bfcte_3` + WHERE + NOT `bfcol_14` IS NULL + GROUP BY + `bfcol_14` +) +SELECT + `bfcol_14` AS `C_COUNT`, + `bfcol_16` AS `CUSTDIST` +FROM `bfcte_4` +ORDER BY + `bfcol_16` DESC, + `bfcol_14` DESC \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql new file mode 100644 index 00000000000..e1a35930619 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql @@ -0,0 +1,197 @@ +WITH `bfcte_12` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT('TEMP', 0, 0)]) +), `bfcte_2` AS ( + SELECT + `P_PARTKEY` AS `bfcol_3`, + `P_TYPE` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( + SELECT + `L_PARTKEY` AS `bfcol_5`, + `L_EXTENDEDPRICE` AS `bfcol_6`, + `L_DISCOUNT` AS `bfcol_7`, + `L_SHIPDATE` AS `bfcol_8` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_2` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_5`, 0) + AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_5`, 1) +), `bfcte_7` AS ( + SELECT + `bfcol_3`, + `bfcol_4`, + `bfcol_5`, + `bfcol_6`, + `bfcol_7`, + `bfcol_8`, + `bfcol_4` AS `bfcol_13`, + `bfcol_6` AS `bfcol_14`, + `bfcol_7` AS `bfcol_15`, + ( + `bfcol_8` >= CAST('1995-09-01' AS DATE) + ) + AND ( + `bfcol_8` < CAST('1995-10-01' AS DATE) + ) AS `bfcol_16`, + ( + `bfcol_6` * ( + 1 - `bfcol_7` + ) + ) * CAST(REGEXP_CONTAINS(`bfcol_4`, 'PROMO') AS INT64) AS `bfcol_24` + FROM `bfcte_5` + WHERE + ( + `bfcol_8` >= CAST('1995-09-01' AS DATE) + ) + AND ( + `bfcol_8` < CAST('1995-10-01' AS DATE) + ) +), `bfcte_9` AS ( + SELECT + COALESCE(SUM(`bfcol_24`), 0) AS `bfcol_26` + FROM `bfcte_7` +), `bfcte_13` AS ( + SELECT + `bfcol_26`, + 0 AS `bfcol_27` + FROM `bfcte_9` +), `bfcte_15` AS ( + SELECT + * + FROM `bfcte_12` + CROSS JOIN `bfcte_13` +), `bfcte_17` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_26`, + `bfcol_27`, + CASE WHEN `bfcol_2` = 0 THEN `bfcol_26` END AS `bfcol_28`, + IF(`bfcol_27` = 0, CASE WHEN `bfcol_2` = 0 THEN `bfcol_26` END, NULL) AS `bfcol_33` + FROM `bfcte_15` +), `bfcte_19` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + ANY_VALUE(`bfcol_33`) AS `bfcol_37` + FROM `bfcte_17` + WHERE + NOT `bfcol_0` IS NULL AND NOT `bfcol_1` IS NULL + GROUP BY + `bfcol_0`, + `bfcol_1` +), `bfcte_20` AS ( + SELECT + `bfcol_0` AS `bfcol_41`, + 100.0 * `bfcol_37` AS `bfcol_42` + FROM `bfcte_19` +), `bfcte_10` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT('TEMP', 0, 0)]) +), `bfcte_0` AS ( + SELECT + `P_PARTKEY` AS `bfcol_46` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_PARTKEY` AS `bfcol_47`, + `L_EXTENDEDPRICE` AS `bfcol_48`, + `L_DISCOUNT` AS `bfcol_49`, + `L_SHIPDATE` AS `bfcol_50` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_46`, 0) = COALESCE(`bfcol_47`, 0) + AND COALESCE(`bfcol_46`, 1) = COALESCE(`bfcol_47`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_46`, + `bfcol_47`, + `bfcol_48`, + `bfcol_49`, + `bfcol_50`, + `bfcol_48` AS `bfcol_54`, + `bfcol_49` AS `bfcol_55`, + ( + `bfcol_50` >= CAST('1995-09-01' AS DATE) + ) + AND ( + `bfcol_50` < CAST('1995-10-01' AS DATE) + ) AS `bfcol_56`, + `bfcol_48` AS `bfcol_62`, + `bfcol_49` AS `bfcol_63`, + `bfcol_48` AS `bfcol_66`, + 1 - `bfcol_49` AS `bfcol_67`, + `bfcol_48` * ( + 1 - `bfcol_49` + ) AS `bfcol_70` + FROM `bfcte_4` + WHERE + ( + `bfcol_50` >= CAST('1995-09-01' AS DATE) + ) + AND ( + `bfcol_50` < CAST('1995-10-01' AS DATE) + ) +), `bfcte_8` AS ( + SELECT + COALESCE(SUM(`bfcol_70`), 0) AS `bfcol_72` + FROM `bfcte_6` +), `bfcte_11` AS ( + SELECT + `bfcol_72`, + 0 AS `bfcol_73` + FROM `bfcte_8` +), `bfcte_14` AS ( + SELECT + * + FROM `bfcte_10` + CROSS JOIN `bfcte_11` +), `bfcte_16` AS ( + SELECT + `bfcol_43`, + `bfcol_44`, + `bfcol_45`, + `bfcol_72`, + `bfcol_73`, + CASE WHEN `bfcol_45` = 0 THEN `bfcol_72` END AS `bfcol_74`, + IF(`bfcol_73` = 0, CASE WHEN `bfcol_45` = 0 THEN `bfcol_72` END, NULL) AS `bfcol_79` + FROM `bfcte_14` +), `bfcte_18` AS ( + SELECT + `bfcol_43`, + `bfcol_44`, + ANY_VALUE(`bfcol_79`) AS `bfcol_83` + FROM `bfcte_16` + WHERE + NOT `bfcol_43` IS NULL AND NOT `bfcol_44` IS NULL + GROUP BY + `bfcol_43`, + `bfcol_44` +), `bfcte_21` AS ( + SELECT + `bfcol_43` AS `bfcol_84`, + `bfcol_83` AS `bfcol_85` + FROM `bfcte_18` +), `bfcte_22` AS ( + SELECT + * + FROM `bfcte_20` + FULL OUTER JOIN `bfcte_21` + ON `bfcol_41` = `bfcol_84` +) +SELECT + ROUND(IEEE_DIVIDE(`bfcol_42`, `bfcol_85`), 2) AS `PROMO_REVENUE` +FROM `bfcte_22` +ORDER BY + COALESCE(`bfcol_41`, `bfcol_84`) ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql new file mode 100644 index 00000000000..d8cc67ca79c --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql @@ -0,0 +1,173 @@ +WITH `bfcte_6` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_0`, + `S_NAME` AS `bfcol_1`, + `S_ADDRESS` AS `bfcol_2`, + `S_PHONE` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_SUPPKEY`, + `L_EXTENDEDPRICE`, + `L_DISCOUNT`, + `L_SHIPDATE`, + `L_SUPPKEY` AS `bfcol_8`, + `L_EXTENDEDPRICE` AS `bfcol_9`, + `L_DISCOUNT` AS `bfcol_10`, + ( + `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1996-04-01' AS DATE) + ) AS `bfcol_11`, + `L_SUPPKEY` AS `bfcol_19`, + `L_EXTENDEDPRICE` * ( + 1 - `L_DISCOUNT` + ) AS `bfcol_20` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1996-04-01' AS DATE) + ) +), `bfcte_3` AS ( + SELECT + `bfcol_19`, + COALESCE(SUM(`bfcol_20`), 0) AS `bfcol_23` + FROM `bfcte_1` + WHERE + NOT `bfcol_19` IS NULL + GROUP BY + `bfcol_19` +), `bfcte_7` AS ( + SELECT + `bfcol_19` AS `bfcol_26`, + ROUND(`bfcol_23`, 2) AS `bfcol_27` + FROM `bfcte_3` +), `bfcte_9` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON `bfcol_0` = `bfcol_26` +), `bfcte_16` AS ( + SELECT + `bfcol_0` AS `bfcol_28`, + `bfcol_1` AS `bfcol_29`, + `bfcol_2` AS `bfcol_30`, + `bfcol_3` AS `bfcol_31`, + `bfcol_27` AS `bfcol_32` + FROM `bfcte_9` +), `bfcte_11` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT('TOTAL_REVENUE', 0, 0)]) +), `bfcte_4` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_36` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_0` AS ( + SELECT + `L_SUPPKEY`, + `L_EXTENDEDPRICE`, + `L_DISCOUNT`, + `L_SHIPDATE`, + `L_SUPPKEY` AS `bfcol_41`, + `L_EXTENDEDPRICE` AS `bfcol_42`, + `L_DISCOUNT` AS `bfcol_43`, + ( + `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1996-04-01' AS DATE) + ) AS `bfcol_44`, + `L_SUPPKEY` AS `bfcol_52`, + `L_EXTENDEDPRICE` * ( + 1 - `L_DISCOUNT` + ) AS `bfcol_53` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1996-04-01' AS DATE) + ) +), `bfcte_2` AS ( + SELECT + `bfcol_52`, + COALESCE(SUM(`bfcol_53`), 0) AS `bfcol_56` + FROM `bfcte_0` + WHERE + NOT `bfcol_52` IS NULL + GROUP BY + `bfcol_52` +), `bfcte_5` AS ( + SELECT + `bfcol_52` AS `bfcol_59`, + ROUND(`bfcol_56`, 2) AS `bfcol_60` + FROM `bfcte_2` +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_4` + INNER JOIN `bfcte_5` + ON `bfcol_36` = `bfcol_59` +), `bfcte_10` AS ( + SELECT + MAX(`bfcol_60`) AS `bfcol_62` + FROM `bfcte_8` +), `bfcte_12` AS ( + SELECT + `bfcol_62`, + 0 AS `bfcol_63` + FROM `bfcte_10` +), `bfcte_13` AS ( + SELECT + * + FROM `bfcte_11` + CROSS JOIN `bfcte_12` +), `bfcte_14` AS ( + SELECT + `bfcol_33`, + `bfcol_34`, + `bfcol_35`, + `bfcol_62`, + `bfcol_63`, + CASE WHEN `bfcol_35` = 0 THEN `bfcol_62` END AS `bfcol_64`, + IF(`bfcol_63` = 0, CASE WHEN `bfcol_35` = 0 THEN `bfcol_62` END, NULL) AS `bfcol_69` + FROM `bfcte_13` +), `bfcte_15` AS ( + SELECT + `bfcol_33`, + `bfcol_34`, + ANY_VALUE(`bfcol_69`) AS `bfcol_73` + FROM `bfcte_14` + WHERE + NOT `bfcol_33` IS NULL AND NOT `bfcol_34` IS NULL + GROUP BY + `bfcol_33`, + `bfcol_34` +), `bfcte_17` AS ( + SELECT + `bfcol_73` AS `bfcol_74` + FROM `bfcte_15` +), `bfcte_18` AS ( + SELECT + * + FROM `bfcte_16` + CROSS JOIN `bfcte_17` +) +SELECT + `bfcol_28` AS `S_SUPPKEY`, + `bfcol_29` AS `S_NAME`, + `bfcol_30` AS `S_ADDRESS`, + `bfcol_31` AS `S_PHONE`, + `bfcol_32` AS `TOTAL_REVENUE` +FROM `bfcte_18` +WHERE + `bfcol_32` = `bfcol_74` +ORDER BY + `bfcol_28` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql new file mode 100644 index 00000000000..cbba3e0d932 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql @@ -0,0 +1,98 @@ +WITH `bfcte_1` AS ( + SELECT + `P_PARTKEY` AS `bfcol_0`, + `P_BRAND` AS `bfcol_1`, + `P_TYPE` AS `bfcol_2`, + `P_SIZE` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_4`, + `PS_SUPPKEY` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( + SELECT + * + FROM `bfcte_1` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_4`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_4`, 1) +), `bfcte_5` AS ( + SELECT + `bfcol_1` AS `bfcol_48`, + `bfcol_2` AS `bfcol_49`, + `bfcol_3` AS `bfcol_50`, + `bfcol_5` AS `bfcol_51` + FROM `bfcte_4` + WHERE + `bfcol_1` <> 'Brand#45' + AND NOT ( + REGEXP_CONTAINS(`bfcol_2`, 'MEDIUM POLISHED') + ) + AND COALESCE(COALESCE(`bfcol_3` IN (49, 14, 23, 45, 19, 3, 36, 9), FALSE), FALSE) +), `bfcte_0` AS ( + SELECT + `S_SUPPKEY`, + `S_COMMENT`, + `S_SUPPKEY` AS `bfcol_54`, + NOT ( + REGEXP_CONTAINS(`S_COMMENT`, 'Customer.*Complaints') + ) AS `bfcol_55` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + NOT ( + REGEXP_CONTAINS(`S_COMMENT`, 'Customer.*Complaints') + ) +), `bfcte_3` AS ( + SELECT + `bfcol_54` + FROM `bfcte_0` + GROUP BY + `bfcol_54` +), `bfcte_6` AS ( + SELECT + `bfcte_5`.*, + EXISTS( + SELECT + 1 + FROM ( + SELECT + `bfcol_54` AS `bfcol_58` + FROM `bfcte_3` + ) AS `bft_3` + WHERE + COALESCE(`bfcte_5`.`bfcol_51`, 0) = COALESCE(`bft_3`.`bfcol_58`, 0) + AND COALESCE(`bfcte_5`.`bfcol_51`, 1) = COALESCE(`bft_3`.`bfcol_58`, 1) + ) AS `bfcol_59` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + * + FROM `bfcte_6` + WHERE + `bfcol_59` +), `bfcte_8` AS ( + SELECT + `bfcol_48`, + `bfcol_49`, + `bfcol_50`, + COUNT(DISTINCT `bfcol_51`) AS `bfcol_69` + FROM `bfcte_7` + WHERE + NOT `bfcol_48` IS NULL AND NOT `bfcol_49` IS NULL AND NOT `bfcol_50` IS NULL + GROUP BY + `bfcol_48`, + `bfcol_49`, + `bfcol_50` +) +SELECT + `bfcol_48` AS `P_BRAND`, + `bfcol_49` AS `P_TYPE`, + `bfcol_50` AS `P_SIZE`, + `bfcol_69` AS `SUPPLIER_CNT` +FROM `bfcte_8` +ORDER BY + `bfcol_69` DESC, + `bfcol_48` ASC NULLS LAST, + `bfcol_49` ASC NULLS LAST, + `bfcol_50` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql new file mode 100644 index 00000000000..94a91c60762 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql @@ -0,0 +1,129 @@ +WITH `bfcte_12` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT('L_EXTENDEDPRICE', 0, 0)]) +), `bfcte_2` AS ( + SELECT + `L_PARTKEY` AS `bfcol_3`, + `L_QUANTITY` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( + SELECT + `P_PARTKEY` AS `bfcol_12` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `P_BRAND` = 'Brand#23' + ) AND ( + `P_CONTAINER` = 'MED BOX' + ) +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_2` + RIGHT JOIN `bfcte_3` + ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_12`, 0) + AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_12`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_12`, + AVG(`bfcol_4`) AS `bfcol_15` + FROM `bfcte_5` + WHERE + NOT `bfcol_12` IS NULL + GROUP BY + `bfcol_12` +), `bfcte_7` AS ( + SELECT + `bfcol_12` AS `bfcol_18`, + `bfcol_15` * 0.2 AS `bfcol_19` + FROM `bfcte_6` +), `bfcte_0` AS ( + SELECT + `L_PARTKEY` AS `bfcol_20`, + `L_QUANTITY` AS `bfcol_21`, + `L_EXTENDEDPRICE` AS `bfcol_22` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `P_PARTKEY` AS `bfcol_30` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `P_BRAND` = 'Brand#23' + ) AND ( + `P_CONTAINER` = 'MED BOX' + ) +), `bfcte_4` AS ( + SELECT + * + FROM `bfcte_0` + RIGHT JOIN `bfcte_1` + ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_30`, 0) + AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_30`, 1) +), `bfcte_8` AS ( + SELECT + `bfcol_21` AS `bfcol_31`, + `bfcol_22` AS `bfcol_32`, + `bfcol_30` AS `bfcol_33` + FROM `bfcte_4` +), `bfcte_9` AS ( + SELECT + * + FROM `bfcte_7` + INNER JOIN `bfcte_8` + ON `bfcol_18` = `bfcol_33` +), `bfcte_10` AS ( + SELECT + `bfcol_18`, + `bfcol_19`, + `bfcol_31`, + `bfcol_32`, + `bfcol_33`, + `bfcol_32` AS `bfcol_37`, + `bfcol_31` < `bfcol_19` AS `bfcol_38` + FROM `bfcte_9` + WHERE + `bfcol_31` < `bfcol_19` +), `bfcte_11` AS ( + SELECT + COALESCE(SUM(`bfcol_37`), 0) AS `bfcol_42` + FROM `bfcte_10` +), `bfcte_13` AS ( + SELECT + `bfcol_42`, + 0 AS `bfcol_43` + FROM `bfcte_11` +), `bfcte_14` AS ( + SELECT + * + FROM `bfcte_12` + CROSS JOIN `bfcte_13` +), `bfcte_15` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_42`, + `bfcol_43`, + CASE WHEN `bfcol_2` = 0 THEN `bfcol_42` END AS `bfcol_44`, + IF(`bfcol_43` = 0, CASE WHEN `bfcol_2` = 0 THEN `bfcol_42` END, NULL) AS `bfcol_49` + FROM `bfcte_14` +), `bfcte_16` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + ANY_VALUE(`bfcol_49`) AS `bfcol_53` + FROM `bfcte_15` + WHERE + NOT `bfcol_0` IS NULL AND NOT `bfcol_1` IS NULL + GROUP BY + `bfcol_0`, + `bfcol_1` +) +SELECT + ROUND(IEEE_DIVIDE(`bfcol_53`, 7.0), 2) AS `AVG_YEARLY` +FROM `bfcte_16` +ORDER BY + `bfcol_1` ASC NULLS LAST, + `bfcol_0` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql new file mode 100644 index 00000000000..98fd17bce22 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql @@ -0,0 +1,130 @@ +WITH `bfcte_4` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_0`, + `O_CUSTKEY` AS `bfcol_1`, + `O_TOTALPRICE` AS `bfcol_2`, + `O_ORDERDATE` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_0` AS ( + SELECT + `L_ORDERKEY`, + `L_QUANTITY` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_ORDERKEY`, + COALESCE(SUM(`L_QUANTITY`), 0) AS `bfcol_6` + FROM `bfcte_0` + WHERE + NOT `L_ORDERKEY` IS NULL + GROUP BY + `L_ORDERKEY` +), `bfcte_2` AS ( + SELECT + `L_ORDERKEY`, + `bfcol_6`, + `L_ORDERKEY` AS `bfcol_7`, + `bfcol_6` > 300 AS `bfcol_8` + FROM `bfcte_1` + WHERE + `bfcol_6` > 300 +), `bfcte_3` AS ( + SELECT + `bfcol_7` + FROM `bfcte_2` + GROUP BY + `bfcol_7` +), `bfcte_5` AS ( + SELECT + `bfcte_4`.*, + EXISTS( + SELECT + 1 + FROM ( + SELECT + `bfcol_7` AS `bfcol_11` + FROM `bfcte_3` + ) AS `bft_3` + WHERE + COALESCE(`bfcte_4`.`bfcol_0`, 0) = COALESCE(`bft_3`.`bfcol_11`, 0) + AND COALESCE(`bfcte_4`.`bfcol_0`, 1) = COALESCE(`bft_3`.`bfcol_11`, 1) + ) AS `bfcol_12` + FROM `bfcte_4` +), `bfcte_6` AS ( + SELECT + `bfcol_0` AS `bfcol_18`, + `bfcol_1` AS `bfcol_19`, + `bfcol_2` AS `bfcol_20`, + `bfcol_3` AS `bfcol_21` + FROM `bfcte_5` + WHERE + `bfcol_12` +), `bfcte_7` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_22`, + `L_QUANTITY` AS `bfcol_23` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_18`, 0) = COALESCE(`bfcol_22`, 0) + AND COALESCE(`bfcol_18`, 1) = COALESCE(`bfcol_22`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_18` AS `bfcol_24`, + `bfcol_19` AS `bfcol_25`, + `bfcol_20` AS `bfcol_26`, + `bfcol_21` AS `bfcol_27`, + `bfcol_23` AS `bfcol_28` + FROM `bfcte_8` +), `bfcte_10` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_29`, + `C_NAME` AS `bfcol_30` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + INNER JOIN `bfcte_10` + ON COALESCE(`bfcol_25`, 0) = COALESCE(`bfcol_29`, 0) + AND COALESCE(`bfcol_25`, 1) = COALESCE(`bfcol_29`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_30`, + `bfcol_29`, + `bfcol_24`, + `bfcol_27`, + `bfcol_26`, + COALESCE(SUM(`bfcol_28`), 0) AS `bfcol_37` + FROM `bfcte_11` + WHERE + NOT `bfcol_30` IS NULL + AND NOT `bfcol_29` IS NULL + AND NOT `bfcol_24` IS NULL + AND NOT `bfcol_27` IS NULL + AND NOT `bfcol_26` IS NULL + GROUP BY + `bfcol_30`, + `bfcol_29`, + `bfcol_24`, + `bfcol_27`, + `bfcol_26` +) +SELECT + `bfcol_30` AS `C_NAME`, + `bfcol_29` AS `C_CUSTKEY`, + `bfcol_24` AS `O_ORDERKEY`, + `bfcol_27` AS `O_ORDERDAT`, + `bfcol_26` AS `O_TOTALPRICE`, + `bfcol_37` AS `COL6` +FROM `bfcte_12` +ORDER BY + `bfcol_26` DESC, + `bfcol_27` ASC NULLS LAST, + `bfcol_30` ASC NULLS LAST, + `bfcol_29` ASC NULLS LAST, + `bfcol_24` ASC NULLS LAST +LIMIT 100 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql new file mode 100644 index 00000000000..d49592fc047 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql @@ -0,0 +1,229 @@ +WITH `bfcte_0` AS ( + SELECT + `P_PARTKEY` AS `bfcol_0`, + `P_BRAND` AS `bfcol_1`, + `P_SIZE` AS `bfcol_2`, + `P_CONTAINER` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_PARTKEY` AS `bfcol_4`, + `L_QUANTITY` AS `bfcol_5`, + `L_EXTENDEDPRICE` AS `bfcol_6`, + `L_DISCOUNT` AS `bfcol_7`, + `L_SHIPINSTRUCT` AS `bfcol_8`, + `L_SHIPMODE` AS `bfcol_9` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_4`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_4`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_3`, + `bfcol_4`, + `bfcol_5`, + `bfcol_6`, + `bfcol_7`, + `bfcol_8`, + `bfcol_9`, + `bfcol_6` AS `bfcol_18`, + `bfcol_7` AS `bfcol_19`, + ( + COALESCE(COALESCE(`bfcol_9` IN ('AIR', 'AIR REG'), FALSE), FALSE) + AND ( + `bfcol_8` = 'DELIVER IN PERSON' + ) + ) + AND ( + ( + ( + ( + ( + ( + `bfcol_1` = 'Brand#12' + ) + AND COALESCE(COALESCE(`bfcol_3` IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'), FALSE), FALSE) + ) + AND ( + ( + `bfcol_5` >= 1 + ) AND ( + `bfcol_5` <= 11 + ) + ) + ) + AND ( + ( + `bfcol_2` >= 1 + ) AND ( + `bfcol_2` <= 5 + ) + ) + ) + OR ( + ( + ( + ( + `bfcol_1` = 'Brand#23' + ) + AND COALESCE(COALESCE(`bfcol_3` IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'), FALSE), FALSE) + ) + AND ( + ( + `bfcol_5` >= 10 + ) AND ( + `bfcol_5` <= 20 + ) + ) + ) + AND ( + ( + `bfcol_2` >= 1 + ) AND ( + `bfcol_2` <= 10 + ) + ) + ) + ) + OR ( + ( + ( + ( + `bfcol_1` = 'Brand#34' + ) + AND COALESCE(COALESCE(`bfcol_3` IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'), FALSE), FALSE) + ) + AND ( + ( + `bfcol_5` >= 20 + ) AND ( + `bfcol_5` <= 30 + ) + ) + ) + AND ( + ( + `bfcol_2` >= 1 + ) AND ( + `bfcol_2` <= 15 + ) + ) + ) + ) AS `bfcol_20`, + `bfcol_6` AS `bfcol_26`, + 1 - `bfcol_7` AS `bfcol_27`, + `bfcol_6` * ( + 1 - `bfcol_7` + ) AS `bfcol_30` + FROM `bfcte_2` + WHERE + ( + COALESCE(COALESCE(`bfcol_9` IN ('AIR', 'AIR REG'), FALSE), FALSE) + AND ( + `bfcol_8` = 'DELIVER IN PERSON' + ) + ) + AND ( + ( + ( + ( + ( + ( + `bfcol_1` = 'Brand#12' + ) + AND COALESCE(COALESCE(`bfcol_3` IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'), FALSE), FALSE) + ) + AND ( + ( + `bfcol_5` >= 1 + ) AND ( + `bfcol_5` <= 11 + ) + ) + ) + AND ( + ( + `bfcol_2` >= 1 + ) AND ( + `bfcol_2` <= 5 + ) + ) + ) + OR ( + ( + ( + ( + `bfcol_1` = 'Brand#23' + ) + AND COALESCE(COALESCE(`bfcol_3` IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'), FALSE), FALSE) + ) + AND ( + ( + `bfcol_5` >= 10 + ) AND ( + `bfcol_5` <= 20 + ) + ) + ) + AND ( + ( + `bfcol_2` >= 1 + ) AND ( + `bfcol_2` <= 10 + ) + ) + ) + ) + OR ( + ( + ( + ( + `bfcol_1` = 'Brand#34' + ) + AND COALESCE(COALESCE(`bfcol_3` IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'), FALSE), FALSE) + ) + AND ( + ( + `bfcol_5` >= 20 + ) AND ( + `bfcol_5` <= 30 + ) + ) + ) + AND ( + ( + `bfcol_2` >= 1 + ) AND ( + `bfcol_2` <= 15 + ) + ) + ) + ) +), `bfcte_4` AS ( + SELECT + COALESCE(SUM(`bfcol_30`), 0) AS `bfcol_32` + FROM `bfcte_3` +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_4` +), `bfcte_6` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT(0)]) +), `bfcte_7` AS ( + SELECT + * + FROM `bfcte_5` + CROSS JOIN `bfcte_6` +) +SELECT + CASE WHEN `bfcol_33` = 0 THEN `bfcol_32` END AS `REVENUE` +FROM `bfcte_7` \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql new file mode 100644 index 00000000000..8f8c8ec1746 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql @@ -0,0 +1,257 @@ +WITH `bfcte_2` AS ( + SELECT + `P_PARTKEY` AS `bfcol_0`, + `P_TYPE` AS `bfcol_1`, + `P_SIZE` AS `bfcol_2` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_3`, + `PS_SUPPKEY` AS `bfcol_4`, + `PS_SUPPLYCOST` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_2` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) +), `bfcte_8` AS ( + SELECT + `bfcol_0` AS `bfcol_6`, + `bfcol_1` AS `bfcol_7`, + `bfcol_2` AS `bfcol_8`, + `bfcol_4` AS `bfcol_9`, + `bfcol_5` AS `bfcol_10` + FROM `bfcte_5` +), `bfcte_9` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_11`, + `S_NATIONKEY` AS `bfcol_12` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_8` + INNER JOIN `bfcte_9` + ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_11`, 0) + AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_11`, 1) +), `bfcte_14` AS ( + SELECT + `bfcol_6` AS `bfcol_13`, + `bfcol_7` AS `bfcol_14`, + `bfcol_8` AS `bfcol_15`, + `bfcol_10` AS `bfcol_16`, + `bfcol_12` AS `bfcol_17` + FROM `bfcte_11` +), `bfcte_15` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_18`, + `N_REGIONKEY` AS `bfcol_19` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_17` AS ( + SELECT + * + FROM `bfcte_14` + INNER JOIN `bfcte_15` + ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_18`, 0) + AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_18`, 1) +), `bfcte_20` AS ( + SELECT + `bfcol_13` AS `bfcol_20`, + `bfcol_14` AS `bfcol_21`, + `bfcol_15` AS `bfcol_22`, + `bfcol_16` AS `bfcol_23`, + `bfcol_19` AS `bfcol_24` + FROM `bfcte_17` +), `bfcte_21` AS ( + SELECT + `R_REGIONKEY` AS `bfcol_25`, + `R_NAME` AS `bfcol_26` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_23` AS ( + SELECT + * + FROM `bfcte_20` + INNER JOIN `bfcte_21` + ON COALESCE(`bfcol_24`, 0) = COALESCE(`bfcol_25`, 0) + AND COALESCE(`bfcol_24`, 1) = COALESCE(`bfcol_25`, 1) +), `bfcte_24` AS ( + SELECT + `bfcol_20`, + `bfcol_21`, + `bfcol_22`, + `bfcol_23`, + `bfcol_24`, + `bfcol_25`, + `bfcol_26`, + `bfcol_20` AS `bfcol_32`, + `bfcol_21` AS `bfcol_33`, + `bfcol_23` AS `bfcol_34`, + `bfcol_26` AS `bfcol_35`, + `bfcol_22` = 15 AS `bfcol_36`, + `bfcol_20` AS `bfcol_46`, + `bfcol_23` AS `bfcol_47`, + `bfcol_26` AS `bfcol_48`, + ENDS_WITH(`bfcol_21`, 'BRASS') AS `bfcol_49`, + `bfcol_20` AS `bfcol_57`, + `bfcol_23` AS `bfcol_58`, + `bfcol_26` = 'EUROPE' AS `bfcol_59` + FROM `bfcte_23` + WHERE + `bfcol_22` = 15 AND ENDS_WITH(`bfcol_21`, 'BRASS') AND `bfcol_26` = 'EUROPE' +), `bfcte_25` AS ( + SELECT + `bfcol_57`, + MIN(`bfcol_58`) AS `bfcol_65` + FROM `bfcte_24` + WHERE + NOT `bfcol_57` IS NULL + GROUP BY + `bfcol_57` +), `bfcte_26` AS ( + SELECT + `bfcol_57` AS `bfcol_63`, + `bfcol_65` + FROM `bfcte_25` +), `bfcte_0` AS ( + SELECT + `P_PARTKEY` AS `bfcol_66`, + `P_MFGR` AS `bfcol_67`, + `P_TYPE` AS `bfcol_68`, + `P_SIZE` AS `bfcol_69` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_70`, + `PS_SUPPKEY` AS `bfcol_71`, + `PS_SUPPLYCOST` AS `bfcol_72` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_66`, 0) = COALESCE(`bfcol_70`, 0) + AND COALESCE(`bfcol_66`, 1) = COALESCE(`bfcol_70`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_66` AS `bfcol_73`, + `bfcol_67` AS `bfcol_74`, + `bfcol_68` AS `bfcol_75`, + `bfcol_69` AS `bfcol_76`, + `bfcol_71` AS `bfcol_77`, + `bfcol_72` AS `bfcol_78` + FROM `bfcte_4` +), `bfcte_7` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_79`, + `S_NAME` AS `bfcol_80`, + `S_ADDRESS` AS `bfcol_81`, + `S_NATIONKEY` AS `bfcol_82`, + `S_PHONE` AS `bfcol_83`, + `S_ACCTBAL` AS `bfcol_84`, + `S_COMMENT` AS `bfcol_85` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_10` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_77`, 0) = COALESCE(`bfcol_79`, 0) + AND COALESCE(`bfcol_77`, 1) = COALESCE(`bfcol_79`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_73` AS `bfcol_86`, + `bfcol_74` AS `bfcol_87`, + `bfcol_75` AS `bfcol_88`, + `bfcol_76` AS `bfcol_89`, + `bfcol_78` AS `bfcol_90`, + `bfcol_80` AS `bfcol_91`, + `bfcol_81` AS `bfcol_92`, + `bfcol_82` AS `bfcol_93`, + `bfcol_83` AS `bfcol_94`, + `bfcol_84` AS `bfcol_95`, + `bfcol_85` AS `bfcol_96` + FROM `bfcte_10` +), `bfcte_13` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_97`, + `N_NAME` AS `bfcol_98`, + `N_REGIONKEY` AS `bfcol_99` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_16` AS ( + SELECT + * + FROM `bfcte_12` + INNER JOIN `bfcte_13` + ON COALESCE(`bfcol_93`, 0) = COALESCE(`bfcol_97`, 0) + AND COALESCE(`bfcol_93`, 1) = COALESCE(`bfcol_97`, 1) +), `bfcte_18` AS ( + SELECT + `bfcol_86` AS `bfcol_100`, + `bfcol_87` AS `bfcol_101`, + `bfcol_88` AS `bfcol_102`, + `bfcol_89` AS `bfcol_103`, + `bfcol_90` AS `bfcol_104`, + `bfcol_91` AS `bfcol_105`, + `bfcol_92` AS `bfcol_106`, + `bfcol_94` AS `bfcol_107`, + `bfcol_95` AS `bfcol_108`, + `bfcol_96` AS `bfcol_109`, + `bfcol_98` AS `bfcol_110`, + `bfcol_99` AS `bfcol_111` + FROM `bfcte_16` +), `bfcte_19` AS ( + SELECT + `R_REGIONKEY` AS `bfcol_112`, + `R_NAME` AS `bfcol_113` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_22` AS ( + SELECT + * + FROM `bfcte_18` + INNER JOIN `bfcte_19` + ON COALESCE(`bfcol_111`, 0) = COALESCE(`bfcol_112`, 0) + AND COALESCE(`bfcol_111`, 1) = COALESCE(`bfcol_112`, 1) +), `bfcte_27` AS ( + SELECT + `bfcol_100` AS `bfcol_213`, + `bfcol_101` AS `bfcol_214`, + `bfcol_104` AS `bfcol_215`, + `bfcol_105` AS `bfcol_216`, + `bfcol_106` AS `bfcol_217`, + `bfcol_107` AS `bfcol_218`, + `bfcol_108` AS `bfcol_219`, + `bfcol_109` AS `bfcol_220`, + `bfcol_110` AS `bfcol_221` + FROM `bfcte_22` + WHERE + `bfcol_103` = 15 AND ENDS_WITH(`bfcol_102`, 'BRASS') AND `bfcol_113` = 'EUROPE' +), `bfcte_28` AS ( + SELECT + * + FROM `bfcte_26` + INNER JOIN `bfcte_27` + ON COALESCE(`bfcol_63`, 0) = COALESCE(`bfcol_213`, 0) + AND COALESCE(`bfcol_63`, 1) = COALESCE(`bfcol_213`, 1) + AND IF(IS_NAN(`bfcol_65`), 2, COALESCE(`bfcol_65`, 0)) = IF(IS_NAN(`bfcol_215`), 2, COALESCE(`bfcol_215`, 0)) + AND IF(IS_NAN(`bfcol_65`), 3, COALESCE(`bfcol_65`, 1)) = IF(IS_NAN(`bfcol_215`), 3, COALESCE(`bfcol_215`, 1)) +) +SELECT + `bfcol_219` AS `S_ACCTBAL`, + `bfcol_216` AS `S_NAME`, + `bfcol_221` AS `N_NAME`, + `bfcol_63` AS `P_PARTKEY`, + `bfcol_214` AS `P_MFGR`, + `bfcol_217` AS `S_ADDRESS`, + `bfcol_218` AS `S_PHONE`, + `bfcol_220` AS `S_COMMENT` +FROM `bfcte_28` +ORDER BY + `bfcol_219` DESC, + `bfcol_221` ASC NULLS LAST, + `bfcol_216` ASC NULLS LAST, + `bfcol_63` ASC NULLS LAST +LIMIT 100 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql new file mode 100644 index 00000000000..d1a28cc4feb --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql @@ -0,0 +1,161 @@ +WITH `bfcte_2` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_0`, + `S_NAME` AS `bfcol_1`, + `S_ADDRESS` AS `bfcol_2`, + `S_NATIONKEY` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_10` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `N_NAME` = 'CANADA' +), `bfcte_6` AS ( + SELECT + * + FROM `bfcte_2` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_10`, 0) + AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_10`, 1) +), `bfcte_14` AS ( + SELECT + `bfcol_0` AS `bfcol_11`, + `bfcol_1` AS `bfcol_12`, + `bfcol_2` AS `bfcol_13` + FROM `bfcte_6` +), `bfcte_1` AS ( + SELECT + `L_PARTKEY`, + `L_SUPPKEY`, + `L_QUANTITY`, + `L_SHIPDATE`, + `L_PARTKEY` AS `bfcol_18`, + `L_SUPPKEY` AS `bfcol_19`, + `L_QUANTITY` AS `bfcol_20`, + ( + `L_SHIPDATE` >= CAST('1994-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1995-01-01' AS DATE) + ) AS `bfcol_21` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `L_SHIPDATE` >= CAST('1994-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1995-01-01' AS DATE) + ) +), `bfcte_5` AS ( + SELECT + `bfcol_18`, + `bfcol_19`, + COALESCE(SUM(`bfcol_20`), 0) AS `bfcol_29` + FROM `bfcte_1` + WHERE + NOT `bfcol_18` IS NULL AND NOT `bfcol_19` IS NULL + GROUP BY + `bfcol_18`, + `bfcol_19` +), `bfcte_9` AS ( + SELECT + `bfcol_18` AS `bfcol_33`, + `bfcol_19` AS `bfcol_34`, + `bfcol_29` * 0.5 AS `bfcol_35` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_36`, + `PS_SUPPKEY` AS `bfcol_37`, + `PS_AVAILQTY` AS `bfcol_38` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_0` AS ( + SELECT + `P_PARTKEY`, + `P_NAME`, + `P_PARTKEY` AS `bfcol_41`, + STARTS_WITH(`P_NAME`, 'forest') AS `bfcol_42` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + STARTS_WITH(`P_NAME`, 'forest') +), `bfcte_4` AS ( + SELECT + `bfcol_41` + FROM `bfcte_0` + GROUP BY + `bfcol_41` +), `bfcte_8` AS ( + SELECT + `bfcte_7`.*, + EXISTS( + SELECT + 1 + FROM ( + SELECT + `bfcol_41` AS `bfcol_45` + FROM `bfcte_4` + ) AS `bft_5` + WHERE + COALESCE(`bfcte_7`.`bfcol_36`, 0) = COALESCE(`bft_5`.`bfcol_45`, 0) + AND COALESCE(`bfcte_7`.`bfcol_36`, 1) = COALESCE(`bft_5`.`bfcol_45`, 1) + ) AS `bfcol_46` + FROM `bfcte_7` +), `bfcte_10` AS ( + SELECT + `bfcol_36` AS `bfcol_51`, + `bfcol_37` AS `bfcol_52`, + `bfcol_38` AS `bfcol_53` + FROM `bfcte_8` + WHERE + `bfcol_46` +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + INNER JOIN `bfcte_10` + ON `bfcol_34` = `bfcol_52` AND `bfcol_33` = `bfcol_51` +), `bfcte_12` AS ( + SELECT + `bfcol_33`, + `bfcol_34`, + `bfcol_35`, + `bfcol_51`, + `bfcol_52`, + `bfcol_53`, + `bfcol_52` AS `bfcol_57`, + `bfcol_53` > `bfcol_35` AS `bfcol_58` + FROM `bfcte_11` + WHERE + `bfcol_53` > `bfcol_35` +), `bfcte_13` AS ( + SELECT + `bfcol_57` + FROM `bfcte_12` + GROUP BY + `bfcol_57` +), `bfcte_15` AS ( + SELECT + `bfcte_14`.*, + EXISTS( + SELECT + 1 + FROM ( + SELECT + `bfcol_57` AS `bfcol_61` + FROM `bfcte_13` + ) AS `bft_6` + WHERE + COALESCE(`bfcte_14`.`bfcol_11`, 0) = COALESCE(`bft_6`.`bfcol_61`, 0) + AND COALESCE(`bfcte_14`.`bfcol_11`, 1) = COALESCE(`bft_6`.`bfcol_61`, 1) + ) AS `bfcol_62` + FROM `bfcte_14` +) +SELECT + `bfcol_12` AS `S_NAME`, + `bfcol_13` AS `S_ADDRESS` +FROM `bfcte_15` +WHERE + `bfcol_62` +ORDER BY + `bfcol_12` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql new file mode 100644 index 00000000000..5e55fd0f156 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql @@ -0,0 +1,191 @@ +WITH `bfcte_1` AS ( + SELECT + `L_ORDERKEY` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( + SELECT + `L_ORDERKEY`, + COUNT(1) AS `bfcol_1` + FROM `bfcte_1` + WHERE + NOT `L_ORDERKEY` IS NULL + GROUP BY + `L_ORDERKEY` +), `bfcte_6` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_6` + FROM `bfcte_3` + WHERE + `bfcol_1` > 1 +), `bfcte_7` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_14` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `L_RECEIPTDATE` > `L_COMMITDATE` +), `bfcte_9` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON `bfcol_6` = `bfcol_14` +), `bfcte_10` AS ( + SELECT + `bfcol_6`, + COUNT(1) AS `bfcol_16` + FROM `bfcte_9` + GROUP BY + `bfcol_6` +), `bfcte_11` AS ( + SELECT + `bfcol_6` AS `bfcol_15`, + `bfcol_16` + FROM `bfcte_10` +), `bfcte_0` AS ( + SELECT + `L_ORDERKEY` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + `L_ORDERKEY`, + COUNT(1) AS `bfcol_18` + FROM `bfcte_0` + WHERE + NOT `L_ORDERKEY` IS NULL + GROUP BY + `L_ORDERKEY` +), `bfcte_4` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_23` + FROM `bfcte_2` + WHERE + `bfcol_18` > 1 +), `bfcte_5` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_34`, + `L_SUPPKEY` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `L_RECEIPTDATE` > `L_COMMITDATE` +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_4` + INNER JOIN `bfcte_5` + ON `bfcol_23` = `bfcol_34` +), `bfcte_12` AS ( + SELECT + `bfcol_23` AS `bfcol_36`, + `bfcol_35` AS `bfcol_37` + FROM `bfcte_8` +), `bfcte_13` AS ( + SELECT + * + FROM `bfcte_11` + INNER JOIN `bfcte_12` + ON `bfcol_15` = `bfcol_36` +), `bfcte_14` AS ( + SELECT + `bfcol_15` AS `bfcol_38`, + `bfcol_16` AS `bfcol_39`, + `bfcol_37` AS `bfcol_40` + FROM `bfcte_13` +), `bfcte_15` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_41`, + `S_NAME` AS `bfcol_42`, + `S_NATIONKEY` AS `bfcol_43` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_16` AS ( + SELECT + * + FROM `bfcte_14` + INNER JOIN `bfcte_15` + ON COALESCE(`bfcol_40`, 0) = COALESCE(`bfcol_41`, 0) + AND COALESCE(`bfcol_40`, 1) = COALESCE(`bfcol_41`, 1) +), `bfcte_17` AS ( + SELECT + `bfcol_38` AS `bfcol_44`, + `bfcol_39` AS `bfcol_45`, + `bfcol_42` AS `bfcol_46`, + `bfcol_43` AS `bfcol_47` + FROM `bfcte_16` +), `bfcte_18` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_48`, + `N_NAME` AS `bfcol_49` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_19` AS ( + SELECT + * + FROM `bfcte_17` + INNER JOIN `bfcte_18` + ON COALESCE(`bfcol_47`, 0) = COALESCE(`bfcol_48`, 0) + AND COALESCE(`bfcol_47`, 1) = COALESCE(`bfcol_48`, 1) +), `bfcte_20` AS ( + SELECT + `bfcol_44` AS `bfcol_50`, + `bfcol_45` AS `bfcol_51`, + `bfcol_46` AS `bfcol_52`, + `bfcol_49` AS `bfcol_53` + FROM `bfcte_19` +), `bfcte_21` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_54`, + `O_ORDERSTATUS` AS `bfcol_55` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_22` AS ( + SELECT + * + FROM `bfcte_20` + INNER JOIN `bfcte_21` + ON `bfcol_50` = `bfcol_54` +), `bfcte_23` AS ( + SELECT + `bfcol_50`, + `bfcol_51`, + `bfcol_52`, + `bfcol_53`, + `bfcol_54`, + `bfcol_55`, + `bfcol_52` AS `bfcol_60`, + ( + ( + `bfcol_51` = 1 + ) AND ( + `bfcol_53` = 'SAUDI ARABIA' + ) + ) + AND ( + `bfcol_55` = 'F' + ) AS `bfcol_61` + FROM `bfcte_22` + WHERE + ( + ( + `bfcol_51` = 1 + ) AND ( + `bfcol_53` = 'SAUDI ARABIA' + ) + ) + AND ( + `bfcol_55` = 'F' + ) +), `bfcte_24` AS ( + SELECT + `bfcol_60`, + COUNT(1) AS `bfcol_65` + FROM `bfcte_23` + WHERE + NOT `bfcol_60` IS NULL + GROUP BY + `bfcol_60` +) +SELECT + `bfcol_60` AS `S_NAME`, + `bfcol_65` AS `NUMWAIT` +FROM `bfcte_24` +ORDER BY + `bfcol_65` DESC, + `bfcol_60` ASC NULLS LAST +LIMIT 100 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql new file mode 100644 index 00000000000..ad7dc867f58 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql @@ -0,0 +1,145 @@ +WITH `bfcte_9` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_17`, + `C_ACCTBAL` AS `bfcol_18`, + SUBSTRING(`C_PHONE`, 1, 2) AS `bfcol_19` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + COALESCE( + COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), + FALSE + ) +), `bfcte_4` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT('C_ACCTBAL', 0, 0)]) +), `bfcte_1` AS ( + SELECT + `C_PHONE`, + `C_ACCTBAL`, + `C_ACCTBAL` AS `bfcol_25`, + SUBSTRING(`C_PHONE`, 1, 2) AS `bfcol_26`, + `C_ACCTBAL` AS `bfcol_29`, + COALESCE( + COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), + FALSE + ) AS `bfcol_30`, + `C_ACCTBAL` AS `bfcol_34`, + `C_ACCTBAL` > 0.0 AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + COALESCE( + COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), + FALSE + ) + AND `C_ACCTBAL` > 0.0 +), `bfcte_3` AS ( + SELECT + AVG(`bfcol_34`) AS `bfcol_39` + FROM `bfcte_1` +), `bfcte_5` AS ( + SELECT + `bfcol_39`, + 0 AS `bfcol_40` + FROM `bfcte_3` +), `bfcte_6` AS ( + SELECT + * + FROM `bfcte_4` + CROSS JOIN `bfcte_5` +), `bfcte_7` AS ( + SELECT + `bfcol_20`, + `bfcol_21`, + `bfcol_22`, + `bfcol_39`, + `bfcol_40`, + CASE WHEN `bfcol_22` = 0 THEN `bfcol_39` END AS `bfcol_41`, + IF(`bfcol_40` = 0, CASE WHEN `bfcol_22` = 0 THEN `bfcol_39` END, NULL) AS `bfcol_46` + FROM `bfcte_6` +), `bfcte_8` AS ( + SELECT + `bfcol_20`, + `bfcol_21`, + ANY_VALUE(`bfcol_46`) AS `bfcol_50` + FROM `bfcte_7` + WHERE + NOT `bfcol_20` IS NULL AND NOT `bfcol_21` IS NULL + GROUP BY + `bfcol_20`, + `bfcol_21` +), `bfcte_10` AS ( + SELECT + `bfcol_50` AS `bfcol_51` + FROM `bfcte_8` +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + CROSS JOIN `bfcte_10` +), `bfcte_12` AS ( + SELECT + `bfcol_17` AS `bfcol_60`, + `bfcol_18` AS `bfcol_61`, + `bfcol_19` AS `bfcol_62` + FROM `bfcte_11` + WHERE + `bfcol_18` > `bfcol_51` +), `bfcte_0` AS ( + SELECT + `O_CUSTKEY` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + `O_CUSTKEY` + FROM `bfcte_0` + GROUP BY + `O_CUSTKEY` +), `bfcte_13` AS ( + SELECT + `bfcte_12`.*, + EXISTS( + SELECT + 1 + FROM ( + SELECT + `O_CUSTKEY` AS `bfcol_63` + FROM `bfcte_2` + ) AS `bft_2` + WHERE + COALESCE(`bfcte_12`.`bfcol_60`, 0) = COALESCE(`bft_2`.`bfcol_63`, 0) + AND COALESCE(`bfcte_12`.`bfcol_60`, 1) = COALESCE(`bft_2`.`bfcol_63`, 1) + ) AS `bfcol_64` + FROM `bfcte_12` +), `bfcte_14` AS ( + SELECT + `bfcol_60`, + `bfcol_61`, + `bfcol_62`, + `bfcol_64`, + NOT ( + `bfcol_64` + ) AS `bfcol_65` + FROM `bfcte_13` + WHERE + NOT ( + `bfcol_64` + ) +), `bfcte_15` AS ( + SELECT + `bfcol_62`, + COUNT(`bfcol_60`) AS `bfcol_73`, + COALESCE(SUM(`bfcol_61`), 0) AS `bfcol_74` + FROM `bfcte_14` + WHERE + NOT `bfcol_62` IS NULL + GROUP BY + `bfcol_62` +) +SELECT + `bfcol_62` AS `CNTRYCODE`, + `bfcol_73` AS `NUMCUST`, + `bfcol_74` AS `TOTACCTBAL` +FROM `bfcte_15` +ORDER BY + `bfcol_62` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql new file mode 100644 index 00000000000..45985794a2c --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql @@ -0,0 +1,88 @@ +WITH `bfcte_3` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `C_MKTSEGMENT` = 'BUILDING' +), `bfcte_0` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_19`, + `L_EXTENDEDPRICE` AS `bfcol_20`, + `L_DISCOUNT` AS `bfcol_21` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `L_SHIPDATE` > CAST('1995-03-15' AS DATE) +), `bfcte_1` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_36`, + `O_CUSTKEY` AS `bfcol_37`, + `O_ORDERDATE` AS `bfcol_38`, + `O_SHIPPRIORITY` AS `bfcol_39` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `O_ORDERDATE` < CAST('1995-03-15' AS DATE) +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_19`, 0) = COALESCE(`bfcol_36`, 0) + AND COALESCE(`bfcol_19`, 1) = COALESCE(`bfcol_36`, 1) +), `bfcte_4` AS ( + SELECT + `bfcol_20` AS `bfcol_40`, + `bfcol_21` AS `bfcol_41`, + `bfcol_36` AS `bfcol_42`, + `bfcol_37` AS `bfcol_43`, + `bfcol_38` AS `bfcol_44`, + `bfcol_39` AS `bfcol_45` + FROM `bfcte_2` +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_3` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_6`, 0) = COALESCE(`bfcol_43`, 0) + AND COALESCE(`bfcol_6`, 1) = COALESCE(`bfcol_43`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_6`, + `bfcol_40`, + `bfcol_41`, + `bfcol_42`, + `bfcol_43`, + `bfcol_44`, + `bfcol_45`, + `bfcol_42` AS `bfcol_51`, + `bfcol_44` AS `bfcol_52`, + `bfcol_45` AS `bfcol_53`, + `bfcol_40` * ( + 1 - `bfcol_41` + ) AS `bfcol_54` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + `bfcol_51`, + `bfcol_52`, + `bfcol_53`, + COALESCE(SUM(`bfcol_54`), 0) AS `bfcol_59` + FROM `bfcte_6` + WHERE + NOT `bfcol_51` IS NULL AND NOT `bfcol_52` IS NULL AND NOT `bfcol_53` IS NULL + GROUP BY + `bfcol_51`, + `bfcol_52`, + `bfcol_53` +) +SELECT + `bfcol_51` AS `L_ORDERKEY`, + `bfcol_59` AS `REVENUE`, + `bfcol_52` AS `O_ORDERDATE`, + `bfcol_53` AS `O_SHIPPRIORITY` +FROM `bfcte_7` +ORDER BY + `bfcol_59` DESC, + `bfcol_52` ASC NULLS LAST, + `bfcol_51` ASC NULLS LAST, + `bfcol_53` ASC NULLS LAST +LIMIT 10 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql new file mode 100644 index 00000000000..e4b28e82d93 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql @@ -0,0 +1,74 @@ +WITH `bfcte_0` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_0`, + `L_COMMITDATE` AS `bfcol_1`, + `L_RECEIPTDATE` AS `bfcol_2` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_3`, + `O_ORDERDATE` AS `bfcol_4`, + `O_ORDERPRIORITY` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_3`, + `bfcol_4`, + `bfcol_5`, + `bfcol_0` AS `bfcol_11`, + `bfcol_1` AS `bfcol_12`, + `bfcol_2` AS `bfcol_13`, + `bfcol_5` AS `bfcol_14`, + ( + `bfcol_4` >= CAST('1993-07-01' AS DATE) + ) + AND ( + `bfcol_4` < CAST('1993-10-01' AS DATE) + ) AS `bfcol_15`, + `bfcol_0` AS `bfcol_25`, + `bfcol_5` AS `bfcol_26`, + `bfcol_1` < `bfcol_2` AS `bfcol_27` + FROM `bfcte_2` + WHERE + ( + `bfcol_4` >= CAST('1993-07-01' AS DATE) + ) + AND ( + `bfcol_4` < CAST('1993-10-01' AS DATE) + ) + AND `bfcol_1` < `bfcol_2` +), `bfcte_4` AS ( + SELECT + `bfcol_26`, + `bfcol_25`, + COUNT(1) AS `bfcol_33` + FROM `bfcte_3` + WHERE + NOT `bfcol_26` IS NULL AND NOT `bfcol_25` IS NULL + GROUP BY + `bfcol_26`, + `bfcol_25` +), `bfcte_5` AS ( + SELECT + `bfcol_26`, + COUNT(`bfcol_25`) AS `bfcol_36` + FROM `bfcte_4` + GROUP BY + `bfcol_26` +) +SELECT + `bfcol_26` AS `O_ORDERPRIORITY`, + `bfcol_36` AS `ORDER_COUNT` +FROM `bfcte_5` +ORDER BY + `bfcol_26` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql new file mode 100644 index 00000000000..54764f837aa --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql @@ -0,0 +1,120 @@ +WITH `bfcte_9` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_7`, + `L_SUPPKEY` AS `bfcol_8`, + `L_EXTENDEDPRICE` * ( + 1.0 - `L_DISCOUNT` + ) AS `bfcol_9` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_6` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_19`, + `O_CUSTKEY` AS `bfcol_20` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `O_ORDERDATE` >= CAST('1994-01-01' AS DATE) + ) + AND ( + `O_ORDERDATE` < CAST('1995-01-01' AS DATE) + ) +), `bfcte_0` AS ( + SELECT + `R_REGIONKEY` AS `bfcol_27` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `R_NAME` = 'ASIA' +), `bfcte_1` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_28`, + `N_NAME` AS `bfcol_29`, + `N_REGIONKEY` AS `bfcol_30` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_27`, 0) = COALESCE(`bfcol_30`, 0) + AND COALESCE(`bfcol_27`, 1) = COALESCE(`bfcol_30`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_28` AS `bfcol_31`, + `bfcol_29` AS `bfcol_32` + FROM `bfcte_2` +), `bfcte_4` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_33`, + `C_NATIONKEY` AS `bfcol_34` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_3` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_31`, 0) = COALESCE(`bfcol_34`, 0) + AND COALESCE(`bfcol_31`, 1) = COALESCE(`bfcol_34`, 1) +), `bfcte_7` AS ( + SELECT + `bfcol_31` AS `bfcol_35`, + `bfcol_32` AS `bfcol_36`, + `bfcol_33` AS `bfcol_37` + FROM `bfcte_5` +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_37`, 0) + AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_37`, 1) +), `bfcte_10` AS ( + SELECT + `bfcol_19` AS `bfcol_38`, + `bfcol_35` AS `bfcol_39`, + `bfcol_36` AS `bfcol_40` + FROM `bfcte_8` +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + INNER JOIN `bfcte_10` + ON COALESCE(`bfcol_7`, 0) = COALESCE(`bfcol_38`, 0) + AND COALESCE(`bfcol_7`, 1) = COALESCE(`bfcol_38`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_8` AS `bfcol_41`, + `bfcol_9` AS `bfcol_42`, + `bfcol_39` AS `bfcol_43`, + `bfcol_40` AS `bfcol_44` + FROM `bfcte_11` +), `bfcte_13` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_45`, + `S_NATIONKEY` AS `bfcol_46` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_14` AS ( + SELECT + * + FROM `bfcte_12` + INNER JOIN `bfcte_13` + ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_45`, 0) + AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_45`, 1) + AND COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_46`, 0) + AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_46`, 1) +), `bfcte_15` AS ( + SELECT + `bfcol_44`, + COALESCE(SUM(`bfcol_42`), 0) AS `bfcol_49` + FROM `bfcte_14` + WHERE + NOT `bfcol_44` IS NULL + GROUP BY + `bfcol_44` +) +SELECT + `bfcol_44` AS `N_NAME`, + `bfcol_49` AS `REVENUE` +FROM `bfcte_15` +ORDER BY + `bfcol_49` DESC, + `bfcol_44` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql new file mode 100644 index 00000000000..6355550fb46 --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql @@ -0,0 +1,65 @@ +WITH `bfcte_0` AS ( + SELECT + `L_QUANTITY`, + `L_EXTENDEDPRICE`, + `L_DISCOUNT`, + `L_SHIPDATE`, + `L_QUANTITY` AS `bfcol_4`, + `L_EXTENDEDPRICE` AS `bfcol_5`, + `L_DISCOUNT` AS `bfcol_6`, + ( + `L_SHIPDATE` >= CAST('1994-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1995-01-01' AS DATE) + ) AS `bfcol_7`, + `L_QUANTITY` AS `bfcol_15`, + `L_EXTENDEDPRICE` AS `bfcol_16`, + `L_DISCOUNT` AS `bfcol_17`, + ( + `L_DISCOUNT` >= 0.05 + ) AND ( + `L_DISCOUNT` <= 0.07 + ) AS `bfcol_18`, + `L_EXTENDEDPRICE` AS `bfcol_26`, + `L_DISCOUNT` AS `bfcol_27`, + `L_QUANTITY` < 24 AS `bfcol_28`, + `L_EXTENDEDPRICE` AS `bfcol_34`, + `L_DISCOUNT` AS `bfcol_35`, + `L_EXTENDEDPRICE` * `L_DISCOUNT` AS `bfcol_38` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `L_SHIPDATE` >= CAST('1994-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` < CAST('1995-01-01' AS DATE) + ) + AND ( + `L_DISCOUNT` >= 0.05 + ) + AND ( + `L_DISCOUNT` <= 0.07 + ) + AND `L_QUANTITY` < 24 +), `bfcte_1` AS ( + SELECT + COALESCE(SUM(`bfcol_38`), 0) AS `bfcol_40` + FROM `bfcte_0` +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_1` +), `bfcte_3` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT(0)]) +), `bfcte_4` AS ( + SELECT + * + FROM `bfcte_2` + CROSS JOIN `bfcte_3` +) +SELECT + CASE WHEN `bfcol_41` = 0 THEN `bfcol_40` END AS `REVENUE` +FROM `bfcte_4` \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql new file mode 100644 index 00000000000..ed98f7f505b --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql @@ -0,0 +1,159 @@ +WITH `bfcte_0` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_0`, + `C_NATIONKEY` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_10`, + `N_NAME` AS `bfcol_11` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + COALESCE(COALESCE(`N_NAME` IN ('FRANCE', 'GERMANY'), FALSE), FALSE) +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_1`, 0) = COALESCE(`bfcol_10`, 0) + AND COALESCE(`bfcol_1`, 1) = COALESCE(`bfcol_10`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_0` AS `bfcol_12`, + `bfcol_11` AS `bfcol_13` + FROM `bfcte_2` +), `bfcte_4` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_14`, + `O_CUSTKEY` AS `bfcol_15` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_3` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_12`, 0) = COALESCE(`bfcol_15`, 0) + AND COALESCE(`bfcol_12`, 1) = COALESCE(`bfcol_15`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_13` AS `bfcol_16`, + `bfcol_14` AS `bfcol_17` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_35`, + `L_SUPPKEY` AS `bfcol_36`, + `L_EXTENDEDPRICE` AS `bfcol_37`, + `L_DISCOUNT` AS `bfcol_38`, + `L_SHIPDATE` AS `bfcol_39` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `L_SHIPDATE` >= CAST('1995-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` <= CAST('1996-12-31' AS DATE) + ) +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_35`, 0) + AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_35`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_16` AS `bfcol_40`, + `bfcol_36` AS `bfcol_41`, + `bfcol_37` AS `bfcol_42`, + `bfcol_38` AS `bfcol_43`, + `bfcol_39` AS `bfcol_44` + FROM `bfcte_8` +), `bfcte_10` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_45`, + `S_NATIONKEY` AS `bfcol_46` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + INNER JOIN `bfcte_10` + ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_45`, 0) + AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_45`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_40` AS `bfcol_47`, + `bfcol_42` AS `bfcol_48`, + `bfcol_43` AS `bfcol_49`, + `bfcol_44` AS `bfcol_50`, + `bfcol_46` AS `bfcol_51` + FROM `bfcte_11` +), `bfcte_13` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_60`, + `N_NAME` AS `bfcol_61` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + COALESCE(COALESCE(`N_NAME` IN ('FRANCE', 'GERMANY'), FALSE), FALSE) +), `bfcte_14` AS ( + SELECT + * + FROM `bfcte_12` + INNER JOIN `bfcte_13` + ON COALESCE(`bfcol_51`, 0) = COALESCE(`bfcol_60`, 0) + AND COALESCE(`bfcol_51`, 1) = COALESCE(`bfcol_60`, 1) +), `bfcte_15` AS ( + SELECT + `bfcol_47`, + `bfcol_48`, + `bfcol_49`, + `bfcol_50`, + `bfcol_51`, + `bfcol_60`, + `bfcol_61`, + `bfcol_47` AS `bfcol_67`, + `bfcol_48` AS `bfcol_68`, + `bfcol_49` AS `bfcol_69`, + `bfcol_50` AS `bfcol_70`, + `bfcol_61` AS `bfcol_71`, + `bfcol_47` <> `bfcol_61` AS `bfcol_72`, + `bfcol_47` AS `bfcol_84`, + `bfcol_50` AS `bfcol_85`, + `bfcol_61` AS `bfcol_86`, + `bfcol_48` * ( + 1.0 - `bfcol_49` + ) AS `bfcol_87`, + `bfcol_47` AS `bfcol_92`, + `bfcol_61` AS `bfcol_93`, + `bfcol_48` * ( + 1.0 - `bfcol_49` + ) AS `bfcol_94`, + EXTRACT(YEAR FROM `bfcol_50`) AS `bfcol_95` + FROM `bfcte_14` + WHERE + `bfcol_47` <> `bfcol_61` +), `bfcte_16` AS ( + SELECT + `bfcol_93`, + `bfcol_92`, + `bfcol_95`, + COALESCE(SUM(`bfcol_94`), 0) AS `bfcol_100` + FROM `bfcte_15` + WHERE + NOT `bfcol_93` IS NULL AND NOT `bfcol_92` IS NULL AND NOT `bfcol_95` IS NULL + GROUP BY + `bfcol_93`, + `bfcol_92`, + `bfcol_95` +) +SELECT + `bfcol_93` AS `SUPP_NATION`, + `bfcol_92` AS `CUST_NATION`, + `bfcol_95` AS `L_YEAR`, + `bfcol_100` AS `REVENUE` +FROM `bfcte_16` +ORDER BY + `bfcol_93` ASC NULLS LAST, + `bfcol_92` ASC NULLS LAST, + `bfcol_95` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql new file mode 100644 index 00000000000..7d6ec86f3ac --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql @@ -0,0 +1,221 @@ +WITH `bfcte_0` AS ( + SELECT + `P_PARTKEY` AS `bfcol_0`, + `P_TYPE` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_6` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_2`, + `L_PARTKEY` AS `bfcol_3`, + `L_SUPPKEY` AS `bfcol_4`, + `L_EXTENDEDPRICE` AS `bfcol_5`, + `L_DISCOUNT` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_1` AS `bfcol_7`, + `bfcol_2` AS `bfcol_8`, + `bfcol_4` AS `bfcol_9`, + `bfcol_5` AS `bfcol_10`, + `bfcol_6` AS `bfcol_11` + FROM `bfcte_2` +), `bfcte_4` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_12`, + `S_NATIONKEY` AS `bfcol_13` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_3` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_12`, 0) + AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_12`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_7` AS `bfcol_14`, + `bfcol_8` AS `bfcol_15`, + `bfcol_10` AS `bfcol_16`, + `bfcol_11` AS `bfcol_17`, + `bfcol_13` AS `bfcol_18` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_19`, + `O_CUSTKEY` AS `bfcol_20`, + `O_ORDERDATE` AS `bfcol_21` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_15`, 0) = COALESCE(`bfcol_19`, 0) + AND COALESCE(`bfcol_15`, 1) = COALESCE(`bfcol_19`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_14` AS `bfcol_22`, + `bfcol_16` AS `bfcol_23`, + `bfcol_17` AS `bfcol_24`, + `bfcol_18` AS `bfcol_25`, + `bfcol_20` AS `bfcol_26`, + `bfcol_21` AS `bfcol_27` + FROM `bfcte_8` +), `bfcte_10` AS ( + SELECT + `C_CUSTKEY` AS `bfcol_28`, + `C_NATIONKEY` AS `bfcol_29` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + INNER JOIN `bfcte_10` + ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_28`, 0) + AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_28`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_22` AS `bfcol_30`, + `bfcol_23` AS `bfcol_31`, + `bfcol_24` AS `bfcol_32`, + `bfcol_25` AS `bfcol_33`, + `bfcol_27` AS `bfcol_34`, + `bfcol_29` AS `bfcol_35` + FROM `bfcte_11` +), `bfcte_13` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_36`, + `N_REGIONKEY` AS `bfcol_37` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_14` AS ( + SELECT + * + FROM `bfcte_12` + INNER JOIN `bfcte_13` + ON COALESCE(`bfcol_35`, 0) = COALESCE(`bfcol_36`, 0) + AND COALESCE(`bfcol_35`, 1) = COALESCE(`bfcol_36`, 1) +), `bfcte_15` AS ( + SELECT + `bfcol_30` AS `bfcol_38`, + `bfcol_31` AS `bfcol_39`, + `bfcol_32` AS `bfcol_40`, + `bfcol_33` AS `bfcol_41`, + `bfcol_34` AS `bfcol_42`, + `bfcol_37` AS `bfcol_43` + FROM `bfcte_14` +), `bfcte_16` AS ( + SELECT + `R_REGIONKEY` AS `bfcol_44`, + `R_NAME` AS `bfcol_45` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_17` AS ( + SELECT + * + FROM `bfcte_15` + INNER JOIN `bfcte_16` + ON COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_44`, 0) + AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_44`, 1) +), `bfcte_18` AS ( + SELECT + `bfcol_38` AS `bfcol_64`, + `bfcol_39` AS `bfcol_65`, + `bfcol_40` AS `bfcol_66`, + `bfcol_41` AS `bfcol_67`, + `bfcol_42` AS `bfcol_68` + FROM `bfcte_17` + WHERE + `bfcol_45` = 'AMERICA' +), `bfcte_19` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_69`, + `N_NAME` AS `bfcol_70` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_20` AS ( + SELECT + * + FROM `bfcte_18` + INNER JOIN `bfcte_19` + ON COALESCE(`bfcol_67`, 0) = COALESCE(`bfcol_69`, 0) + AND COALESCE(`bfcol_67`, 1) = COALESCE(`bfcol_69`, 1) +), `bfcte_21` AS ( + SELECT + `bfcol_64`, + `bfcol_65`, + `bfcol_66`, + `bfcol_67`, + `bfcol_68`, + `bfcol_69`, + `bfcol_70`, + `bfcol_64` AS `bfcol_76`, + `bfcol_65` AS `bfcol_77`, + `bfcol_66` AS `bfcol_78`, + `bfcol_68` AS `bfcol_79`, + `bfcol_70` AS `bfcol_80`, + ( + `bfcol_68` >= CAST('1995-01-01' AS DATE) + ) + AND ( + `bfcol_68` <= CAST('1996-12-31' AS DATE) + ) AS `bfcol_81`, + `bfcol_65` AS `bfcol_93`, + `bfcol_66` AS `bfcol_94`, + `bfcol_68` AS `bfcol_95`, + `bfcol_70` AS `bfcol_96`, + `bfcol_64` = 'ECONOMY ANODIZED STEEL' AS `bfcol_97`, + `bfcol_65` AS `bfcol_107`, + `bfcol_66` AS `bfcol_108`, + `bfcol_70` AS `bfcol_109`, + EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_110`, + `bfcol_70` AS `bfcol_115`, + EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_116`, + `bfcol_65` * ( + 1.0 - `bfcol_66` + ) AS `bfcol_117`, + EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_121`, + `bfcol_65` * ( + 1.0 - `bfcol_66` + ) AS `bfcol_122`, + IF(`bfcol_70` = 'BRAZIL', `bfcol_65` * ( + 1.0 - `bfcol_66` + ), 0) AS `bfcol_123`, + EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_127`, + IF(`bfcol_70` = 'BRAZIL', `bfcol_65` * ( + 1.0 - `bfcol_66` + ), 0) AS `bfcol_128`, + `bfcol_65` * ( + 1.0 - `bfcol_66` + ) AS `bfcol_129` + FROM `bfcte_20` + WHERE + ( + `bfcol_68` >= CAST('1995-01-01' AS DATE) + ) + AND ( + `bfcol_68` <= CAST('1996-12-31' AS DATE) + ) + AND `bfcol_64` = 'ECONOMY ANODIZED STEEL' +), `bfcte_22` AS ( + SELECT + `bfcol_127`, + COALESCE(SUM(`bfcol_128`), 0) AS `bfcol_133`, + COALESCE(SUM(`bfcol_129`), 0) AS `bfcol_134` + FROM `bfcte_21` + WHERE + NOT `bfcol_127` IS NULL + GROUP BY + `bfcol_127` +) +SELECT + `bfcol_127` AS `O_YEAR`, + ROUND(IEEE_DIVIDE(`bfcol_133`, `bfcol_134`), 2) AS `MKT_SHARE` +FROM `bfcte_22` +ORDER BY + `bfcol_127` ASC NULLS LAST, + `bfcol_127` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql new file mode 100644 index 00000000000..bbbd0c3c70f --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql @@ -0,0 +1,170 @@ +WITH `bfcte_0` AS ( + SELECT + `P_PARTKEY` AS `bfcol_0`, + `P_NAME` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_2`, + `L_PARTKEY` AS `bfcol_3`, + `L_SUPPKEY` AS `bfcol_4`, + `L_QUANTITY` AS `bfcol_5`, + `L_EXTENDEDPRICE` AS `bfcol_6`, + `L_DISCOUNT` AS `bfcol_7` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + * + FROM `bfcte_0` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) + AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) +), `bfcte_3` AS ( + SELECT + `bfcol_1` AS `bfcol_8`, + `bfcol_2` AS `bfcol_9`, + `bfcol_3` AS `bfcol_10`, + `bfcol_4` AS `bfcol_11`, + `bfcol_5` AS `bfcol_12`, + `bfcol_6` AS `bfcol_13`, + `bfcol_7` AS `bfcol_14` + FROM `bfcte_2` +), `bfcte_4` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_15`, + `PS_SUPPKEY` AS `bfcol_16`, + `PS_SUPPLYCOST` AS `bfcol_17` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + * + FROM `bfcte_3` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_11`, 0) = COALESCE(`bfcol_16`, 0) + AND COALESCE(`bfcol_11`, 1) = COALESCE(`bfcol_16`, 1) + AND COALESCE(`bfcol_10`, 0) = COALESCE(`bfcol_15`, 0) + AND COALESCE(`bfcol_10`, 1) = COALESCE(`bfcol_15`, 1) +), `bfcte_6` AS ( + SELECT + `bfcol_8` AS `bfcol_18`, + `bfcol_9` AS `bfcol_19`, + `bfcol_11` AS `bfcol_20`, + `bfcol_12` AS `bfcol_21`, + `bfcol_13` AS `bfcol_22`, + `bfcol_14` AS `bfcol_23`, + `bfcol_17` AS `bfcol_24` + FROM `bfcte_5` +), `bfcte_7` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_25`, + `S_NATIONKEY` AS `bfcol_26` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_8` AS ( + SELECT + * + FROM `bfcte_6` + INNER JOIN `bfcte_7` + ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_25`, 0) + AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_25`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_18` AS `bfcol_27`, + `bfcol_19` AS `bfcol_28`, + `bfcol_21` AS `bfcol_29`, + `bfcol_22` AS `bfcol_30`, + `bfcol_23` AS `bfcol_31`, + `bfcol_24` AS `bfcol_32`, + `bfcol_26` AS `bfcol_33` + FROM `bfcte_8` +), `bfcte_10` AS ( + SELECT + `O_ORDERKEY` AS `bfcol_34`, + `O_ORDERDATE` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_11` AS ( + SELECT + * + FROM `bfcte_9` + INNER JOIN `bfcte_10` + ON COALESCE(`bfcol_28`, 0) = COALESCE(`bfcol_34`, 0) + AND COALESCE(`bfcol_28`, 1) = COALESCE(`bfcol_34`, 1) +), `bfcte_12` AS ( + SELECT + `bfcol_27` AS `bfcol_36`, + `bfcol_29` AS `bfcol_37`, + `bfcol_30` AS `bfcol_38`, + `bfcol_31` AS `bfcol_39`, + `bfcol_32` AS `bfcol_40`, + `bfcol_33` AS `bfcol_41`, + `bfcol_35` AS `bfcol_42` + FROM `bfcte_11` +), `bfcte_13` AS ( + SELECT + `N_NATIONKEY` AS `bfcol_43`, + `N_NAME` AS `bfcol_44` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_14` AS ( + SELECT + * + FROM `bfcte_12` + INNER JOIN `bfcte_13` + ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_43`, 0) + AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_43`, 1) +), `bfcte_15` AS ( + SELECT + `bfcol_36`, + `bfcol_37`, + `bfcol_38`, + `bfcol_39`, + `bfcol_40`, + `bfcol_41`, + `bfcol_42`, + `bfcol_43`, + `bfcol_44`, + `bfcol_37` AS `bfcol_52`, + `bfcol_38` AS `bfcol_53`, + `bfcol_39` AS `bfcol_54`, + `bfcol_40` AS `bfcol_55`, + `bfcol_42` AS `bfcol_56`, + `bfcol_44` AS `bfcol_57`, + REGEXP_CONTAINS(`bfcol_36`, 'green') AS `bfcol_58`, + `bfcol_37` AS `bfcol_72`, + `bfcol_38` AS `bfcol_73`, + `bfcol_39` AS `bfcol_74`, + `bfcol_40` AS `bfcol_75`, + `bfcol_44` AS `bfcol_76`, + EXTRACT(YEAR FROM `bfcol_42`) AS `bfcol_77`, + `bfcol_44` AS `bfcol_84`, + EXTRACT(YEAR FROM `bfcol_42`) AS `bfcol_85`, + ( + `bfcol_38` * ( + 1 - `bfcol_39` + ) + ) - ( + `bfcol_40` * `bfcol_37` + ) AS `bfcol_86` + FROM `bfcte_14` + WHERE + REGEXP_CONTAINS(`bfcol_36`, 'green') +), `bfcte_16` AS ( + SELECT + `bfcol_84`, + `bfcol_85`, + COALESCE(SUM(`bfcol_86`), 0) AS `bfcol_90` + FROM `bfcte_15` + WHERE + NOT `bfcol_84` IS NULL AND NOT `bfcol_85` IS NULL + GROUP BY + `bfcol_84`, + `bfcol_85` +) +SELECT + `bfcol_84` AS `NATION`, + `bfcol_85` AS `O_YEAR`, + ROUND(`bfcol_90`, 2) AS `SUM_PROFIT` +FROM `bfcte_16` +ORDER BY + `bfcol_84` ASC NULLS LAST, + `bfcol_85` DESC, + `bfcol_84` ASC NULLS LAST, + `bfcol_85` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/test_tpch.py b/tests/unit/core/compile/sqlglot/tpch/test_tpch.py new file mode 100644 index 00000000000..5e511c710ec --- /dev/null +++ b/tests/unit/core/compile/sqlglot/tpch/test_tpch.py @@ -0,0 +1,48 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import re + +import pytest + +pytest.importorskip("pytest_snapshot") + + +@pytest.mark.parametrize("query_num", range(1, 23)) +def test_tpch_query(tpch_session, query_num, snapshot): + project_id = "bigframes-dev" + dataset_id = "tpch" + + query_file_path = f"third_party/bigframes_vendored/tpch/queries/q{query_num}.py" + + with open(query_file_path, "r") as f: + query_code = f.read() + + # We want to capture the result dataframe instead of running next(result.to_pandas_batches(...)) + modified_code = re.sub( + r"next\((\w+)\.to_pandas_batches\((.*?)\)\)", + r"return \1", + query_code, + ) + + exec_globals = {} # type: ignore[var-annotated] + exec(modified_code, exec_globals) + q_func = exec_globals["q"] + + result = q_func(project_id, dataset_id, tpch_session) + + # result should be a DataFrame + sql = result.sql + + snapshot.assert_match(sql, "out.sql") diff --git a/third_party/bigframes_vendored/tpch/queries/q19.py b/third_party/bigframes_vendored/tpch/queries/q19.py index 1371af53fc0..a217db3dc32 100644 --- a/third_party/bigframes_vendored/tpch/queries/q19.py +++ b/third_party/bigframes_vendored/tpch/queries/q19.py @@ -53,5 +53,11 @@ def q(project_id: str, dataset_id: str, session: bigframes.Session): ) ] - revenue = (filtered["L_EXTENDEDPRICE"] * (1 - filtered["L_DISCOUNT"])).sum() - _ = round(revenue, 2) + result_df = ( + (filtered["L_EXTENDEDPRICE"] * (1 - filtered["L_DISCOUNT"])) + .agg(["sum"]) + .rename("REVENUE") + .to_frame() + ) + + next(result_df.to_pandas_batches(max_results=1500)) From c3b51e29e3a7b3897dca56c75c1cfbd7c77fdcb2 Mon Sep 17 00:00:00 2001 From: Chelsea Lin Date: Tue, 10 Mar 2026 20:57:15 +0000 Subject: [PATCH 2/2] update sql after merging with cte extractions --- .../core/compile/sqlglot/tpch/conftest.py | 72 ++- .../test_tpch/test_tpch_query/10/out.sql | 174 ++++---- .../test_tpch/test_tpch_query/11/out.sql | 224 ++++------ .../test_tpch/test_tpch_query/12/out.sql | 76 ++-- .../test_tpch/test_tpch_query/13/out.sql | 34 +- .../test_tpch/test_tpch_query/14/out.sql | 277 ++++++------ .../test_tpch/test_tpch_query/15/out.sql | 205 ++++----- .../test_tpch/test_tpch_query/16/out.sql | 123 +++--- .../test_tpch/test_tpch_query/17/out.sql | 168 +++---- .../test_tpch/test_tpch_query/18/out.sql | 158 +++---- .../test_tpch/test_tpch_query/19/out.sql | 160 ++++--- .../test_tpch/test_tpch_query/2/out.sql | 411 ++++++++---------- .../test_tpch/test_tpch_query/20/out.sql | 198 ++++----- .../test_tpch/test_tpch_query/21/out.sql | 243 +++++------ .../test_tpch/test_tpch_query/22/out.sql | 165 ++++--- .../test_tpch/test_tpch_query/3/out.sql | 76 ++-- .../test_tpch/test_tpch_query/4/out.sql | 68 ++- .../test_tpch/test_tpch_query/5/out.sql | 166 ++++--- .../test_tpch/test_tpch_query/6/out.sql | 48 +- .../test_tpch/test_tpch_query/7/out.sql | 232 +++++----- .../test_tpch/test_tpch_query/8/out.sql | 282 ++++++------ .../test_tpch/test_tpch_query/9/out.sql | 204 ++++----- .../core/compile/sqlglot/tpch/test_tpch.py | 10 +- 23 files changed, 1685 insertions(+), 2089 deletions(-) diff --git a/tests/unit/core/compile/sqlglot/tpch/conftest.py b/tests/unit/core/compile/sqlglot/tpch/conftest.py index c21ba5d8adb..c42f9a8ddf6 100644 --- a/tests/unit/core/compile/sqlglot/tpch/conftest.py +++ b/tests/unit/core/compile/sqlglot/tpch/conftest.py @@ -15,12 +15,13 @@ import datetime import unittest.mock as mock -import freezegun # type: ignore from google.cloud import bigquery import pytest import bigframes.testing.mocks as mocks +freezegun = pytest.importorskip("freezegun") + TPCH_SCHEMAS = { "LINEITEM": [ bigquery.SchemaField("L_ORDERKEY", "INTEGER"), @@ -102,12 +103,6 @@ } -@pytest.fixture(autouse=True, scope="session") -def freeze_time(): - with freezegun.freeze_time("2026-03-10 18:00:00"): - yield - - @pytest.fixture(scope="session") def tpch_session(): from bigframes.testing import compiler_session @@ -115,38 +110,39 @@ def tpch_session(): anonymous_dataset = bigquery.DatasetReference.from_string("bigframes-dev.tpch") location = "us-central1" - session = mocks.create_bigquery_session( - anonymous_dataset=anonymous_dataset, - location=location, - ) + with freezegun.freeze_time("2026-03-10 18:00:00"): + session = mocks.create_bigquery_session( + anonymous_dataset=anonymous_dataset, + location=location, + ) - def get_table_mock(table_ref): - if isinstance(table_ref, str): - table_ref = bigquery.TableReference.from_string(table_ref) + def get_table_mock(table_ref): + if isinstance(table_ref, str): + table_ref = bigquery.TableReference.from_string(table_ref) - table_id = table_ref.table_id - schema = TPCH_SCHEMAS.get(table_id, []) + table_id = table_ref.table_id + schema = TPCH_SCHEMAS.get(table_id, []) - table = mock.create_autospec(bigquery.Table, instance=True) - table._properties = {} - # mocks.create_bigquery_session's CURRENT_TIMESTAMP() returns offset-naive datetime.now() - # So we should also use offset-naive here to avoid comparison errors. - now = datetime.datetime.now() - type(table).schema = mock.PropertyMock(return_value=schema) - type(table).project = table_ref.project - type(table).dataset_id = table_ref.dataset_id - type(table).table_id = table_id - type(table).num_rows = mock.PropertyMock(return_value=1000000) - type(table).num_bytes = mock.PropertyMock(return_value=1000000) - type(table).location = mock.PropertyMock(return_value=location) - type(table).table_type = mock.PropertyMock(return_value="TABLE") - type(table).created = mock.PropertyMock(return_value=now) - type(table).modified = mock.PropertyMock(return_value=now) - type(table).range_partitioning = mock.PropertyMock(return_value=None) - type(table).time_partitioning = mock.PropertyMock(return_value=None) - type(table).clustering_fields = mock.PropertyMock(return_value=None) - return table + table = mock.create_autospec(bigquery.Table, instance=True) + table._properties = {} + # mocks.create_bigquery_session's CURRENT_TIMESTAMP() returns offset-naive datetime.now() + # So we should also use offset-naive here to avoid comparison errors. + now = datetime.datetime.now() + type(table).schema = mock.PropertyMock(return_value=schema) + type(table).project = table_ref.project + type(table).dataset_id = table_ref.dataset_id + type(table).table_id = table_id + type(table).num_rows = mock.PropertyMock(return_value=1000000) + type(table).num_bytes = mock.PropertyMock(return_value=1000000) + type(table).location = mock.PropertyMock(return_value=location) + type(table).table_type = mock.PropertyMock(return_value="TABLE") + type(table).created = mock.PropertyMock(return_value=now) + type(table).modified = mock.PropertyMock(return_value=now) + type(table).range_partitioning = mock.PropertyMock(return_value=None) + type(table).time_partitioning = mock.PropertyMock(return_value=None) + type(table).clustering_fields = mock.PropertyMock(return_value=None) + return table - session.bqclient.get_table.side_effect = get_table_mock - session._executor = compiler_session.SQLCompilerExecutor() - return session + session.bqclient.get_table.side_effect = get_table_mock + session._executor = compiler_session.SQLCompilerExecutor() + return session diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql index 9fbce13bde0..8362d3afca1 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/10/out.sql @@ -1,82 +1,65 @@ WITH `bfcte_0` AS ( SELECT - `C_CUSTKEY` AS `bfcol_0`, - `C_NAME` AS `bfcol_1`, - `C_ADDRESS` AS `bfcol_2`, - `C_NATIONKEY` AS `bfcol_3`, - `C_PHONE` AS `bfcol_4`, - `C_ACCTBAL` AS `bfcol_5`, - `C_COMMENT` AS `bfcol_6` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `N_NATIONKEY` AS `bfcol_0`, + `N_NAME` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `O_ORDERKEY` AS `bfcol_7`, - `O_CUSTKEY` AS `bfcol_8`, - `O_ORDERDATE` AS `bfcol_9` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_ORDERKEY` AS `bfcol_2`, + `L_EXTENDEDPRICE` AS `bfcol_3`, + `L_DISCOUNT` AS `bfcol_4`, + `L_RETURNFLAG` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_8`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_8`, 1) + `O_ORDERKEY` AS `bfcol_6`, + `O_CUSTKEY` AS `bfcol_7`, + `O_ORDERDATE` AS `bfcol_8` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_0` AS `bfcol_10`, - `bfcol_1` AS `bfcol_11`, - `bfcol_2` AS `bfcol_12`, - `bfcol_3` AS `bfcol_13`, - `bfcol_4` AS `bfcol_14`, - `bfcol_5` AS `bfcol_15`, - `bfcol_6` AS `bfcol_16`, - `bfcol_7` AS `bfcol_17`, - `bfcol_9` AS `bfcol_18` - FROM `bfcte_2` + `C_CUSTKEY` AS `bfcol_9`, + `C_NAME` AS `bfcol_10`, + `C_ADDRESS` AS `bfcol_11`, + `C_NATIONKEY` AS `bfcol_12`, + `C_PHONE` AS `bfcol_13`, + `C_ACCTBAL` AS `bfcol_14`, + `C_COMMENT` AS `bfcol_15` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_4` AS ( SELECT - `L_ORDERKEY` AS `bfcol_19`, - `L_EXTENDEDPRICE` AS `bfcol_20`, - `L_DISCOUNT` AS `bfcol_21`, - `L_RETURNFLAG` AS `bfcol_22` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `bfcol_9` AS `bfcol_16`, + `bfcol_10` AS `bfcol_17`, + `bfcol_11` AS `bfcol_18`, + `bfcol_12` AS `bfcol_19`, + `bfcol_13` AS `bfcol_20`, + `bfcol_14` AS `bfcol_21`, + `bfcol_15` AS `bfcol_22`, + `bfcol_6` AS `bfcol_23`, + `bfcol_8` AS `bfcol_24` + FROM `bfcte_3` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_7`, 0) + AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_7`, 1) ), `bfcte_5` AS ( SELECT - * - FROM `bfcte_3` - INNER JOIN `bfcte_4` - ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_19`, 0) - AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_19`, 1) + `bfcol_16` AS `bfcol_25`, + `bfcol_17` AS `bfcol_26`, + `bfcol_18` AS `bfcol_27`, + `bfcol_19` AS `bfcol_28`, + `bfcol_20` AS `bfcol_29`, + `bfcol_21` AS `bfcol_30`, + `bfcol_22` AS `bfcol_31`, + `bfcol_24` AS `bfcol_32`, + `bfcol_3` AS `bfcol_33`, + `bfcol_4` AS `bfcol_34`, + `bfcol_5` AS `bfcol_35` + FROM `bfcte_4` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_23`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_23`, 1) = COALESCE(`bfcol_2`, 1) ), `bfcte_6` AS ( SELECT - `bfcol_10` AS `bfcol_23`, - `bfcol_11` AS `bfcol_24`, - `bfcol_12` AS `bfcol_25`, - `bfcol_13` AS `bfcol_26`, - `bfcol_14` AS `bfcol_27`, - `bfcol_15` AS `bfcol_28`, - `bfcol_16` AS `bfcol_29`, - `bfcol_18` AS `bfcol_30`, - `bfcol_20` AS `bfcol_31`, - `bfcol_21` AS `bfcol_32`, - `bfcol_22` AS `bfcol_33` - FROM `bfcte_5` -), `bfcte_7` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_34`, - `N_NAME` AS `bfcol_35` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_8` AS ( - SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_34`, 0) - AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_34`, 1) -), `bfcte_9` AS ( - SELECT - `bfcol_23`, - `bfcol_24`, `bfcol_25`, `bfcol_26`, `bfcol_27`, @@ -88,52 +71,57 @@ WITH `bfcte_0` AS ( `bfcol_33`, `bfcol_34`, `bfcol_35`, - `bfcol_23` AS `bfcol_47`, - `bfcol_24` AS `bfcol_48`, - `bfcol_25` AS `bfcol_49`, - `bfcol_27` AS `bfcol_50`, - `bfcol_28` AS `bfcol_51`, - `bfcol_29` AS `bfcol_52`, - `bfcol_31` AS `bfcol_53`, - `bfcol_32` AS `bfcol_54`, - `bfcol_35` AS `bfcol_55`, + `bfcol_0`, + `bfcol_1`, + `bfcol_25` AS `bfcol_47`, + `bfcol_26` AS `bfcol_48`, + `bfcol_27` AS `bfcol_49`, + `bfcol_29` AS `bfcol_50`, + `bfcol_30` AS `bfcol_51`, + `bfcol_31` AS `bfcol_52`, + `bfcol_33` AS `bfcol_53`, + `bfcol_34` AS `bfcol_54`, + `bfcol_1` AS `bfcol_55`, ( ( - `bfcol_30` >= CAST('1993-10-01' AS DATE) + `bfcol_32` >= CAST('1993-10-01' AS DATE) ) AND ( - `bfcol_30` < CAST('1994-01-01' AS DATE) + `bfcol_32` < CAST('1994-01-01' AS DATE) ) ) AND ( - `bfcol_33` = 'R' + `bfcol_35` = 'R' ) AS `bfcol_56`, - `bfcol_23` AS `bfcol_76`, - `bfcol_24` AS `bfcol_77`, - `bfcol_25` AS `bfcol_78`, - `bfcol_27` AS `bfcol_79`, - `bfcol_28` AS `bfcol_80`, - `bfcol_29` AS `bfcol_81`, - `bfcol_35` AS `bfcol_82`, + `bfcol_25` AS `bfcol_76`, + `bfcol_26` AS `bfcol_77`, + `bfcol_27` AS `bfcol_78`, + `bfcol_29` AS `bfcol_79`, + `bfcol_30` AS `bfcol_80`, + `bfcol_31` AS `bfcol_81`, + `bfcol_1` AS `bfcol_82`, ROUND(( - `bfcol_31` * ( - 1 - `bfcol_32` + `bfcol_33` * ( + 1 - `bfcol_34` ) ), 2) AS `bfcol_83` - FROM `bfcte_8` + FROM `bfcte_5` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_28`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_28`, 1) = COALESCE(`bfcol_0`, 1) WHERE ( ( - `bfcol_30` >= CAST('1993-10-01' AS DATE) + `bfcol_32` >= CAST('1993-10-01' AS DATE) ) AND ( - `bfcol_30` < CAST('1994-01-01' AS DATE) + `bfcol_32` < CAST('1994-01-01' AS DATE) ) ) AND ( - `bfcol_33` = 'R' + `bfcol_35` = 'R' ) -), `bfcte_10` AS ( +), `bfcte_7` AS ( SELECT `bfcol_76`, `bfcol_77`, @@ -143,7 +131,7 @@ WITH `bfcte_0` AS ( `bfcol_78`, `bfcol_81`, COALESCE(SUM(`bfcol_83`), 0) AS `bfcol_92` - FROM `bfcte_9` + FROM `bfcte_6` WHERE NOT `bfcol_76` IS NULL AND NOT `bfcol_77` IS NULL @@ -170,7 +158,7 @@ SELECT `bfcol_78` AS `C_ADDRESS`, `bfcol_79` AS `C_PHONE`, `bfcol_81` AS `C_COMMENT` -FROM `bfcte_10` +FROM `bfcte_7` ORDER BY `bfcol_92` DESC, `bfcol_76` ASC NULLS LAST, diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql index 80bce4fc6d8..2b296be7448 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/11/out.sql @@ -1,164 +1,122 @@ -WITH `bfcte_2` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_6` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - `N_NAME` = 'GERMANY' -), `bfcte_3` AS ( - SELECT - `S_SUPPKEY` AS `bfcol_7`, - `S_NATIONKEY` AS `bfcol_8` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_5` AS ( +WITH `bfcte_0` AS ( SELECT * - FROM `bfcte_2` - INNER JOIN `bfcte_3` - ON COALESCE(`bfcol_6`, 0) = COALESCE(`bfcol_8`, 0) - AND COALESCE(`bfcol_6`, 1) = COALESCE(`bfcol_8`, 1) -), `bfcte_8` AS ( + FROM UNNEST(ARRAY>[STRUCT(0.0, 0, 0)]) +), `bfcte_1` AS ( SELECT - `bfcol_7` AS `bfcol_9` - FROM `bfcte_5` -), `bfcte_9` AS ( + `PS_SUPPKEY` AS `bfcol_0`, + `PS_AVAILQTY` AS `bfcol_1`, + `PS_SUPPLYCOST` AS `bfcol_2` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( SELECT `PS_PARTKEY` AS `bfcol_10`, `PS_SUPPKEY` AS `bfcol_11`, `PS_AVAILQTY` AS `bfcol_12`, `PS_SUPPLYCOST` AS `bfcol_13` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_11` AS ( - SELECT - * - FROM `bfcte_8` - INNER JOIN `bfcte_9` - ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_11`, 0) - AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_11`, 1) -), `bfcte_13` AS ( - SELECT - `bfcol_9`, - `bfcol_10`, - `bfcol_11`, - `bfcol_12`, - `bfcol_13`, - `bfcol_10` AS `bfcol_17`, - `bfcol_13` * `bfcol_12` AS `bfcol_18` - FROM `bfcte_11` -), `bfcte_15` AS ( - SELECT - `bfcol_17`, - COALESCE(SUM(`bfcol_18`), 0) AS `bfcol_21` - FROM `bfcte_13` - WHERE - NOT `bfcol_17` IS NULL - GROUP BY - `bfcol_17` -), `bfcte_21` AS ( - SELECT - `bfcol_17` AS `bfcol_24`, - ROUND(`bfcol_21`, 2) AS `bfcol_25` - FROM `bfcte_15` -), `bfcte_16` AS ( + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( SELECT - * - FROM UNNEST(ARRAY>[STRUCT(0.0, 0, 0)]) -), `bfcte_0` AS ( + `S_SUPPKEY` AS `bfcol_3`, + `S_NATIONKEY` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( SELECT - `N_NATIONKEY` AS `bfcol_35` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `N_NATIONKEY` AS `bfcol_18` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE `N_NAME` = 'GERMANY' -), `bfcte_1` AS ( - SELECT - `S_SUPPKEY` AS `bfcol_36`, - `S_NATIONKEY` AS `bfcol_37` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_4` AS ( +), `bfcte_5` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_35`, 0) = COALESCE(`bfcol_37`, 0) - AND COALESCE(`bfcol_35`, 1) = COALESCE(`bfcol_37`, 1) + `bfcol_3` AS `bfcol_19` + FROM `bfcte_4` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_18`, 0) = COALESCE(`bfcol_4`, 0) + AND COALESCE(`bfcol_18`, 1) = COALESCE(`bfcol_4`, 1) ), `bfcte_6` AS ( SELECT - `bfcol_36` AS `bfcol_38` - FROM `bfcte_4` + `bfcol_19`, + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_1` AS `bfcol_25`, + `bfcol_2` AS `bfcol_26`, + `bfcol_2` AS `bfcol_33`, + `bfcol_1` AS `bfcol_34`, + `bfcol_2` * `bfcol_1` AS `bfcol_40` + FROM `bfcte_5` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_19`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_19`, 1) = COALESCE(`bfcol_0`, 1) ), `bfcte_7` AS ( SELECT - `PS_SUPPKEY` AS `bfcol_39`, - `PS_AVAILQTY` AS `bfcol_40`, - `PS_SUPPLYCOST` AS `bfcol_41` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_10` AS ( + `bfcol_19`, + `bfcol_10`, + `bfcol_11`, + `bfcol_12`, + `bfcol_13`, + `bfcol_10` AS `bfcol_27`, + `bfcol_13` * `bfcol_12` AS `bfcol_28` + FROM `bfcte_5` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_19`, 0) = COALESCE(`bfcol_11`, 0) + AND COALESCE(`bfcol_19`, 1) = COALESCE(`bfcol_11`, 1) +), `bfcte_8` AS ( SELECT - * + COALESCE(SUM(`bfcol_40`), 0) AS `bfcol_44` FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_38`, 0) = COALESCE(`bfcol_39`, 0) - AND COALESCE(`bfcol_38`, 1) = COALESCE(`bfcol_39`, 1) -), `bfcte_12` AS ( - SELECT - `bfcol_38`, - `bfcol_39`, - `bfcol_40`, - `bfcol_41`, - `bfcol_40` AS `bfcol_44`, - `bfcol_41` AS `bfcol_45`, - `bfcol_41` AS `bfcol_48`, - `bfcol_40` AS `bfcol_49`, - `bfcol_41` * `bfcol_40` AS `bfcol_52` - FROM `bfcte_10` -), `bfcte_14` AS ( +), `bfcte_9` AS ( SELECT - COALESCE(SUM(`bfcol_52`), 0) AS `bfcol_54` - FROM `bfcte_12` -), `bfcte_17` AS ( + `bfcol_27`, + COALESCE(SUM(`bfcol_28`), 0) AS `bfcol_35` + FROM `bfcte_7` + WHERE + NOT `bfcol_27` IS NULL + GROUP BY + `bfcol_27` +), `bfcte_10` AS ( SELECT - `bfcol_54`, - 0 AS `bfcol_55` - FROM `bfcte_14` -), `bfcte_18` AS ( + `bfcol_44`, + 0 AS `bfcol_45` + FROM `bfcte_8` +), `bfcte_11` AS ( SELECT - * - FROM `bfcte_16` - CROSS JOIN `bfcte_17` -), `bfcte_19` AS ( + `bfcol_27` AS `bfcol_41`, + ROUND(`bfcol_35`, 2) AS `bfcol_42` + FROM `bfcte_9` +), `bfcte_12` AS ( SELECT - `bfcol_26`, - `bfcol_27`, - `bfcol_28`, - `bfcol_54`, - `bfcol_55`, - CASE WHEN `bfcol_28` = 0 THEN `bfcol_54` END AS `bfcol_56`, - IF(`bfcol_55` = 0, CASE WHEN `bfcol_28` = 0 THEN `bfcol_54` END, NULL) AS `bfcol_61` - FROM `bfcte_18` -), `bfcte_20` AS ( + `bfcol_7`, + `bfcol_8`, + `bfcol_9`, + `bfcol_44`, + `bfcol_45`, + CASE WHEN `bfcol_9` = 0 THEN `bfcol_44` END AS `bfcol_46`, + IF(`bfcol_45` = 0, CASE WHEN `bfcol_9` = 0 THEN `bfcol_44` END, NULL) AS `bfcol_51` + FROM `bfcte_0` + CROSS JOIN `bfcte_10` +), `bfcte_13` AS ( SELECT - `bfcol_26`, - `bfcol_27`, - ANY_VALUE(`bfcol_61`) AS `bfcol_65` - FROM `bfcte_19` + `bfcol_7`, + `bfcol_8`, + ANY_VALUE(`bfcol_51`) AS `bfcol_55` + FROM `bfcte_12` WHERE - NOT `bfcol_26` IS NULL AND NOT `bfcol_27` IS NULL + NOT `bfcol_7` IS NULL AND NOT `bfcol_8` IS NULL GROUP BY - `bfcol_26`, - `bfcol_27` -), `bfcte_22` AS ( - SELECT - `bfcol_65` * 0.0001 AS `bfcol_68` - FROM `bfcte_20` -), `bfcte_23` AS ( + `bfcol_7`, + `bfcol_8` +), `bfcte_14` AS ( SELECT - * - FROM `bfcte_21` - CROSS JOIN `bfcte_22` + `bfcol_55` * 0.0001 AS `bfcol_58` + FROM `bfcte_13` ) SELECT - `bfcol_24` AS `PS_PARTKEY`, - `bfcol_25` AS `VALUE` -FROM `bfcte_23` + `bfcol_41` AS `PS_PARTKEY`, + `bfcol_42` AS `VALUE` +FROM `bfcte_11` +CROSS JOIN `bfcte_14` WHERE - `bfcol_25` > `bfcol_68` + `bfcol_42` > `bfcol_58` ORDER BY - `bfcol_25` DESC \ No newline at end of file + `bfcol_42` DESC \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql index fd6d56012e2..4d91dcdac19 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/12/out.sql @@ -1,88 +1,84 @@ WITH `bfcte_0` AS ( SELECT - `O_ORDERKEY` AS `bfcol_0`, - `O_ORDERPRIORITY` AS `bfcol_1` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_ORDERKEY` AS `bfcol_0`, + `L_SHIPDATE` AS `bfcol_1`, + `L_COMMITDATE` AS `bfcol_2`, + `L_RECEIPTDATE` AS `bfcol_3`, + `L_SHIPMODE` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `L_ORDERKEY` AS `bfcol_2`, - `L_SHIPDATE` AS `bfcol_3`, - `L_COMMITDATE` AS `bfcol_4`, - `L_RECEIPTDATE` AS `bfcol_5`, - `L_SHIPMODE` AS `bfcol_6` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `O_ORDERKEY` AS `bfcol_5`, + `O_ORDERPRIORITY` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_2`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_2`, 1) -), `bfcte_3` AS ( - SELECT + `bfcol_5`, + `bfcol_6`, `bfcol_0`, `bfcol_1`, `bfcol_2`, `bfcol_3`, `bfcol_4`, - `bfcol_5`, - `bfcol_6`, - `bfcol_1` AS `bfcol_12`, - `bfcol_6` AS `bfcol_13`, + `bfcol_6` AS `bfcol_12`, + `bfcol_4` AS `bfcol_13`, ( ( ( - COALESCE(COALESCE(`bfcol_6` IN ('MAIL', 'SHIP'), FALSE), FALSE) + COALESCE(COALESCE(`bfcol_4` IN ('MAIL', 'SHIP'), FALSE), FALSE) AND ( - `bfcol_4` < `bfcol_5` + `bfcol_2` < `bfcol_3` ) ) AND ( - `bfcol_3` < `bfcol_4` + `bfcol_1` < `bfcol_2` ) ) AND ( - `bfcol_5` >= CAST('1994-01-01' AS DATE) + `bfcol_3` >= CAST('1994-01-01' AS DATE) ) ) AND ( - `bfcol_5` < CAST('1995-01-01' AS DATE) + `bfcol_3` < CAST('1995-01-01' AS DATE) ) AS `bfcol_14`, - `bfcol_1` AS `bfcol_20`, - `bfcol_6` AS `bfcol_21`, - CAST(COALESCE(COALESCE(`bfcol_1` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) AS INT64) AS `bfcol_22`, - `bfcol_6` AS `bfcol_26`, - CAST(COALESCE(COALESCE(`bfcol_1` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) AS INT64) AS `bfcol_27`, + `bfcol_6` AS `bfcol_20`, + `bfcol_4` AS `bfcol_21`, + CAST(COALESCE(COALESCE(`bfcol_6` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) AS INT64) AS `bfcol_22`, + `bfcol_4` AS `bfcol_26`, + CAST(COALESCE(COALESCE(`bfcol_6` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) AS INT64) AS `bfcol_27`, CAST(NOT ( - COALESCE(COALESCE(`bfcol_1` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) + COALESCE(COALESCE(`bfcol_6` IN ('1-URGENT', '2-HIGH'), FALSE), FALSE) ) AS INT64) AS `bfcol_28` - FROM `bfcte_2` + FROM `bfcte_1` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_5`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_5`, 1) = COALESCE(`bfcol_0`, 1) WHERE ( ( ( - COALESCE(COALESCE(`bfcol_6` IN ('MAIL', 'SHIP'), FALSE), FALSE) + COALESCE(COALESCE(`bfcol_4` IN ('MAIL', 'SHIP'), FALSE), FALSE) AND ( - `bfcol_4` < `bfcol_5` + `bfcol_2` < `bfcol_3` ) ) AND ( - `bfcol_3` < `bfcol_4` + `bfcol_1` < `bfcol_2` ) ) AND ( - `bfcol_5` >= CAST('1994-01-01' AS DATE) + `bfcol_3` >= CAST('1994-01-01' AS DATE) ) ) AND ( - `bfcol_5` < CAST('1995-01-01' AS DATE) + `bfcol_3` < CAST('1995-01-01' AS DATE) ) -), `bfcte_4` AS ( +), `bfcte_3` AS ( SELECT `bfcol_26`, COALESCE(SUM(`bfcol_27`), 0) AS `bfcol_32`, COALESCE(SUM(`bfcol_28`), 0) AS `bfcol_33` - FROM `bfcte_3` + FROM `bfcte_2` WHERE NOT `bfcol_26` IS NULL GROUP BY @@ -92,6 +88,6 @@ SELECT `bfcol_26` AS `L_SHIPMODE`, `bfcol_32` AS `HIGH_LINE_COUNT`, `bfcol_33` AS `LOW_LINE_COUNT` -FROM `bfcte_4` +FROM `bfcte_3` ORDER BY `bfcol_26` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql index 258ab2cc30a..728738a15e0 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/13/out.sql @@ -1,37 +1,33 @@ WITH `bfcte_0` AS ( - SELECT - `C_CUSTKEY` AS `bfcol_0` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_1` AS ( SELECT `O_ORDERKEY` AS `bfcol_10`, `O_CUSTKEY` AS `bfcol_11` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE NOT ( REGEXP_CONTAINS(`O_COMMENT`, 'special.*requests') ) -), `bfcte_2` AS ( +), `bfcte_1` AS ( SELECT - * - FROM `bfcte_0` - LEFT JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_11`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_11`, 1) -), `bfcte_3` AS ( + `C_CUSTKEY` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( SELECT - `bfcol_0`, + `bfcol_3`, COUNT(`bfcol_10`) AS `bfcol_14` - FROM `bfcte_2` + FROM `bfcte_1` + LEFT JOIN `bfcte_0` + ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_11`, 0) + AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_11`, 1) WHERE - NOT `bfcol_0` IS NULL + NOT `bfcol_3` IS NULL GROUP BY - `bfcol_0` -), `bfcte_4` AS ( + `bfcol_3` +), `bfcte_3` AS ( SELECT `bfcol_14`, COUNT(1) AS `bfcol_16` - FROM `bfcte_3` + FROM `bfcte_2` WHERE NOT `bfcol_14` IS NULL GROUP BY @@ -40,7 +36,7 @@ WITH `bfcte_0` AS ( SELECT `bfcol_14` AS `C_COUNT`, `bfcol_16` AS `CUSTDIST` -FROM `bfcte_4` +FROM `bfcte_3` ORDER BY `bfcol_16` DESC, `bfcol_14` DESC \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql index e1a35930619..a4644a86def 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/14/out.sql @@ -1,197 +1,170 @@ -WITH `bfcte_12` AS ( +WITH `bfcte_0` AS ( SELECT * - FROM UNNEST(ARRAY>[STRUCT('TEMP', 0, 0)]) + FROM UNNEST(ARRAY>[STRUCT('TEMP', 0, 0)]) +), `bfcte_1` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT('TEMP', 0, 0)]) ), `bfcte_2` AS ( SELECT - `P_PARTKEY` AS `bfcol_3`, - `P_TYPE` AS `bfcol_4` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_PARTKEY` AS `bfcol_0`, + `L_EXTENDEDPRICE` AS `bfcol_1`, + `L_DISCOUNT` AS `bfcol_2`, + `L_SHIPDATE` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `L_PARTKEY` AS `bfcol_5`, - `L_EXTENDEDPRICE` AS `bfcol_6`, - `L_DISCOUNT` AS `bfcol_7`, - `L_SHIPDATE` AS `bfcol_8` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_5` AS ( + `P_PARTKEY` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( SELECT - * - FROM `bfcte_2` - INNER JOIN `bfcte_3` - ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_5`, 0) - AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_5`, 1) -), `bfcte_7` AS ( + `P_PARTKEY` AS `bfcol_8`, + `P_TYPE` AS `bfcol_9` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( SELECT - `bfcol_3`, `bfcol_4`, - `bfcol_5`, - `bfcol_6`, - `bfcol_7`, - `bfcol_8`, - `bfcol_4` AS `bfcol_13`, - `bfcol_6` AS `bfcol_14`, - `bfcol_7` AS `bfcol_15`, + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_3`, + `bfcol_1` AS `bfcol_20`, + `bfcol_2` AS `bfcol_21`, ( - `bfcol_8` >= CAST('1995-09-01' AS DATE) + `bfcol_3` >= CAST('1995-09-01' AS DATE) ) AND ( - `bfcol_8` < CAST('1995-10-01' AS DATE) - ) AS `bfcol_16`, - ( - `bfcol_6` * ( - 1 - `bfcol_7` - ) - ) * CAST(REGEXP_CONTAINS(`bfcol_4`, 'PROMO') AS INT64) AS `bfcol_24` - FROM `bfcte_5` + `bfcol_3` < CAST('1995-10-01' AS DATE) + ) AS `bfcol_22`, + `bfcol_1` AS `bfcol_39`, + `bfcol_2` AS `bfcol_40`, + `bfcol_1` AS `bfcol_45`, + 1 - `bfcol_2` AS `bfcol_46`, + `bfcol_1` * ( + 1 - `bfcol_2` + ) AS `bfcol_51` + FROM `bfcte_3` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_4`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_4`, 1) = COALESCE(`bfcol_0`, 1) WHERE ( - `bfcol_8` >= CAST('1995-09-01' AS DATE) + `bfcol_3` >= CAST('1995-09-01' AS DATE) ) AND ( - `bfcol_8` < CAST('1995-10-01' AS DATE) + `bfcol_3` < CAST('1995-10-01' AS DATE) ) -), `bfcte_9` AS ( - SELECT - COALESCE(SUM(`bfcol_24`), 0) AS `bfcol_26` - FROM `bfcte_7` -), `bfcte_13` AS ( - SELECT - `bfcol_26`, - 0 AS `bfcol_27` - FROM `bfcte_9` -), `bfcte_15` AS ( - SELECT - * - FROM `bfcte_12` - CROSS JOIN `bfcte_13` -), `bfcte_17` AS ( +), `bfcte_6` AS ( SELECT + `bfcol_8`, + `bfcol_9`, `bfcol_0`, `bfcol_1`, `bfcol_2`, - `bfcol_26`, - `bfcol_27`, - CASE WHEN `bfcol_2` = 0 THEN `bfcol_26` END AS `bfcol_28`, - IF(`bfcol_27` = 0, CASE WHEN `bfcol_2` = 0 THEN `bfcol_26` END, NULL) AS `bfcol_33` - FROM `bfcte_15` -), `bfcte_19` AS ( - SELECT - `bfcol_0`, - `bfcol_1`, - ANY_VALUE(`bfcol_33`) AS `bfcol_37` - FROM `bfcte_17` - WHERE - NOT `bfcol_0` IS NULL AND NOT `bfcol_1` IS NULL - GROUP BY - `bfcol_0`, - `bfcol_1` -), `bfcte_20` AS ( - SELECT - `bfcol_0` AS `bfcol_41`, - 100.0 * `bfcol_37` AS `bfcol_42` - FROM `bfcte_19` -), `bfcte_10` AS ( - SELECT - * - FROM UNNEST(ARRAY>[STRUCT('TEMP', 0, 0)]) -), `bfcte_0` AS ( - SELECT - `P_PARTKEY` AS `bfcol_46` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_1` AS ( - SELECT - `L_PARTKEY` AS `bfcol_47`, - `L_EXTENDEDPRICE` AS `bfcol_48`, - `L_DISCOUNT` AS `bfcol_49`, - `L_SHIPDATE` AS `bfcol_50` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_4` AS ( - SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_46`, 0) = COALESCE(`bfcol_47`, 0) - AND COALESCE(`bfcol_46`, 1) = COALESCE(`bfcol_47`, 1) -), `bfcte_6` AS ( - SELECT - `bfcol_46`, - `bfcol_47`, - `bfcol_48`, - `bfcol_49`, - `bfcol_50`, - `bfcol_48` AS `bfcol_54`, - `bfcol_49` AS `bfcol_55`, + `bfcol_3`, + `bfcol_9` AS `bfcol_23`, + `bfcol_1` AS `bfcol_24`, + `bfcol_2` AS `bfcol_25`, ( - `bfcol_50` >= CAST('1995-09-01' AS DATE) + `bfcol_3` >= CAST('1995-09-01' AS DATE) ) AND ( - `bfcol_50` < CAST('1995-10-01' AS DATE) - ) AS `bfcol_56`, - `bfcol_48` AS `bfcol_62`, - `bfcol_49` AS `bfcol_63`, - `bfcol_48` AS `bfcol_66`, - 1 - `bfcol_49` AS `bfcol_67`, - `bfcol_48` * ( - 1 - `bfcol_49` - ) AS `bfcol_70` + `bfcol_3` < CAST('1995-10-01' AS DATE) + ) AS `bfcol_26`, + ( + `bfcol_1` * ( + 1 - `bfcol_2` + ) + ) * CAST(REGEXP_CONTAINS(`bfcol_9`, 'PROMO') AS INT64) AS `bfcol_41` FROM `bfcte_4` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_8`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_8`, 1) = COALESCE(`bfcol_0`, 1) WHERE ( - `bfcol_50` >= CAST('1995-09-01' AS DATE) + `bfcol_3` >= CAST('1995-09-01' AS DATE) ) AND ( - `bfcol_50` < CAST('1995-10-01' AS DATE) + `bfcol_3` < CAST('1995-10-01' AS DATE) ) +), `bfcte_7` AS ( + SELECT + COALESCE(SUM(`bfcol_51`), 0) AS `bfcol_54` + FROM `bfcte_5` ), `bfcte_8` AS ( SELECT - COALESCE(SUM(`bfcol_70`), 0) AS `bfcol_72` + COALESCE(SUM(`bfcol_41`), 0) AS `bfcol_47` FROM `bfcte_6` -), `bfcte_11` AS ( +), `bfcte_9` AS ( SELECT - `bfcol_72`, - 0 AS `bfcol_73` + `bfcol_54`, + 0 AS `bfcol_59` + FROM `bfcte_7` +), `bfcte_10` AS ( + SELECT + `bfcol_47`, + 0 AS `bfcol_50` FROM `bfcte_8` -), `bfcte_14` AS ( +), `bfcte_11` AS ( SELECT - * - FROM `bfcte_10` - CROSS JOIN `bfcte_11` -), `bfcte_16` AS ( + `bfcol_5`, + `bfcol_6`, + `bfcol_7`, + `bfcol_54`, + `bfcol_59`, + CASE WHEN `bfcol_7` = 0 THEN `bfcol_54` END AS `bfcol_64`, + IF(`bfcol_59` = 0, CASE WHEN `bfcol_7` = 0 THEN `bfcol_54` END, NULL) AS `bfcol_72` + FROM `bfcte_0` + CROSS JOIN `bfcte_9` +), `bfcte_12` AS ( SELECT - `bfcol_43`, - `bfcol_44`, - `bfcol_45`, - `bfcol_72`, - `bfcol_73`, - CASE WHEN `bfcol_45` = 0 THEN `bfcol_72` END AS `bfcol_74`, - IF(`bfcol_73` = 0, CASE WHEN `bfcol_45` = 0 THEN `bfcol_72` END, NULL) AS `bfcol_79` - FROM `bfcte_14` -), `bfcte_18` AS ( + `bfcol_10`, + `bfcol_11`, + `bfcol_12`, + `bfcol_47`, + `bfcol_50`, + CASE WHEN `bfcol_12` = 0 THEN `bfcol_47` END AS `bfcol_53`, + IF(`bfcol_50` = 0, CASE WHEN `bfcol_12` = 0 THEN `bfcol_47` END, NULL) AS `bfcol_60` + FROM `bfcte_1` + CROSS JOIN `bfcte_10` +), `bfcte_13` AS ( + SELECT + `bfcol_5`, + `bfcol_6`, + ANY_VALUE(`bfcol_72`) AS `bfcol_79` + FROM `bfcte_11` + WHERE + NOT `bfcol_5` IS NULL AND NOT `bfcol_6` IS NULL + GROUP BY + `bfcol_5`, + `bfcol_6` +), `bfcte_14` AS ( SELECT - `bfcol_43`, - `bfcol_44`, - ANY_VALUE(`bfcol_79`) AS `bfcol_83` - FROM `bfcte_16` + `bfcol_10`, + `bfcol_11`, + ANY_VALUE(`bfcol_60`) AS `bfcol_65` + FROM `bfcte_12` WHERE - NOT `bfcol_43` IS NULL AND NOT `bfcol_44` IS NULL + NOT `bfcol_10` IS NULL AND NOT `bfcol_11` IS NULL GROUP BY - `bfcol_43`, - `bfcol_44` -), `bfcte_21` AS ( + `bfcol_10`, + `bfcol_11` +), `bfcte_15` AS ( SELECT - `bfcol_43` AS `bfcol_84`, - `bfcol_83` AS `bfcol_85` - FROM `bfcte_18` -), `bfcte_22` AS ( + `bfcol_5` AS `bfcol_80`, + `bfcol_79` AS `bfcol_81` + FROM `bfcte_13` +), `bfcte_16` AS ( SELECT - * - FROM `bfcte_20` - FULL OUTER JOIN `bfcte_21` - ON `bfcol_41` = `bfcol_84` + `bfcol_10` AS `bfcol_77`, + 100.0 * `bfcol_65` AS `bfcol_78` + FROM `bfcte_14` ) SELECT - ROUND(IEEE_DIVIDE(`bfcol_42`, `bfcol_85`), 2) AS `PROMO_REVENUE` -FROM `bfcte_22` + ROUND(IEEE_DIVIDE(`bfcol_78`, `bfcol_81`), 2) AS `PROMO_REVENUE` +FROM `bfcte_16` +FULL OUTER JOIN `bfcte_15` + ON `bfcol_77` = `bfcol_80` ORDER BY - COALESCE(`bfcol_41`, `bfcol_84`) ASC NULLS LAST \ No newline at end of file + COALESCE(`bfcol_77`, `bfcol_80`) ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql index d8cc67ca79c..929418a09b2 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/15/out.sql @@ -1,30 +1,27 @@ -WITH `bfcte_6` AS ( +WITH `bfcte_0` AS ( SELECT - `S_SUPPKEY` AS `bfcol_0`, - `S_NAME` AS `bfcol_1`, - `S_ADDRESS` AS `bfcol_2`, - `S_PHONE` AS `bfcol_3` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + * + FROM UNNEST(ARRAY>[STRUCT('TOTAL_REVENUE', 0, 0)]) ), `bfcte_1` AS ( SELECT `L_SUPPKEY`, `L_EXTENDEDPRICE`, `L_DISCOUNT`, `L_SHIPDATE`, - `L_SUPPKEY` AS `bfcol_8`, - `L_EXTENDEDPRICE` AS `bfcol_9`, - `L_DISCOUNT` AS `bfcol_10`, + `L_SUPPKEY` AS `bfcol_12`, + `L_EXTENDEDPRICE` AS `bfcol_13`, + `L_DISCOUNT` AS `bfcol_14`, ( `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) ) AND ( `L_SHIPDATE` < CAST('1996-04-01' AS DATE) - ) AS `bfcol_11`, - `L_SUPPKEY` AS `bfcol_19`, + ) AS `bfcol_15`, + `L_SUPPKEY` AS `bfcol_23`, `L_EXTENDEDPRICE` * ( 1 - `L_DISCOUNT` - ) AS `bfcol_20` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + ) AS `bfcol_24` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE ( `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) @@ -32,142 +29,88 @@ WITH `bfcte_6` AS ( AND ( `L_SHIPDATE` < CAST('1996-04-01' AS DATE) ) -), `bfcte_3` AS ( - SELECT - `bfcol_19`, - COALESCE(SUM(`bfcol_20`), 0) AS `bfcol_23` - FROM `bfcte_1` - WHERE - NOT `bfcol_19` IS NULL - GROUP BY - `bfcol_19` -), `bfcte_7` AS ( - SELECT - `bfcol_19` AS `bfcol_26`, - ROUND(`bfcol_23`, 2) AS `bfcol_27` - FROM `bfcte_3` -), `bfcte_9` AS ( - SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON `bfcol_0` = `bfcol_26` -), `bfcte_16` AS ( +), `bfcte_2` AS ( SELECT - `bfcol_0` AS `bfcol_28`, - `bfcol_1` AS `bfcol_29`, - `bfcol_2` AS `bfcol_30`, - `bfcol_3` AS `bfcol_31`, - `bfcol_27` AS `bfcol_32` - FROM `bfcte_9` -), `bfcte_11` AS ( + `S_SUPPKEY` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( SELECT - * - FROM UNNEST(ARRAY>[STRUCT('TOTAL_REVENUE', 0, 0)]) + `S_SUPPKEY` AS `bfcol_8`, + `S_NAME` AS `bfcol_9`, + `S_ADDRESS` AS `bfcol_10`, + `S_PHONE` AS `bfcol_11` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_4` AS ( SELECT - `S_SUPPKEY` AS `bfcol_36` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_0` AS ( - SELECT - `L_SUPPKEY`, - `L_EXTENDEDPRICE`, - `L_DISCOUNT`, - `L_SHIPDATE`, - `L_SUPPKEY` AS `bfcol_41`, - `L_EXTENDEDPRICE` AS `bfcol_42`, - `L_DISCOUNT` AS `bfcol_43`, - ( - `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) - ) - AND ( - `L_SHIPDATE` < CAST('1996-04-01' AS DATE) - ) AS `bfcol_44`, - `L_SUPPKEY` AS `bfcol_52`, - `L_EXTENDEDPRICE` * ( - 1 - `L_DISCOUNT` - ) AS `bfcol_53` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - ( - `L_SHIPDATE` >= CAST('1996-01-01' AS DATE) - ) - AND ( - `L_SHIPDATE` < CAST('1996-04-01' AS DATE) - ) -), `bfcte_2` AS ( - SELECT - `bfcol_52`, - COALESCE(SUM(`bfcol_53`), 0) AS `bfcol_56` - FROM `bfcte_0` + `bfcol_23`, + COALESCE(SUM(`bfcol_24`), 0) AS `bfcol_27` + FROM `bfcte_1` WHERE - NOT `bfcol_52` IS NULL + NOT `bfcol_23` IS NULL GROUP BY - `bfcol_52` + `bfcol_23` ), `bfcte_5` AS ( SELECT - `bfcol_52` AS `bfcol_59`, - ROUND(`bfcol_56`, 2) AS `bfcol_60` - FROM `bfcte_2` -), `bfcte_8` AS ( - SELECT - * + `bfcol_23` AS `bfcol_30`, + ROUND(`bfcol_27`, 2) AS `bfcol_31` FROM `bfcte_4` - INNER JOIN `bfcte_5` - ON `bfcol_36` = `bfcol_59` -), `bfcte_10` AS ( +), `bfcte_6` AS ( SELECT - MAX(`bfcol_60`) AS `bfcol_62` - FROM `bfcte_8` -), `bfcte_12` AS ( + MAX(`bfcol_31`) AS `bfcol_38` + FROM `bfcte_2` + INNER JOIN `bfcte_5` + ON `bfcol_4` = `bfcol_30` +), `bfcte_7` AS ( SELECT - `bfcol_62`, - 0 AS `bfcol_63` - FROM `bfcte_10` -), `bfcte_13` AS ( + `bfcol_8` AS `bfcol_33`, + `bfcol_9` AS `bfcol_34`, + `bfcol_10` AS `bfcol_35`, + `bfcol_11` AS `bfcol_36`, + `bfcol_31` AS `bfcol_37` + FROM `bfcte_3` + INNER JOIN `bfcte_5` + ON `bfcol_8` = `bfcol_30` +), `bfcte_8` AS ( SELECT - * - FROM `bfcte_11` - CROSS JOIN `bfcte_12` -), `bfcte_14` AS ( + `bfcol_38`, + 0 AS `bfcol_39` + FROM `bfcte_6` +), `bfcte_9` AS ( SELECT - `bfcol_33`, - `bfcol_34`, - `bfcol_35`, - `bfcol_62`, - `bfcol_63`, - CASE WHEN `bfcol_35` = 0 THEN `bfcol_62` END AS `bfcol_64`, - IF(`bfcol_63` = 0, CASE WHEN `bfcol_35` = 0 THEN `bfcol_62` END, NULL) AS `bfcol_69` - FROM `bfcte_13` -), `bfcte_15` AS ( + `bfcol_5`, + `bfcol_6`, + `bfcol_7`, + `bfcol_38`, + `bfcol_39`, + CASE WHEN `bfcol_7` = 0 THEN `bfcol_38` END AS `bfcol_40`, + IF(`bfcol_39` = 0, CASE WHEN `bfcol_7` = 0 THEN `bfcol_38` END, NULL) AS `bfcol_45` + FROM `bfcte_0` + CROSS JOIN `bfcte_8` +), `bfcte_10` AS ( SELECT - `bfcol_33`, - `bfcol_34`, - ANY_VALUE(`bfcol_69`) AS `bfcol_73` - FROM `bfcte_14` + `bfcol_5`, + `bfcol_6`, + ANY_VALUE(`bfcol_45`) AS `bfcol_49` + FROM `bfcte_9` WHERE - NOT `bfcol_33` IS NULL AND NOT `bfcol_34` IS NULL + NOT `bfcol_5` IS NULL AND NOT `bfcol_6` IS NULL GROUP BY - `bfcol_33`, - `bfcol_34` -), `bfcte_17` AS ( - SELECT - `bfcol_73` AS `bfcol_74` - FROM `bfcte_15` -), `bfcte_18` AS ( + `bfcol_5`, + `bfcol_6` +), `bfcte_11` AS ( SELECT - * - FROM `bfcte_16` - CROSS JOIN `bfcte_17` + `bfcol_49` AS `bfcol_50` + FROM `bfcte_10` ) SELECT - `bfcol_28` AS `S_SUPPKEY`, - `bfcol_29` AS `S_NAME`, - `bfcol_30` AS `S_ADDRESS`, - `bfcol_31` AS `S_PHONE`, - `bfcol_32` AS `TOTAL_REVENUE` -FROM `bfcte_18` + `bfcol_33` AS `S_SUPPKEY`, + `bfcol_34` AS `S_NAME`, + `bfcol_35` AS `S_ADDRESS`, + `bfcol_36` AS `S_PHONE`, + `bfcol_37` AS `TOTAL_REVENUE` +FROM `bfcte_7` +CROSS JOIN `bfcte_11` WHERE - `bfcol_32` = `bfcol_74` + `bfcol_37` = `bfcol_50` ORDER BY - `bfcol_28` ASC NULLS LAST \ No newline at end of file + `bfcol_33` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql index cbba3e0d932..bd637ec3063 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/16/out.sql @@ -1,70 +1,65 @@ -WITH `bfcte_1` AS ( - SELECT - `P_PARTKEY` AS `bfcol_0`, - `P_BRAND` AS `bfcol_1`, - `P_TYPE` AS `bfcol_2`, - `P_SIZE` AS `bfcol_3` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_2` AS ( - SELECT - `PS_PARTKEY` AS `bfcol_4`, - `PS_SUPPKEY` AS `bfcol_5` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_4` AS ( - SELECT - * - FROM `bfcte_1` - INNER JOIN `bfcte_2` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_4`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_4`, 1) -), `bfcte_5` AS ( - SELECT - `bfcol_1` AS `bfcol_48`, - `bfcol_2` AS `bfcol_49`, - `bfcol_3` AS `bfcol_50`, - `bfcol_5` AS `bfcol_51` - FROM `bfcte_4` - WHERE - `bfcol_1` <> 'Brand#45' - AND NOT ( - REGEXP_CONTAINS(`bfcol_2`, 'MEDIUM POLISHED') - ) - AND COALESCE(COALESCE(`bfcol_3` IN (49, 14, 23, 45, 19, 3, 36, 9), FALSE), FALSE) -), `bfcte_0` AS ( +WITH `bfcte_0` AS ( SELECT `S_SUPPKEY`, `S_COMMENT`, - `S_SUPPKEY` AS `bfcol_54`, + `S_SUPPKEY` AS `bfcol_8`, NOT ( REGEXP_CONTAINS(`S_COMMENT`, 'Customer.*Complaints') - ) AS `bfcol_55` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + ) AS `bfcol_9` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE NOT ( REGEXP_CONTAINS(`S_COMMENT`, 'Customer.*Complaints') ) +), `bfcte_1` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_2`, + `PS_SUPPKEY` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( + SELECT + `P_PARTKEY` AS `bfcol_4`, + `P_BRAND` AS `bfcol_5`, + `P_TYPE` AS `bfcol_6`, + `P_SIZE` AS `bfcol_7` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_54` + `bfcol_8` FROM `bfcte_0` GROUP BY - `bfcol_54` + `bfcol_8` +), `bfcte_4` AS ( + SELECT + `bfcol_5` AS `bfcol_55`, + `bfcol_6` AS `bfcol_56`, + `bfcol_7` AS `bfcol_57`, + `bfcol_3` AS `bfcol_58` + FROM `bfcte_2` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_4`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_4`, 1) = COALESCE(`bfcol_2`, 1) + WHERE + `bfcol_5` <> 'Brand#45' + AND NOT ( + REGEXP_CONTAINS(`bfcol_6`, 'MEDIUM POLISHED') + ) + AND COALESCE(COALESCE(`bfcol_7` IN (49, 14, 23, 45, 19, 3, 36, 9), FALSE), FALSE) +), `bfcte_5` AS ( + SELECT + `bfcol_8` AS `bfcol_21` + FROM `bfcte_3` ), `bfcte_6` AS ( SELECT - `bfcte_5`.*, - EXISTS( - SELECT - 1 - FROM ( + *, + STRUCT(COALESCE(`bfcol_58`, 0) AS `bfpart1`, COALESCE(`bfcol_58`, 1) AS `bfpart2`) IN ( + ( SELECT - `bfcol_54` AS `bfcol_58` - FROM `bfcte_3` - ) AS `bft_3` - WHERE - COALESCE(`bfcte_5`.`bfcol_51`, 0) = COALESCE(`bft_3`.`bfcol_58`, 0) - AND COALESCE(`bfcte_5`.`bfcol_51`, 1) = COALESCE(`bft_3`.`bfcol_58`, 1) + STRUCT(COALESCE(`bfcol_21`, 0) AS `bfpart1`, COALESCE(`bfcol_21`, 1) AS `bfpart2`) + FROM `bfcte_5` + ) ) AS `bfcol_59` - FROM `bfcte_5` + FROM `bfcte_4` ), `bfcte_7` AS ( SELECT * @@ -73,26 +68,26 @@ WITH `bfcte_1` AS ( `bfcol_59` ), `bfcte_8` AS ( SELECT - `bfcol_48`, - `bfcol_49`, - `bfcol_50`, - COUNT(DISTINCT `bfcol_51`) AS `bfcol_69` + `bfcol_55`, + `bfcol_56`, + `bfcol_57`, + COUNT(DISTINCT `bfcol_58`) AS `bfcol_69` FROM `bfcte_7` WHERE - NOT `bfcol_48` IS NULL AND NOT `bfcol_49` IS NULL AND NOT `bfcol_50` IS NULL + NOT `bfcol_55` IS NULL AND NOT `bfcol_56` IS NULL AND NOT `bfcol_57` IS NULL GROUP BY - `bfcol_48`, - `bfcol_49`, - `bfcol_50` + `bfcol_55`, + `bfcol_56`, + `bfcol_57` ) SELECT - `bfcol_48` AS `P_BRAND`, - `bfcol_49` AS `P_TYPE`, - `bfcol_50` AS `P_SIZE`, + `bfcol_55` AS `P_BRAND`, + `bfcol_56` AS `P_TYPE`, + `bfcol_57` AS `P_SIZE`, `bfcol_69` AS `SUPPLIER_CNT` FROM `bfcte_8` ORDER BY `bfcol_69` DESC, - `bfcol_48` ASC NULLS LAST, - `bfcol_49` ASC NULLS LAST, - `bfcol_50` ASC NULLS LAST \ No newline at end of file + `bfcol_55` ASC NULLS LAST, + `bfcol_56` ASC NULLS LAST, + `bfcol_57` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql index 94a91c60762..b9816ff0bf7 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/17/out.sql @@ -1,129 +1,103 @@ -WITH `bfcte_12` AS ( +WITH `bfcte_0` AS ( SELECT * - FROM UNNEST(ARRAY>[STRUCT('L_EXTENDEDPRICE', 0, 0)]) -), `bfcte_2` AS ( - SELECT - `L_PARTKEY` AS `bfcol_3`, - `L_QUANTITY` AS `bfcol_4` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_3` AS ( + FROM UNNEST(ARRAY>[STRUCT('L_EXTENDEDPRICE', 0, 0)]) +), `bfcte_1` AS ( SELECT - `P_PARTKEY` AS `bfcol_12` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `P_PARTKEY` AS `bfcol_15` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE ( `P_BRAND` = 'Brand#23' ) AND ( `P_CONTAINER` = 'MED BOX' ) -), `bfcte_5` AS ( +), `bfcte_2` AS ( SELECT - * + `L_PARTKEY` AS `bfcol_3`, + `L_QUANTITY` AS `bfcol_4`, + `L_EXTENDEDPRICE` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( + SELECT + `L_PARTKEY` AS `bfcol_6`, + `L_QUANTITY` AS `bfcol_7` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_4` AS ( + SELECT + `bfcol_4` AS `bfcol_16`, + `bfcol_5` AS `bfcol_17`, + `bfcol_15` AS `bfcol_18` FROM `bfcte_2` - RIGHT JOIN `bfcte_3` - ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_12`, 0) - AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_12`, 1) -), `bfcte_6` AS ( + RIGHT JOIN `bfcte_1` + ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_15`, 0) + AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_15`, 1) +), `bfcte_5` AS ( SELECT - `bfcol_12`, - AVG(`bfcol_4`) AS `bfcol_15` - FROM `bfcte_5` + `bfcol_15`, + AVG(`bfcol_7`) AS `bfcol_21` + FROM `bfcte_3` + RIGHT JOIN `bfcte_1` + ON COALESCE(`bfcol_6`, 0) = COALESCE(`bfcol_15`, 0) + AND COALESCE(`bfcol_6`, 1) = COALESCE(`bfcol_15`, 1) WHERE - NOT `bfcol_12` IS NULL + NOT `bfcol_15` IS NULL GROUP BY - `bfcol_12` + `bfcol_15` +), `bfcte_6` AS ( + SELECT + `bfcol_15` AS `bfcol_24`, + `bfcol_21` * 0.2 AS `bfcol_25` + FROM `bfcte_5` ), `bfcte_7` AS ( SELECT - `bfcol_12` AS `bfcol_18`, - `bfcol_15` * 0.2 AS `bfcol_19` + `bfcol_24`, + `bfcol_25`, + `bfcol_16`, + `bfcol_17`, + `bfcol_18`, + `bfcol_17` AS `bfcol_29`, + `bfcol_16` < `bfcol_25` AS `bfcol_30` FROM `bfcte_6` -), `bfcte_0` AS ( - SELECT - `L_PARTKEY` AS `bfcol_20`, - `L_QUANTITY` AS `bfcol_21`, - `L_EXTENDEDPRICE` AS `bfcol_22` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_1` AS ( - SELECT - `P_PARTKEY` AS `bfcol_30` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + INNER JOIN `bfcte_4` + ON `bfcol_24` = `bfcol_18` WHERE - ( - `P_BRAND` = 'Brand#23' - ) AND ( - `P_CONTAINER` = 'MED BOX' - ) -), `bfcte_4` AS ( - SELECT - * - FROM `bfcte_0` - RIGHT JOIN `bfcte_1` - ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_30`, 0) - AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_30`, 1) + `bfcol_16` < `bfcol_25` ), `bfcte_8` AS ( SELECT - `bfcol_21` AS `bfcol_31`, - `bfcol_22` AS `bfcol_32`, - `bfcol_30` AS `bfcol_33` - FROM `bfcte_4` + COALESCE(SUM(`bfcol_29`), 0) AS `bfcol_34` + FROM `bfcte_7` ), `bfcte_9` AS ( SELECT - * - FROM `bfcte_7` - INNER JOIN `bfcte_8` - ON `bfcol_18` = `bfcol_33` + `bfcol_34`, + 0 AS `bfcol_35` + FROM `bfcte_8` ), `bfcte_10` AS ( SELECT - `bfcol_18`, - `bfcol_19`, - `bfcol_31`, - `bfcol_32`, - `bfcol_33`, - `bfcol_32` AS `bfcol_37`, - `bfcol_31` < `bfcol_19` AS `bfcol_38` - FROM `bfcte_9` - WHERE - `bfcol_31` < `bfcol_19` + `bfcol_8`, + `bfcol_9`, + `bfcol_10`, + `bfcol_34`, + `bfcol_35`, + CASE WHEN `bfcol_10` = 0 THEN `bfcol_34` END AS `bfcol_36`, + IF(`bfcol_35` = 0, CASE WHEN `bfcol_10` = 0 THEN `bfcol_34` END, NULL) AS `bfcol_41` + FROM `bfcte_0` + CROSS JOIN `bfcte_9` ), `bfcte_11` AS ( SELECT - COALESCE(SUM(`bfcol_37`), 0) AS `bfcol_42` + `bfcol_8`, + `bfcol_9`, + ANY_VALUE(`bfcol_41`) AS `bfcol_45` FROM `bfcte_10` -), `bfcte_13` AS ( - SELECT - `bfcol_42`, - 0 AS `bfcol_43` - FROM `bfcte_11` -), `bfcte_14` AS ( - SELECT - * - FROM `bfcte_12` - CROSS JOIN `bfcte_13` -), `bfcte_15` AS ( - SELECT - `bfcol_0`, - `bfcol_1`, - `bfcol_2`, - `bfcol_42`, - `bfcol_43`, - CASE WHEN `bfcol_2` = 0 THEN `bfcol_42` END AS `bfcol_44`, - IF(`bfcol_43` = 0, CASE WHEN `bfcol_2` = 0 THEN `bfcol_42` END, NULL) AS `bfcol_49` - FROM `bfcte_14` -), `bfcte_16` AS ( - SELECT - `bfcol_0`, - `bfcol_1`, - ANY_VALUE(`bfcol_49`) AS `bfcol_53` - FROM `bfcte_15` WHERE - NOT `bfcol_0` IS NULL AND NOT `bfcol_1` IS NULL + NOT `bfcol_8` IS NULL AND NOT `bfcol_9` IS NULL GROUP BY - `bfcol_0`, - `bfcol_1` + `bfcol_8`, + `bfcol_9` ) SELECT - ROUND(IEEE_DIVIDE(`bfcol_53`, 7.0), 2) AS `AVG_YEARLY` -FROM `bfcte_16` + ROUND(IEEE_DIVIDE(`bfcol_45`, 7.0), 2) AS `AVG_YEARLY` +FROM `bfcte_11` ORDER BY - `bfcol_1` ASC NULLS LAST, - `bfcol_0` ASC NULLS LAST \ No newline at end of file + `bfcol_9` ASC NULLS LAST, + `bfcol_8` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql index 98fd17bce22..b5720bc932a 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/18/out.sql @@ -1,130 +1,116 @@ -WITH `bfcte_4` AS ( +WITH `bfcte_0` AS ( SELECT - `O_ORDERKEY` AS `bfcol_0`, - `O_CUSTKEY` AS `bfcol_1`, - `O_TOTALPRICE` AS `bfcol_2`, - `O_ORDERDATE` AS `bfcol_3` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_0` AS ( - SELECT - `L_ORDERKEY`, - `L_QUANTITY` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `C_CUSTKEY` AS `bfcol_0`, + `C_NAME` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `L_ORDERKEY`, - COALESCE(SUM(`L_QUANTITY`), 0) AS `bfcol_6` - FROM `bfcte_0` - WHERE - NOT `L_ORDERKEY` IS NULL - GROUP BY - `L_ORDERKEY` + `L_ORDERKEY` AS `bfcol_2`, + `L_QUANTITY` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - `L_ORDERKEY`, - `bfcol_6`, - `L_ORDERKEY` AS `bfcol_7`, - `bfcol_6` > 300 AS `bfcol_8` - FROM `bfcte_1` - WHERE - `bfcol_6` > 300 + `O_ORDERKEY` AS `bfcol_4`, + `O_CUSTKEY` AS `bfcol_5`, + `O_TOTALPRICE` AS `bfcol_6`, + `O_ORDERDATE` AS `bfcol_7` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_7` - FROM `bfcte_2` + `bfcol_2`, + COALESCE(SUM(`bfcol_3`), 0) AS `bfcol_8` + FROM `bfcte_1` + WHERE + NOT `bfcol_2` IS NULL GROUP BY - `bfcol_7` + `bfcol_2` +), `bfcte_4` AS ( + SELECT + `bfcol_2`, + `bfcol_8`, + `bfcol_2` AS `bfcol_9`, + `bfcol_8` > 300 AS `bfcol_10` + FROM `bfcte_3` + WHERE + `bfcol_8` > 300 ), `bfcte_5` AS ( SELECT - `bfcte_4`.*, - EXISTS( - SELECT - 1 - FROM ( - SELECT - `bfcol_7` AS `bfcol_11` - FROM `bfcte_3` - ) AS `bft_3` - WHERE - COALESCE(`bfcte_4`.`bfcol_0`, 0) = COALESCE(`bft_3`.`bfcol_11`, 0) - AND COALESCE(`bfcte_4`.`bfcol_0`, 1) = COALESCE(`bft_3`.`bfcol_11`, 1) - ) AS `bfcol_12` + `bfcol_9` FROM `bfcte_4` + GROUP BY + `bfcol_9` ), `bfcte_6` AS ( SELECT - `bfcol_0` AS `bfcol_18`, - `bfcol_1` AS `bfcol_19`, - `bfcol_2` AS `bfcol_20`, - `bfcol_3` AS `bfcol_21` + `bfcol_9` AS `bfcol_13` FROM `bfcte_5` - WHERE - `bfcol_12` ), `bfcte_7` AS ( SELECT - `L_ORDERKEY` AS `bfcol_22`, - `L_QUANTITY` AS `bfcol_23` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + *, + STRUCT(COALESCE(`bfcol_4`, 0) AS `bfpart1`, COALESCE(`bfcol_4`, 1) AS `bfpart2`) IN ( + ( + SELECT + STRUCT(COALESCE(`bfcol_13`, 0) AS `bfpart1`, COALESCE(`bfcol_13`, 1) AS `bfpart2`) + FROM `bfcte_6` + ) + ) AS `bfcol_14` + FROM `bfcte_2` ), `bfcte_8` AS ( SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_18`, 0) = COALESCE(`bfcol_22`, 0) - AND COALESCE(`bfcol_18`, 1) = COALESCE(`bfcol_22`, 1) + `bfcol_4` AS `bfcol_20`, + `bfcol_5` AS `bfcol_21`, + `bfcol_6` AS `bfcol_22`, + `bfcol_7` AS `bfcol_23` + FROM `bfcte_7` + WHERE + `bfcol_14` ), `bfcte_9` AS ( SELECT - `bfcol_18` AS `bfcol_24`, - `bfcol_19` AS `bfcol_25`, - `bfcol_20` AS `bfcol_26`, - `bfcol_21` AS `bfcol_27`, - `bfcol_23` AS `bfcol_28` + `bfcol_20` AS `bfcol_24`, + `bfcol_21` AS `bfcol_25`, + `bfcol_22` AS `bfcol_26`, + `bfcol_23` AS `bfcol_27`, + `bfcol_3` AS `bfcol_28` FROM `bfcte_8` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_2`, 1) ), `bfcte_10` AS ( SELECT - `C_CUSTKEY` AS `bfcol_29`, - `C_NAME` AS `bfcol_30` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_11` AS ( - SELECT - * - FROM `bfcte_9` - INNER JOIN `bfcte_10` - ON COALESCE(`bfcol_25`, 0) = COALESCE(`bfcol_29`, 0) - AND COALESCE(`bfcol_25`, 1) = COALESCE(`bfcol_29`, 1) -), `bfcte_12` AS ( - SELECT - `bfcol_30`, - `bfcol_29`, + `bfcol_1`, + `bfcol_0`, `bfcol_24`, `bfcol_27`, `bfcol_26`, - COALESCE(SUM(`bfcol_28`), 0) AS `bfcol_37` - FROM `bfcte_11` + COALESCE(SUM(`bfcol_28`), 0) AS `bfcol_35` + FROM `bfcte_9` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_25`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_25`, 1) = COALESCE(`bfcol_0`, 1) WHERE - NOT `bfcol_30` IS NULL - AND NOT `bfcol_29` IS NULL + NOT `bfcol_1` IS NULL + AND NOT `bfcol_0` IS NULL AND NOT `bfcol_24` IS NULL AND NOT `bfcol_27` IS NULL AND NOT `bfcol_26` IS NULL GROUP BY - `bfcol_30`, - `bfcol_29`, + `bfcol_1`, + `bfcol_0`, `bfcol_24`, `bfcol_27`, `bfcol_26` ) SELECT - `bfcol_30` AS `C_NAME`, - `bfcol_29` AS `C_CUSTKEY`, + `bfcol_1` AS `C_NAME`, + `bfcol_0` AS `C_CUSTKEY`, `bfcol_24` AS `O_ORDERKEY`, `bfcol_27` AS `O_ORDERDAT`, `bfcol_26` AS `O_TOTALPRICE`, - `bfcol_37` AS `COL6` -FROM `bfcte_12` + `bfcol_35` AS `COL6` +FROM `bfcte_10` ORDER BY `bfcol_26` DESC, `bfcol_27` ASC NULLS LAST, - `bfcol_30` ASC NULLS LAST, - `bfcol_29` ASC NULLS LAST, + `bfcol_1` ASC NULLS LAST, + `bfcol_0` ASC NULLS LAST, `bfcol_24` ASC NULLS LAST LIMIT 100 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql index d49592fc047..9672739d645 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/19/out.sql @@ -1,44 +1,41 @@ WITH `bfcte_0` AS ( SELECT - `P_PARTKEY` AS `bfcol_0`, - `P_BRAND` AS `bfcol_1`, - `P_SIZE` AS `bfcol_2`, - `P_CONTAINER` AS `bfcol_3` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + * + FROM UNNEST(ARRAY>[STRUCT(0)]) ), `bfcte_1` AS ( SELECT - `L_PARTKEY` AS `bfcol_4`, - `L_QUANTITY` AS `bfcol_5`, - `L_EXTENDEDPRICE` AS `bfcol_6`, - `L_DISCOUNT` AS `bfcol_7`, - `L_SHIPINSTRUCT` AS `bfcol_8`, - `L_SHIPMODE` AS `bfcol_9` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_PARTKEY` AS `bfcol_1`, + `L_QUANTITY` AS `bfcol_2`, + `L_EXTENDEDPRICE` AS `bfcol_3`, + `L_DISCOUNT` AS `bfcol_4`, + `L_SHIPINSTRUCT` AS `bfcol_5`, + `L_SHIPMODE` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_4`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_4`, 1) + `P_PARTKEY` AS `bfcol_7`, + `P_BRAND` AS `bfcol_8`, + `P_SIZE` AS `bfcol_9`, + `P_CONTAINER` AS `bfcol_10` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_0`, + `bfcol_7`, + `bfcol_8`, + `bfcol_9`, + `bfcol_10`, `bfcol_1`, `bfcol_2`, `bfcol_3`, `bfcol_4`, `bfcol_5`, `bfcol_6`, - `bfcol_7`, - `bfcol_8`, - `bfcol_9`, - `bfcol_6` AS `bfcol_18`, - `bfcol_7` AS `bfcol_19`, + `bfcol_3` AS `bfcol_19`, + `bfcol_4` AS `bfcol_20`, ( - COALESCE(COALESCE(`bfcol_9` IN ('AIR', 'AIR REG'), FALSE), FALSE) + COALESCE(COALESCE(`bfcol_6` IN ('AIR', 'AIR REG'), FALSE), FALSE) AND ( - `bfcol_8` = 'DELIVER IN PERSON' + `bfcol_5` = 'DELIVER IN PERSON' ) ) AND ( @@ -47,23 +44,23 @@ WITH `bfcte_0` AS ( ( ( ( - `bfcol_1` = 'Brand#12' + `bfcol_8` = 'Brand#12' ) - AND COALESCE(COALESCE(`bfcol_3` IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'), FALSE), FALSE) + AND COALESCE(COALESCE(`bfcol_10` IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'), FALSE), FALSE) ) AND ( ( - `bfcol_5` >= 1 + `bfcol_2` >= 1 ) AND ( - `bfcol_5` <= 11 + `bfcol_2` <= 11 ) ) ) AND ( ( - `bfcol_2` >= 1 + `bfcol_9` >= 1 ) AND ( - `bfcol_2` <= 5 + `bfcol_9` <= 5 ) ) ) @@ -71,23 +68,26 @@ WITH `bfcte_0` AS ( ( ( ( - `bfcol_1` = 'Brand#23' + `bfcol_8` = 'Brand#23' + ) + AND COALESCE( + COALESCE(`bfcol_10` IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'), FALSE), + FALSE ) - AND COALESCE(COALESCE(`bfcol_3` IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'), FALSE), FALSE) ) AND ( ( - `bfcol_5` >= 10 + `bfcol_2` >= 10 ) AND ( - `bfcol_5` <= 20 + `bfcol_2` <= 20 ) ) ) AND ( ( - `bfcol_2` >= 1 + `bfcol_9` >= 1 ) AND ( - `bfcol_2` <= 10 + `bfcol_9` <= 10 ) ) ) @@ -96,38 +96,41 @@ WITH `bfcte_0` AS ( ( ( ( - `bfcol_1` = 'Brand#34' + `bfcol_8` = 'Brand#34' ) - AND COALESCE(COALESCE(`bfcol_3` IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'), FALSE), FALSE) + AND COALESCE(COALESCE(`bfcol_10` IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'), FALSE), FALSE) ) AND ( ( - `bfcol_5` >= 20 + `bfcol_2` >= 20 ) AND ( - `bfcol_5` <= 30 + `bfcol_2` <= 30 ) ) ) AND ( ( - `bfcol_2` >= 1 + `bfcol_9` >= 1 ) AND ( - `bfcol_2` <= 15 + `bfcol_9` <= 15 ) ) ) - ) AS `bfcol_20`, - `bfcol_6` AS `bfcol_26`, - 1 - `bfcol_7` AS `bfcol_27`, - `bfcol_6` * ( - 1 - `bfcol_7` - ) AS `bfcol_30` + ) AS `bfcol_21`, + `bfcol_3` AS `bfcol_27`, + 1 - `bfcol_4` AS `bfcol_28`, + `bfcol_3` * ( + 1 - `bfcol_4` + ) AS `bfcol_31` FROM `bfcte_2` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_7`, 0) = COALESCE(`bfcol_1`, 0) + AND COALESCE(`bfcol_7`, 1) = COALESCE(`bfcol_1`, 1) WHERE ( - COALESCE(COALESCE(`bfcol_9` IN ('AIR', 'AIR REG'), FALSE), FALSE) + COALESCE(COALESCE(`bfcol_6` IN ('AIR', 'AIR REG'), FALSE), FALSE) AND ( - `bfcol_8` = 'DELIVER IN PERSON' + `bfcol_5` = 'DELIVER IN PERSON' ) ) AND ( @@ -136,23 +139,23 @@ WITH `bfcte_0` AS ( ( ( ( - `bfcol_1` = 'Brand#12' + `bfcol_8` = 'Brand#12' ) - AND COALESCE(COALESCE(`bfcol_3` IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'), FALSE), FALSE) + AND COALESCE(COALESCE(`bfcol_10` IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG'), FALSE), FALSE) ) AND ( ( - `bfcol_5` >= 1 + `bfcol_2` >= 1 ) AND ( - `bfcol_5` <= 11 + `bfcol_2` <= 11 ) ) ) AND ( ( - `bfcol_2` >= 1 + `bfcol_9` >= 1 ) AND ( - `bfcol_2` <= 5 + `bfcol_9` <= 5 ) ) ) @@ -160,23 +163,26 @@ WITH `bfcte_0` AS ( ( ( ( - `bfcol_1` = 'Brand#23' + `bfcol_8` = 'Brand#23' + ) + AND COALESCE( + COALESCE(`bfcol_10` IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'), FALSE), + FALSE ) - AND COALESCE(COALESCE(`bfcol_3` IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK'), FALSE), FALSE) ) AND ( ( - `bfcol_5` >= 10 + `bfcol_2` >= 10 ) AND ( - `bfcol_5` <= 20 + `bfcol_2` <= 20 ) ) ) AND ( ( - `bfcol_2` >= 1 + `bfcol_9` >= 1 ) AND ( - `bfcol_2` <= 10 + `bfcol_9` <= 10 ) ) ) @@ -185,45 +191,37 @@ WITH `bfcte_0` AS ( ( ( ( - `bfcol_1` = 'Brand#34' + `bfcol_8` = 'Brand#34' ) - AND COALESCE(COALESCE(`bfcol_3` IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'), FALSE), FALSE) + AND COALESCE(COALESCE(`bfcol_10` IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG'), FALSE), FALSE) ) AND ( ( - `bfcol_5` >= 20 + `bfcol_2` >= 20 ) AND ( - `bfcol_5` <= 30 + `bfcol_2` <= 30 ) ) ) AND ( ( - `bfcol_2` >= 1 + `bfcol_9` >= 1 ) AND ( - `bfcol_2` <= 15 + `bfcol_9` <= 15 ) ) ) ) ), `bfcte_4` AS ( SELECT - COALESCE(SUM(`bfcol_30`), 0) AS `bfcol_32` + COALESCE(SUM(`bfcol_31`), 0) AS `bfcol_33` FROM `bfcte_3` ), `bfcte_5` AS ( SELECT * FROM `bfcte_4` -), `bfcte_6` AS ( - SELECT - * - FROM UNNEST(ARRAY>[STRUCT(0)]) -), `bfcte_7` AS ( - SELECT - * - FROM `bfcte_5` - CROSS JOIN `bfcte_6` ) SELECT - CASE WHEN `bfcol_33` = 0 THEN `bfcol_32` END AS `REVENUE` -FROM `bfcte_7` \ No newline at end of file + CASE WHEN `bfcol_0` = 0 THEN `bfcol_33` END AS `REVENUE` +FROM `bfcte_5` +CROSS JOIN `bfcte_0` \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql index 8f8c8ec1746..9130dc95fce 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/2/out.sql @@ -1,257 +1,210 @@ -WITH `bfcte_2` AS ( +WITH `bfcte_0` AS ( SELECT - `P_PARTKEY` AS `bfcol_0`, - `P_TYPE` AS `bfcol_1`, - `P_SIZE` AS `bfcol_2` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_3` AS ( - SELECT - `PS_PARTKEY` AS `bfcol_3`, - `PS_SUPPKEY` AS `bfcol_4`, - `PS_SUPPLYCOST` AS `bfcol_5` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_5` AS ( + `R_REGIONKEY` AS `bfcol_0`, + `R_NAME` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( SELECT - * - FROM `bfcte_2` - INNER JOIN `bfcte_3` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) -), `bfcte_8` AS ( + `N_NATIONKEY` AS `bfcol_2`, + `N_NAME` AS `bfcol_3`, + `N_REGIONKEY` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( SELECT - `bfcol_0` AS `bfcol_6`, - `bfcol_1` AS `bfcol_7`, - `bfcol_2` AS `bfcol_8`, - `bfcol_4` AS `bfcol_9`, - `bfcol_5` AS `bfcol_10` - FROM `bfcte_5` -), `bfcte_9` AS ( + `N_NATIONKEY` AS `bfcol_19`, + `N_REGIONKEY` AS `bfcol_20` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( SELECT - `S_SUPPKEY` AS `bfcol_11`, - `S_NATIONKEY` AS `bfcol_12` + `S_SUPPKEY` AS `bfcol_5`, + `S_NAME` AS `bfcol_6`, + `S_ADDRESS` AS `bfcol_7`, + `S_NATIONKEY` AS `bfcol_8`, + `S_PHONE` AS `bfcol_9`, + `S_ACCTBAL` AS `bfcol_10`, + `S_COMMENT` AS `bfcol_11` FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_11` AS ( - SELECT - * - FROM `bfcte_8` - INNER JOIN `bfcte_9` - ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_11`, 0) - AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_11`, 1) -), `bfcte_14` AS ( - SELECT - `bfcol_6` AS `bfcol_13`, - `bfcol_7` AS `bfcol_14`, - `bfcol_8` AS `bfcol_15`, - `bfcol_10` AS `bfcol_16`, - `bfcol_12` AS `bfcol_17` - FROM `bfcte_11` -), `bfcte_15` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_18`, - `N_REGIONKEY` AS `bfcol_19` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_17` AS ( - SELECT - * - FROM `bfcte_14` - INNER JOIN `bfcte_15` - ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_18`, 0) - AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_18`, 1) -), `bfcte_20` AS ( - SELECT - `bfcol_13` AS `bfcol_20`, - `bfcol_14` AS `bfcol_21`, - `bfcol_15` AS `bfcol_22`, - `bfcol_16` AS `bfcol_23`, - `bfcol_19` AS `bfcol_24` - FROM `bfcte_17` -), `bfcte_21` AS ( - SELECT - `R_REGIONKEY` AS `bfcol_25`, - `R_NAME` AS `bfcol_26` - FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_23` AS ( - SELECT - * - FROM `bfcte_20` - INNER JOIN `bfcte_21` - ON COALESCE(`bfcol_24`, 0) = COALESCE(`bfcol_25`, 0) - AND COALESCE(`bfcol_24`, 1) = COALESCE(`bfcol_25`, 1) -), `bfcte_24` AS ( - SELECT - `bfcol_20`, - `bfcol_21`, - `bfcol_22`, - `bfcol_23`, - `bfcol_24`, - `bfcol_25`, - `bfcol_26`, - `bfcol_20` AS `bfcol_32`, - `bfcol_21` AS `bfcol_33`, - `bfcol_23` AS `bfcol_34`, - `bfcol_26` AS `bfcol_35`, - `bfcol_22` = 15 AS `bfcol_36`, - `bfcol_20` AS `bfcol_46`, - `bfcol_23` AS `bfcol_47`, - `bfcol_26` AS `bfcol_48`, - ENDS_WITH(`bfcol_21`, 'BRASS') AS `bfcol_49`, - `bfcol_20` AS `bfcol_57`, - `bfcol_23` AS `bfcol_58`, - `bfcol_26` = 'EUROPE' AS `bfcol_59` - FROM `bfcte_23` - WHERE - `bfcol_22` = 15 AND ENDS_WITH(`bfcol_21`, 'BRASS') AND `bfcol_26` = 'EUROPE' -), `bfcte_25` AS ( - SELECT - `bfcol_57`, - MIN(`bfcol_58`) AS `bfcol_65` - FROM `bfcte_24` - WHERE - NOT `bfcol_57` IS NULL - GROUP BY - `bfcol_57` -), `bfcte_26` AS ( - SELECT - `bfcol_57` AS `bfcol_63`, - `bfcol_65` - FROM `bfcte_25` -), `bfcte_0` AS ( - SELECT - `P_PARTKEY` AS `bfcol_66`, - `P_MFGR` AS `bfcol_67`, - `P_TYPE` AS `bfcol_68`, - `P_SIZE` AS `bfcol_69` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_1` AS ( - SELECT - `PS_PARTKEY` AS `bfcol_70`, - `PS_SUPPKEY` AS `bfcol_71`, - `PS_SUPPLYCOST` AS `bfcol_72` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_4` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_66`, 0) = COALESCE(`bfcol_70`, 0) - AND COALESCE(`bfcol_66`, 1) = COALESCE(`bfcol_70`, 1) + `S_SUPPKEY` AS `bfcol_21`, + `S_NATIONKEY` AS `bfcol_22` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_12`, + `PS_SUPPKEY` AS `bfcol_13`, + `PS_SUPPLYCOST` AS `bfcol_14` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_6` AS ( SELECT - `bfcol_66` AS `bfcol_73`, - `bfcol_67` AS `bfcol_74`, - `bfcol_68` AS `bfcol_75`, - `bfcol_69` AS `bfcol_76`, - `bfcol_71` AS `bfcol_77`, - `bfcol_72` AS `bfcol_78` - FROM `bfcte_4` + `P_PARTKEY` AS `bfcol_15`, + `P_MFGR` AS `bfcol_16`, + `P_TYPE` AS `bfcol_17`, + `P_SIZE` AS `bfcol_18` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_7` AS ( SELECT - `S_SUPPKEY` AS `bfcol_79`, - `S_NAME` AS `bfcol_80`, - `S_ADDRESS` AS `bfcol_81`, - `S_NATIONKEY` AS `bfcol_82`, - `S_PHONE` AS `bfcol_83`, - `S_ACCTBAL` AS `bfcol_84`, - `S_COMMENT` AS `bfcol_85` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_10` AS ( + `P_PARTKEY` AS `bfcol_23`, + `P_TYPE` AS `bfcol_24`, + `P_SIZE` AS `bfcol_25` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_8` AS ( SELECT - * + `bfcol_15` AS `bfcol_26`, + `bfcol_16` AS `bfcol_27`, + `bfcol_17` AS `bfcol_28`, + `bfcol_18` AS `bfcol_29`, + `bfcol_13` AS `bfcol_30`, + `bfcol_14` AS `bfcol_31` FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_77`, 0) = COALESCE(`bfcol_79`, 0) - AND COALESCE(`bfcol_77`, 1) = COALESCE(`bfcol_79`, 1) + INNER JOIN `bfcte_5` + ON COALESCE(`bfcol_15`, 0) = COALESCE(`bfcol_12`, 0) + AND COALESCE(`bfcol_15`, 1) = COALESCE(`bfcol_12`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_23` AS `bfcol_32`, + `bfcol_24` AS `bfcol_33`, + `bfcol_25` AS `bfcol_34`, + `bfcol_13` AS `bfcol_35`, + `bfcol_14` AS `bfcol_36` + FROM `bfcte_7` + INNER JOIN `bfcte_5` + ON COALESCE(`bfcol_23`, 0) = COALESCE(`bfcol_12`, 0) + AND COALESCE(`bfcol_23`, 1) = COALESCE(`bfcol_12`, 1) +), `bfcte_10` AS ( + SELECT + `bfcol_26` AS `bfcol_37`, + `bfcol_27` AS `bfcol_38`, + `bfcol_28` AS `bfcol_39`, + `bfcol_29` AS `bfcol_40`, + `bfcol_31` AS `bfcol_41`, + `bfcol_6` AS `bfcol_42`, + `bfcol_7` AS `bfcol_43`, + `bfcol_8` AS `bfcol_44`, + `bfcol_9` AS `bfcol_45`, + `bfcol_10` AS `bfcol_46`, + `bfcol_11` AS `bfcol_47` + FROM `bfcte_8` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_30`, 0) = COALESCE(`bfcol_5`, 0) + AND COALESCE(`bfcol_30`, 1) = COALESCE(`bfcol_5`, 1) +), `bfcte_11` AS ( + SELECT + `bfcol_32` AS `bfcol_48`, + `bfcol_33` AS `bfcol_49`, + `bfcol_34` AS `bfcol_50`, + `bfcol_36` AS `bfcol_51`, + `bfcol_22` AS `bfcol_52` + FROM `bfcte_9` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_35`, 0) = COALESCE(`bfcol_21`, 0) + AND COALESCE(`bfcol_35`, 1) = COALESCE(`bfcol_21`, 1) ), `bfcte_12` AS ( SELECT - `bfcol_73` AS `bfcol_86`, - `bfcol_74` AS `bfcol_87`, - `bfcol_75` AS `bfcol_88`, - `bfcol_76` AS `bfcol_89`, - `bfcol_78` AS `bfcol_90`, - `bfcol_80` AS `bfcol_91`, - `bfcol_81` AS `bfcol_92`, - `bfcol_82` AS `bfcol_93`, - `bfcol_83` AS `bfcol_94`, - `bfcol_84` AS `bfcol_95`, - `bfcol_85` AS `bfcol_96` + `bfcol_37` AS `bfcol_53`, + `bfcol_38` AS `bfcol_54`, + `bfcol_39` AS `bfcol_55`, + `bfcol_40` AS `bfcol_56`, + `bfcol_41` AS `bfcol_57`, + `bfcol_42` AS `bfcol_58`, + `bfcol_43` AS `bfcol_59`, + `bfcol_45` AS `bfcol_60`, + `bfcol_46` AS `bfcol_61`, + `bfcol_47` AS `bfcol_62`, + `bfcol_3` AS `bfcol_63`, + `bfcol_4` AS `bfcol_64` FROM `bfcte_10` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_44`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_44`, 1) = COALESCE(`bfcol_2`, 1) ), `bfcte_13` AS ( SELECT - `N_NATIONKEY` AS `bfcol_97`, - `N_NAME` AS `bfcol_98`, - `N_REGIONKEY` AS `bfcol_99` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_16` AS ( + `bfcol_48` AS `bfcol_65`, + `bfcol_49` AS `bfcol_66`, + `bfcol_50` AS `bfcol_67`, + `bfcol_51` AS `bfcol_68`, + `bfcol_20` AS `bfcol_69` + FROM `bfcte_11` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_52`, 0) = COALESCE(`bfcol_19`, 0) + AND COALESCE(`bfcol_52`, 1) = COALESCE(`bfcol_19`, 1) +), `bfcte_14` AS ( SELECT - * + `bfcol_53` AS `bfcol_205`, + `bfcol_54` AS `bfcol_206`, + `bfcol_57` AS `bfcol_207`, + `bfcol_58` AS `bfcol_208`, + `bfcol_59` AS `bfcol_209`, + `bfcol_60` AS `bfcol_210`, + `bfcol_61` AS `bfcol_211`, + `bfcol_62` AS `bfcol_212`, + `bfcol_63` AS `bfcol_213` FROM `bfcte_12` - INNER JOIN `bfcte_13` - ON COALESCE(`bfcol_93`, 0) = COALESCE(`bfcol_97`, 0) - AND COALESCE(`bfcol_93`, 1) = COALESCE(`bfcol_97`, 1) -), `bfcte_18` AS ( - SELECT - `bfcol_86` AS `bfcol_100`, - `bfcol_87` AS `bfcol_101`, - `bfcol_88` AS `bfcol_102`, - `bfcol_89` AS `bfcol_103`, - `bfcol_90` AS `bfcol_104`, - `bfcol_91` AS `bfcol_105`, - `bfcol_92` AS `bfcol_106`, - `bfcol_94` AS `bfcol_107`, - `bfcol_95` AS `bfcol_108`, - `bfcol_96` AS `bfcol_109`, - `bfcol_98` AS `bfcol_110`, - `bfcol_99` AS `bfcol_111` - FROM `bfcte_16` -), `bfcte_19` AS ( - SELECT - `R_REGIONKEY` AS `bfcol_112`, - `R_NAME` AS `bfcol_113` - FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_22` AS ( + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_64`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_64`, 1) = COALESCE(`bfcol_0`, 1) + WHERE + `bfcol_56` = 15 AND ENDS_WITH(`bfcol_55`, 'BRASS') AND `bfcol_1` = 'EUROPE' +), `bfcte_15` AS ( SELECT - * - FROM `bfcte_18` - INNER JOIN `bfcte_19` - ON COALESCE(`bfcol_111`, 0) = COALESCE(`bfcol_112`, 0) - AND COALESCE(`bfcol_111`, 1) = COALESCE(`bfcol_112`, 1) -), `bfcte_27` AS ( + `bfcol_65`, + `bfcol_66`, + `bfcol_67`, + `bfcol_68`, + `bfcol_69`, + `bfcol_0`, + `bfcol_1`, + `bfcol_65` AS `bfcol_99`, + `bfcol_66` AS `bfcol_100`, + `bfcol_68` AS `bfcol_101`, + `bfcol_1` AS `bfcol_102`, + `bfcol_67` = 15 AS `bfcol_103`, + `bfcol_65` AS `bfcol_147`, + `bfcol_68` AS `bfcol_148`, + `bfcol_1` AS `bfcol_149`, + ENDS_WITH(`bfcol_66`, 'BRASS') AS `bfcol_150`, + `bfcol_65` AS `bfcol_189`, + `bfcol_68` AS `bfcol_190`, + `bfcol_1` = 'EUROPE' AS `bfcol_191` + FROM `bfcte_13` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_69`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_69`, 1) = COALESCE(`bfcol_0`, 1) + WHERE + `bfcol_67` = 15 AND ENDS_WITH(`bfcol_66`, 'BRASS') AND `bfcol_1` = 'EUROPE' +), `bfcte_16` AS ( SELECT - `bfcol_100` AS `bfcol_213`, - `bfcol_101` AS `bfcol_214`, - `bfcol_104` AS `bfcol_215`, - `bfcol_105` AS `bfcol_216`, - `bfcol_106` AS `bfcol_217`, - `bfcol_107` AS `bfcol_218`, - `bfcol_108` AS `bfcol_219`, - `bfcol_109` AS `bfcol_220`, - `bfcol_110` AS `bfcol_221` - FROM `bfcte_22` + `bfcol_189`, + MIN(`bfcol_190`) AS `bfcol_216` + FROM `bfcte_15` WHERE - `bfcol_103` = 15 AND ENDS_WITH(`bfcol_102`, 'BRASS') AND `bfcol_113` = 'EUROPE' -), `bfcte_28` AS ( + NOT `bfcol_189` IS NULL + GROUP BY + `bfcol_189` +), `bfcte_17` AS ( SELECT - * - FROM `bfcte_26` - INNER JOIN `bfcte_27` - ON COALESCE(`bfcol_63`, 0) = COALESCE(`bfcol_213`, 0) - AND COALESCE(`bfcol_63`, 1) = COALESCE(`bfcol_213`, 1) - AND IF(IS_NAN(`bfcol_65`), 2, COALESCE(`bfcol_65`, 0)) = IF(IS_NAN(`bfcol_215`), 2, COALESCE(`bfcol_215`, 0)) - AND IF(IS_NAN(`bfcol_65`), 3, COALESCE(`bfcol_65`, 1)) = IF(IS_NAN(`bfcol_215`), 3, COALESCE(`bfcol_215`, 1)) + `bfcol_189` AS `bfcol_214`, + `bfcol_216` + FROM `bfcte_16` ) SELECT - `bfcol_219` AS `S_ACCTBAL`, - `bfcol_216` AS `S_NAME`, - `bfcol_221` AS `N_NAME`, - `bfcol_63` AS `P_PARTKEY`, - `bfcol_214` AS `P_MFGR`, - `bfcol_217` AS `S_ADDRESS`, - `bfcol_218` AS `S_PHONE`, - `bfcol_220` AS `S_COMMENT` -FROM `bfcte_28` + `bfcol_211` AS `S_ACCTBAL`, + `bfcol_208` AS `S_NAME`, + `bfcol_213` AS `N_NAME`, + `bfcol_214` AS `P_PARTKEY`, + `bfcol_206` AS `P_MFGR`, + `bfcol_209` AS `S_ADDRESS`, + `bfcol_210` AS `S_PHONE`, + `bfcol_212` AS `S_COMMENT` +FROM `bfcte_17` +INNER JOIN `bfcte_14` + ON COALESCE(`bfcol_214`, 0) = COALESCE(`bfcol_205`, 0) + AND COALESCE(`bfcol_214`, 1) = COALESCE(`bfcol_205`, 1) + AND IF(IS_NAN(`bfcol_216`), 2.0, COALESCE(`bfcol_216`, 0.0)) = IF(IS_NAN(`bfcol_207`), 2.0, COALESCE(`bfcol_207`, 0.0)) + AND IF(IS_NAN(`bfcol_216`), 3, COALESCE(`bfcol_216`, 1.0)) = IF(IS_NAN(`bfcol_207`), 3, COALESCE(`bfcol_207`, 1.0)) ORDER BY - `bfcol_219` DESC, - `bfcol_221` ASC NULLS LAST, - `bfcol_216` ASC NULLS LAST, - `bfcol_63` ASC NULLS LAST + `bfcol_211` DESC, + `bfcol_213` ASC NULLS LAST, + `bfcol_208` ASC NULLS LAST, + `bfcol_214` ASC NULLS LAST LIMIT 100 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql index d1a28cc4feb..8c9cd9bb763 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/20/out.sql @@ -1,44 +1,33 @@ -WITH `bfcte_2` AS ( +WITH `bfcte_0` AS ( SELECT - `S_SUPPKEY` AS `bfcol_0`, - `S_NAME` AS `bfcol_1`, - `S_ADDRESS` AS `bfcol_2`, - `S_NATIONKEY` AS `bfcol_3` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_3` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_10` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `P_PARTKEY`, + `P_NAME`, + `P_PARTKEY` AS `bfcol_15`, + STARTS_WITH(`P_NAME`, 'forest') AS `bfcol_16` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE - `N_NAME` = 'CANADA' -), `bfcte_6` AS ( - SELECT - * - FROM `bfcte_2` - INNER JOIN `bfcte_3` - ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_10`, 0) - AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_10`, 1) -), `bfcte_14` AS ( - SELECT - `bfcol_0` AS `bfcol_11`, - `bfcol_1` AS `bfcol_12`, - `bfcol_2` AS `bfcol_13` - FROM `bfcte_6` + STARTS_WITH(`P_NAME`, 'forest') ), `bfcte_1` AS ( + SELECT + `PS_PARTKEY` AS `bfcol_2`, + `PS_SUPPKEY` AS `bfcol_3`, + `PS_AVAILQTY` AS `bfcol_4` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( SELECT `L_PARTKEY`, `L_SUPPKEY`, `L_QUANTITY`, `L_SHIPDATE`, - `L_PARTKEY` AS `bfcol_18`, - `L_SUPPKEY` AS `bfcol_19`, - `L_QUANTITY` AS `bfcol_20`, + `L_PARTKEY` AS `bfcol_17`, + `L_SUPPKEY` AS `bfcol_18`, + `L_QUANTITY` AS `bfcol_19`, ( `L_SHIPDATE` >= CAST('1994-01-01' AS DATE) ) AND ( `L_SHIPDATE` < CAST('1995-01-01' AS DATE) - ) AS `bfcol_21` + ) AS `bfcol_20` FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE ( @@ -47,115 +36,116 @@ WITH `bfcte_2` AS ( AND ( `L_SHIPDATE` < CAST('1995-01-01' AS DATE) ) -), `bfcte_5` AS ( +), `bfcte_3` AS ( SELECT - `bfcol_18`, - `bfcol_19`, - COALESCE(SUM(`bfcol_20`), 0) AS `bfcol_29` - FROM `bfcte_1` + `N_NATIONKEY` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE - NOT `bfcol_18` IS NULL AND NOT `bfcol_19` IS NULL - GROUP BY - `bfcol_18`, - `bfcol_19` -), `bfcte_9` AS ( + `N_NAME` = 'CANADA' +), `bfcte_4` AS ( SELECT - `bfcol_18` AS `bfcol_33`, - `bfcol_19` AS `bfcol_34`, - `bfcol_29` * 0.5 AS `bfcol_35` - FROM `bfcte_5` -), `bfcte_7` AS ( + `S_SUPPKEY` AS `bfcol_11`, + `S_NAME` AS `bfcol_12`, + `S_ADDRESS` AS `bfcol_13`, + `S_NATIONKEY` AS `bfcol_14` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( SELECT - `PS_PARTKEY` AS `bfcol_36`, - `PS_SUPPKEY` AS `bfcol_37`, - `PS_AVAILQTY` AS `bfcol_38` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_0` AS ( + `bfcol_15` + FROM `bfcte_0` + GROUP BY + `bfcol_15` +), `bfcte_6` AS ( SELECT - `P_PARTKEY`, - `P_NAME`, - `P_PARTKEY` AS `bfcol_41`, - STARTS_WITH(`P_NAME`, 'forest') AS `bfcol_42` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `bfcol_17`, + `bfcol_18`, + COALESCE(SUM(`bfcol_19`), 0) AS `bfcol_36` + FROM `bfcte_2` WHERE - STARTS_WITH(`P_NAME`, 'forest') -), `bfcte_4` AS ( - SELECT - `bfcol_41` - FROM `bfcte_0` + NOT `bfcol_17` IS NULL AND NOT `bfcol_18` IS NULL GROUP BY - `bfcol_41` + `bfcol_17`, + `bfcol_18` +), `bfcte_7` AS ( + SELECT + `bfcol_11` AS `bfcol_41`, + `bfcol_12` AS `bfcol_42`, + `bfcol_13` AS `bfcol_43` + FROM `bfcte_4` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_14`, 0) = COALESCE(`bfcol_35`, 0) + AND COALESCE(`bfcol_14`, 1) = COALESCE(`bfcol_35`, 1) ), `bfcte_8` AS ( SELECT - `bfcte_7`.*, - EXISTS( - SELECT - 1 - FROM ( - SELECT - `bfcol_41` AS `bfcol_45` - FROM `bfcte_4` - ) AS `bft_5` - WHERE - COALESCE(`bfcte_7`.`bfcol_36`, 0) = COALESCE(`bft_5`.`bfcol_45`, 0) - AND COALESCE(`bfcte_7`.`bfcol_36`, 1) = COALESCE(`bft_5`.`bfcol_45`, 1) - ) AS `bfcol_46` - FROM `bfcte_7` + `bfcol_15` AS `bfcol_31` + FROM `bfcte_5` +), `bfcte_9` AS ( + SELECT + `bfcol_17` AS `bfcol_48`, + `bfcol_18` AS `bfcol_49`, + `bfcol_36` * 0.5 AS `bfcol_50` + FROM `bfcte_6` ), `bfcte_10` AS ( SELECT - `bfcol_36` AS `bfcol_51`, - `bfcol_37` AS `bfcol_52`, - `bfcol_38` AS `bfcol_53` - FROM `bfcte_8` - WHERE - `bfcol_46` + *, + STRUCT(COALESCE(`bfcol_2`, 0) AS `bfpart1`, COALESCE(`bfcol_2`, 1) AS `bfpart2`) IN ( + ( + SELECT + STRUCT(COALESCE(`bfcol_31`, 0) AS `bfpart1`, COALESCE(`bfcol_31`, 1) AS `bfpart2`) + FROM `bfcte_8` + ) + ) AS `bfcol_37` + FROM `bfcte_1` ), `bfcte_11` AS ( SELECT - * - FROM `bfcte_9` - INNER JOIN `bfcte_10` - ON `bfcol_34` = `bfcol_52` AND `bfcol_33` = `bfcol_51` + `bfcol_2` AS `bfcol_51`, + `bfcol_3` AS `bfcol_52`, + `bfcol_4` AS `bfcol_53` + FROM `bfcte_10` + WHERE + `bfcol_37` ), `bfcte_12` AS ( SELECT - `bfcol_33`, - `bfcol_34`, - `bfcol_35`, + `bfcol_48`, + `bfcol_49`, + `bfcol_50`, `bfcol_51`, `bfcol_52`, `bfcol_53`, `bfcol_52` AS `bfcol_57`, - `bfcol_53` > `bfcol_35` AS `bfcol_58` - FROM `bfcte_11` + `bfcol_53` > `bfcol_50` AS `bfcol_58` + FROM `bfcte_9` + INNER JOIN `bfcte_11` + ON `bfcol_49` = `bfcol_52` AND `bfcol_48` = `bfcol_51` WHERE - `bfcol_53` > `bfcol_35` + `bfcol_53` > `bfcol_50` ), `bfcte_13` AS ( SELECT `bfcol_57` FROM `bfcte_12` GROUP BY `bfcol_57` +), `bfcte_14` AS ( + SELECT + `bfcol_57` AS `bfcol_61` + FROM `bfcte_13` ), `bfcte_15` AS ( SELECT - `bfcte_14`.*, - EXISTS( - SELECT - 1 - FROM ( + *, + STRUCT(COALESCE(`bfcol_41`, 0) AS `bfpart1`, COALESCE(`bfcol_41`, 1) AS `bfpart2`) IN ( + ( SELECT - `bfcol_57` AS `bfcol_61` - FROM `bfcte_13` - ) AS `bft_6` - WHERE - COALESCE(`bfcte_14`.`bfcol_11`, 0) = COALESCE(`bft_6`.`bfcol_61`, 0) - AND COALESCE(`bfcte_14`.`bfcol_11`, 1) = COALESCE(`bft_6`.`bfcol_61`, 1) + STRUCT(COALESCE(`bfcol_61`, 0) AS `bfpart1`, COALESCE(`bfcol_61`, 1) AS `bfpart2`) + FROM `bfcte_14` + ) ) AS `bfcol_62` - FROM `bfcte_14` + FROM `bfcte_7` ) SELECT - `bfcol_12` AS `S_NAME`, - `bfcol_13` AS `S_ADDRESS` + `bfcol_42` AS `S_NAME`, + `bfcol_43` AS `S_ADDRESS` FROM `bfcte_15` WHERE `bfcol_62` ORDER BY - `bfcol_12` ASC NULLS LAST \ No newline at end of file + `bfcol_42` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql index 5e55fd0f156..93a44e529d9 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/21/out.sql @@ -1,191 +1,148 @@ -WITH `bfcte_1` AS ( +WITH `bfcte_0` AS ( SELECT - `L_ORDERKEY` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_3` AS ( + `O_ORDERKEY` AS `bfcol_0`, + `O_ORDERSTATUS` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_1` AS ( SELECT - `L_ORDERKEY`, - COUNT(1) AS `bfcol_1` - FROM `bfcte_1` - WHERE - NOT `L_ORDERKEY` IS NULL - GROUP BY - `L_ORDERKEY` -), `bfcte_6` AS ( + `N_NATIONKEY` AS `bfcol_2`, + `N_NAME` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( SELECT - `L_ORDERKEY` AS `bfcol_6` - FROM `bfcte_3` - WHERE - `bfcol_1` > 1 -), `bfcte_7` AS ( + `S_SUPPKEY` AS `bfcol_4`, + `S_NAME` AS `bfcol_5`, + `S_NATIONKEY` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_3` AS ( SELECT - `L_ORDERKEY` AS `bfcol_14` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_ORDERKEY` AS `bfcol_30`, + `L_SUPPKEY` AS `bfcol_31` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE `L_RECEIPTDATE` > `L_COMMITDATE` -), `bfcte_9` AS ( - SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON `bfcol_6` = `bfcol_14` -), `bfcte_10` AS ( - SELECT - `bfcol_6`, - COUNT(1) AS `bfcol_16` - FROM `bfcte_9` - GROUP BY - `bfcol_6` -), `bfcte_11` AS ( - SELECT - `bfcol_6` AS `bfcol_15`, - `bfcol_16` - FROM `bfcte_10` -), `bfcte_0` AS ( +), `bfcte_4` AS ( SELECT `L_ORDERKEY` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_2` AS ( + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_5` AS ( + SELECT + `L_ORDERKEY` AS `bfcol_32` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `L_RECEIPTDATE` > `L_COMMITDATE` +), `bfcte_6` AS ( SELECT `L_ORDERKEY`, COUNT(1) AS `bfcol_18` - FROM `bfcte_0` + FROM `bfcte_4` WHERE NOT `L_ORDERKEY` IS NULL GROUP BY `L_ORDERKEY` -), `bfcte_4` AS ( +), `bfcte_7` AS ( SELECT - `L_ORDERKEY` AS `bfcol_23` - FROM `bfcte_2` + `L_ORDERKEY` AS `bfcol_33` + FROM `bfcte_6` WHERE `bfcol_18` > 1 -), `bfcte_5` AS ( - SELECT - `L_ORDERKEY` AS `bfcol_34`, - `L_SUPPKEY` AS `bfcol_35` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - `L_RECEIPTDATE` > `L_COMMITDATE` ), `bfcte_8` AS ( SELECT - * - FROM `bfcte_4` + `bfcol_33` AS `bfcol_34`, + `bfcol_31` AS `bfcol_35` + FROM `bfcte_7` + INNER JOIN `bfcte_3` + ON `bfcol_33` = `bfcol_30` +), `bfcte_9` AS ( + SELECT + `bfcol_33`, + COUNT(1) AS `bfcol_37` + FROM `bfcte_7` INNER JOIN `bfcte_5` - ON `bfcol_23` = `bfcol_34` + ON `bfcol_33` = `bfcol_32` + GROUP BY + `bfcol_33` +), `bfcte_10` AS ( + SELECT + `bfcol_33` AS `bfcol_36`, + `bfcol_37` + FROM `bfcte_9` +), `bfcte_11` AS ( + SELECT + `bfcol_36` AS `bfcol_38`, + `bfcol_37` AS `bfcol_39`, + `bfcol_35` AS `bfcol_40` + FROM `bfcte_10` + INNER JOIN `bfcte_8` + ON `bfcol_36` = `bfcol_34` ), `bfcte_12` AS ( SELECT - `bfcol_23` AS `bfcol_36`, - `bfcol_35` AS `bfcol_37` - FROM `bfcte_8` + `bfcol_38` AS `bfcol_41`, + `bfcol_39` AS `bfcol_42`, + `bfcol_5` AS `bfcol_43`, + `bfcol_6` AS `bfcol_44` + FROM `bfcte_11` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_40`, 0) = COALESCE(`bfcol_4`, 0) + AND COALESCE(`bfcol_40`, 1) = COALESCE(`bfcol_4`, 1) ), `bfcte_13` AS ( SELECT - * - FROM `bfcte_11` - INNER JOIN `bfcte_12` - ON `bfcol_15` = `bfcol_36` + `bfcol_41` AS `bfcol_45`, + `bfcol_42` AS `bfcol_46`, + `bfcol_43` AS `bfcol_47`, + `bfcol_3` AS `bfcol_48` + FROM `bfcte_12` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_44`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_44`, 1) = COALESCE(`bfcol_2`, 1) ), `bfcte_14` AS ( SELECT - `bfcol_15` AS `bfcol_38`, - `bfcol_16` AS `bfcol_39`, - `bfcol_37` AS `bfcol_40` - FROM `bfcte_13` -), `bfcte_15` AS ( - SELECT - `S_SUPPKEY` AS `bfcol_41`, - `S_NAME` AS `bfcol_42`, - `S_NATIONKEY` AS `bfcol_43` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_16` AS ( - SELECT - * - FROM `bfcte_14` - INNER JOIN `bfcte_15` - ON COALESCE(`bfcol_40`, 0) = COALESCE(`bfcol_41`, 0) - AND COALESCE(`bfcol_40`, 1) = COALESCE(`bfcol_41`, 1) -), `bfcte_17` AS ( - SELECT - `bfcol_38` AS `bfcol_44`, - `bfcol_39` AS `bfcol_45`, - `bfcol_42` AS `bfcol_46`, - `bfcol_43` AS `bfcol_47` - FROM `bfcte_16` -), `bfcte_18` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_48`, - `N_NAME` AS `bfcol_49` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_19` AS ( - SELECT - * - FROM `bfcte_17` - INNER JOIN `bfcte_18` - ON COALESCE(`bfcol_47`, 0) = COALESCE(`bfcol_48`, 0) - AND COALESCE(`bfcol_47`, 1) = COALESCE(`bfcol_48`, 1) -), `bfcte_20` AS ( - SELECT - `bfcol_44` AS `bfcol_50`, - `bfcol_45` AS `bfcol_51`, - `bfcol_46` AS `bfcol_52`, - `bfcol_49` AS `bfcol_53` - FROM `bfcte_19` -), `bfcte_21` AS ( - SELECT - `O_ORDERKEY` AS `bfcol_54`, - `O_ORDERSTATUS` AS `bfcol_55` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_22` AS ( - SELECT - * - FROM `bfcte_20` - INNER JOIN `bfcte_21` - ON `bfcol_50` = `bfcol_54` -), `bfcte_23` AS ( - SELECT - `bfcol_50`, - `bfcol_51`, - `bfcol_52`, - `bfcol_53`, - `bfcol_54`, - `bfcol_55`, - `bfcol_52` AS `bfcol_60`, + `bfcol_45`, + `bfcol_46`, + `bfcol_47`, + `bfcol_48`, + `bfcol_0`, + `bfcol_1`, + `bfcol_47` AS `bfcol_53`, ( ( - `bfcol_51` = 1 + `bfcol_46` = 1 ) AND ( - `bfcol_53` = 'SAUDI ARABIA' + `bfcol_48` = 'SAUDI ARABIA' ) ) AND ( - `bfcol_55` = 'F' - ) AS `bfcol_61` - FROM `bfcte_22` + `bfcol_1` = 'F' + ) AS `bfcol_54` + FROM `bfcte_13` + INNER JOIN `bfcte_0` + ON `bfcol_45` = `bfcol_0` WHERE ( ( - `bfcol_51` = 1 + `bfcol_46` = 1 ) AND ( - `bfcol_53` = 'SAUDI ARABIA' + `bfcol_48` = 'SAUDI ARABIA' ) ) AND ( - `bfcol_55` = 'F' + `bfcol_1` = 'F' ) -), `bfcte_24` AS ( +), `bfcte_15` AS ( SELECT - `bfcol_60`, - COUNT(1) AS `bfcol_65` - FROM `bfcte_23` + `bfcol_53`, + COUNT(1) AS `bfcol_58` + FROM `bfcte_14` WHERE - NOT `bfcol_60` IS NULL + NOT `bfcol_53` IS NULL GROUP BY - `bfcol_60` + `bfcol_53` ) SELECT - `bfcol_60` AS `S_NAME`, - `bfcol_65` AS `NUMWAIT` -FROM `bfcte_24` + `bfcol_53` AS `S_NAME`, + `bfcol_58` AS `NUMWAIT` +FROM `bfcte_15` ORDER BY - `bfcol_65` DESC, - `bfcol_60` ASC NULLS LAST + `bfcol_58` DESC, + `bfcol_53` ASC NULLS LAST LIMIT 100 \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql index ad7dc867f58..87ca2d8d5e0 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/22/out.sql @@ -1,32 +1,25 @@ -WITH `bfcte_9` AS ( - SELECT - `C_CUSTKEY` AS `bfcol_17`, - `C_ACCTBAL` AS `bfcol_18`, - SUBSTRING(`C_PHONE`, 1, 2) AS `bfcol_19` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - COALESCE( - COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), - FALSE - ) -), `bfcte_4` AS ( +WITH `bfcte_0` AS ( SELECT * - FROM UNNEST(ARRAY>[STRUCT('C_ACCTBAL', 0, 0)]) + FROM UNNEST(ARRAY>[STRUCT('C_ACCTBAL', 0, 0)]) ), `bfcte_1` AS ( + SELECT + `O_CUSTKEY` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_2` AS ( SELECT `C_PHONE`, `C_ACCTBAL`, - `C_ACCTBAL` AS `bfcol_25`, - SUBSTRING(`C_PHONE`, 1, 2) AS `bfcol_26`, - `C_ACCTBAL` AS `bfcol_29`, + `C_ACCTBAL` AS `bfcol_9`, + SUBSTRING(`C_PHONE`, 1, 2) AS `bfcol_10`, + `C_ACCTBAL` AS `bfcol_19`, COALESCE( COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), FALSE - ) AS `bfcol_30`, - `C_ACCTBAL` AS `bfcol_34`, - `C_ACCTBAL` > 0.0 AS `bfcol_35` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + ) AS `bfcol_20`, + `C_ACCTBAL` AS `bfcol_35`, + `C_ACCTBAL` > 0.0 AS `bfcol_36` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE COALESCE( COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), @@ -35,111 +28,109 @@ WITH `bfcte_9` AS ( AND `C_ACCTBAL` > 0.0 ), `bfcte_3` AS ( SELECT - AVG(`bfcol_34`) AS `bfcol_39` + `C_CUSTKEY` AS `bfcol_32`, + `C_ACCTBAL` AS `bfcol_33`, + SUBSTRING(`C_PHONE`, 1, 2) AS `bfcol_34` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + COALESCE( + COALESCE(SUBSTRING(`C_PHONE`, 1, 2) IN ('13', '31', '23', '29', '30', '18', '17'), FALSE), + FALSE + ) +), `bfcte_4` AS ( + SELECT + `O_CUSTKEY` FROM `bfcte_1` + GROUP BY + `O_CUSTKEY` ), `bfcte_5` AS ( SELECT - `bfcol_39`, - 0 AS `bfcol_40` - FROM `bfcte_3` + AVG(`bfcol_35`) AS `bfcol_40` + FROM `bfcte_2` ), `bfcte_6` AS ( SELECT - * + `O_CUSTKEY` AS `bfcol_0` FROM `bfcte_4` - CROSS JOIN `bfcte_5` ), `bfcte_7` AS ( SELECT - `bfcol_20`, - `bfcol_21`, - `bfcol_22`, - `bfcol_39`, `bfcol_40`, - CASE WHEN `bfcol_22` = 0 THEN `bfcol_39` END AS `bfcol_41`, - IF(`bfcol_40` = 0, CASE WHEN `bfcol_22` = 0 THEN `bfcol_39` END, NULL) AS `bfcol_46` - FROM `bfcte_6` + 0 AS `bfcol_41` + FROM `bfcte_5` ), `bfcte_8` AS ( SELECT - `bfcol_20`, - `bfcol_21`, - ANY_VALUE(`bfcol_46`) AS `bfcol_50` - FROM `bfcte_7` + `bfcol_3`, + `bfcol_4`, + `bfcol_5`, + `bfcol_40`, + `bfcol_41`, + CASE WHEN `bfcol_5` = 0 THEN `bfcol_40` END AS `bfcol_42`, + IF(`bfcol_41` = 0, CASE WHEN `bfcol_5` = 0 THEN `bfcol_40` END, NULL) AS `bfcol_47` + FROM `bfcte_0` + CROSS JOIN `bfcte_7` +), `bfcte_9` AS ( + SELECT + `bfcol_3`, + `bfcol_4`, + ANY_VALUE(`bfcol_47`) AS `bfcol_51` + FROM `bfcte_8` WHERE - NOT `bfcol_20` IS NULL AND NOT `bfcol_21` IS NULL + NOT `bfcol_3` IS NULL AND NOT `bfcol_4` IS NULL GROUP BY - `bfcol_20`, - `bfcol_21` + `bfcol_3`, + `bfcol_4` ), `bfcte_10` AS ( SELECT - `bfcol_50` AS `bfcol_51` - FROM `bfcte_8` + `bfcol_51` AS `bfcol_52` + FROM `bfcte_9` ), `bfcte_11` AS ( SELECT - * - FROM `bfcte_9` + `bfcol_32` AS `bfcol_61`, + `bfcol_33` AS `bfcol_62`, + `bfcol_34` AS `bfcol_63` + FROM `bfcte_3` CROSS JOIN `bfcte_10` -), `bfcte_12` AS ( - SELECT - `bfcol_17` AS `bfcol_60`, - `bfcol_18` AS `bfcol_61`, - `bfcol_19` AS `bfcol_62` - FROM `bfcte_11` WHERE - `bfcol_18` > `bfcol_51` -), `bfcte_0` AS ( - SELECT - `O_CUSTKEY` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_2` AS ( - SELECT - `O_CUSTKEY` - FROM `bfcte_0` - GROUP BY - `O_CUSTKEY` -), `bfcte_13` AS ( + `bfcol_33` > `bfcol_52` +), `bfcte_12` AS ( SELECT - `bfcte_12`.*, - EXISTS( - SELECT - 1 - FROM ( + *, + STRUCT(COALESCE(`bfcol_61`, 0) AS `bfpart1`, COALESCE(`bfcol_61`, 1) AS `bfpart2`) IN ( + ( SELECT - `O_CUSTKEY` AS `bfcol_63` - FROM `bfcte_2` - ) AS `bft_2` - WHERE - COALESCE(`bfcte_12`.`bfcol_60`, 0) = COALESCE(`bft_2`.`bfcol_63`, 0) - AND COALESCE(`bfcte_12`.`bfcol_60`, 1) = COALESCE(`bft_2`.`bfcol_63`, 1) + STRUCT(COALESCE(`bfcol_0`, 0) AS `bfpart1`, COALESCE(`bfcol_0`, 1) AS `bfpart2`) + FROM `bfcte_6` + ) ) AS `bfcol_64` - FROM `bfcte_12` -), `bfcte_14` AS ( + FROM `bfcte_11` +), `bfcte_13` AS ( SELECT - `bfcol_60`, `bfcol_61`, `bfcol_62`, + `bfcol_63`, `bfcol_64`, NOT ( `bfcol_64` ) AS `bfcol_65` - FROM `bfcte_13` + FROM `bfcte_12` WHERE NOT ( `bfcol_64` ) -), `bfcte_15` AS ( +), `bfcte_14` AS ( SELECT - `bfcol_62`, - COUNT(`bfcol_60`) AS `bfcol_73`, - COALESCE(SUM(`bfcol_61`), 0) AS `bfcol_74` - FROM `bfcte_14` + `bfcol_63`, + COUNT(`bfcol_61`) AS `bfcol_73`, + COALESCE(SUM(`bfcol_62`), 0) AS `bfcol_74` + FROM `bfcte_13` WHERE - NOT `bfcol_62` IS NULL + NOT `bfcol_63` IS NULL GROUP BY - `bfcol_62` + `bfcol_63` ) SELECT - `bfcol_62` AS `CNTRYCODE`, + `bfcol_63` AS `CNTRYCODE`, `bfcol_73` AS `NUMCUST`, `bfcol_74` AS `TOTACCTBAL` -FROM `bfcte_15` +FROM `bfcte_14` ORDER BY - `bfcol_62` ASC NULLS LAST \ No newline at end of file + `bfcol_63` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql index 45985794a2c..0d1365d76d1 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/3/out.sql @@ -1,52 +1,41 @@ -WITH `bfcte_3` AS ( +WITH `bfcte_0` AS ( SELECT - `C_CUSTKEY` AS `bfcol_6` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `O_ORDERKEY` AS `bfcol_32`, + `O_CUSTKEY` AS `bfcol_33`, + `O_ORDERDATE` AS `bfcol_34`, + `O_SHIPPRIORITY` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE - `C_MKTSEGMENT` = 'BUILDING' -), `bfcte_0` AS ( + `O_ORDERDATE` < CAST('1995-03-15' AS DATE) +), `bfcte_1` AS ( SELECT - `L_ORDERKEY` AS `bfcol_19`, - `L_EXTENDEDPRICE` AS `bfcol_20`, - `L_DISCOUNT` AS `bfcol_21` + `L_ORDERKEY` AS `bfcol_36`, + `L_EXTENDEDPRICE` AS `bfcol_37`, + `L_DISCOUNT` AS `bfcol_38` FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE `L_SHIPDATE` > CAST('1995-03-15' AS DATE) -), `bfcte_1` AS ( +), `bfcte_2` AS ( SELECT - `O_ORDERKEY` AS `bfcol_36`, - `O_CUSTKEY` AS `bfcol_37`, - `O_ORDERDATE` AS `bfcol_38`, - `O_SHIPPRIORITY` AS `bfcol_39` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `C_CUSTKEY` AS `bfcol_39` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE - `O_ORDERDATE` < CAST('1995-03-15' AS DATE) -), `bfcte_2` AS ( + `C_MKTSEGMENT` = 'BUILDING' +), `bfcte_3` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_19`, 0) = COALESCE(`bfcol_36`, 0) - AND COALESCE(`bfcol_19`, 1) = COALESCE(`bfcol_36`, 1) + `bfcol_37` AS `bfcol_40`, + `bfcol_38` AS `bfcol_41`, + `bfcol_32` AS `bfcol_42`, + `bfcol_33` AS `bfcol_43`, + `bfcol_34` AS `bfcol_44`, + `bfcol_35` AS `bfcol_45` + FROM `bfcte_1` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_36`, 0) = COALESCE(`bfcol_32`, 0) + AND COALESCE(`bfcol_36`, 1) = COALESCE(`bfcol_32`, 1) ), `bfcte_4` AS ( SELECT - `bfcol_20` AS `bfcol_40`, - `bfcol_21` AS `bfcol_41`, - `bfcol_36` AS `bfcol_42`, - `bfcol_37` AS `bfcol_43`, - `bfcol_38` AS `bfcol_44`, - `bfcol_39` AS `bfcol_45` - FROM `bfcte_2` -), `bfcte_5` AS ( - SELECT - * - FROM `bfcte_3` - INNER JOIN `bfcte_4` - ON COALESCE(`bfcol_6`, 0) = COALESCE(`bfcol_43`, 0) - AND COALESCE(`bfcol_6`, 1) = COALESCE(`bfcol_43`, 1) -), `bfcte_6` AS ( - SELECT - `bfcol_6`, + `bfcol_39`, `bfcol_40`, `bfcol_41`, `bfcol_42`, @@ -59,14 +48,17 @@ WITH `bfcte_3` AS ( `bfcol_40` * ( 1 - `bfcol_41` ) AS `bfcol_54` - FROM `bfcte_5` -), `bfcte_7` AS ( + FROM `bfcte_2` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_39`, 0) = COALESCE(`bfcol_43`, 0) + AND COALESCE(`bfcol_39`, 1) = COALESCE(`bfcol_43`, 1) +), `bfcte_5` AS ( SELECT `bfcol_51`, `bfcol_52`, `bfcol_53`, COALESCE(SUM(`bfcol_54`), 0) AS `bfcol_59` - FROM `bfcte_6` + FROM `bfcte_4` WHERE NOT `bfcol_51` IS NULL AND NOT `bfcol_52` IS NULL AND NOT `bfcol_53` IS NULL GROUP BY @@ -79,7 +71,7 @@ SELECT `bfcol_59` AS `REVENUE`, `bfcol_52` AS `O_ORDERDATE`, `bfcol_53` AS `O_SHIPPRIORITY` -FROM `bfcte_7` +FROM `bfcte_5` ORDER BY `bfcol_59` DESC, `bfcol_52` ASC NULLS LAST, diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql index e4b28e82d93..9eb0259be50 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/4/out.sql @@ -1,74 +1,70 @@ WITH `bfcte_0` AS ( SELECT - `L_ORDERKEY` AS `bfcol_0`, - `L_COMMITDATE` AS `bfcol_1`, - `L_RECEIPTDATE` AS `bfcol_2` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `O_ORDERKEY` AS `bfcol_0`, + `O_ORDERDATE` AS `bfcol_1`, + `O_ORDERPRIORITY` AS `bfcol_2` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `O_ORDERKEY` AS `bfcol_3`, - `O_ORDERDATE` AS `bfcol_4`, - `O_ORDERPRIORITY` AS `bfcol_5` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_ORDERKEY` AS `bfcol_3`, + `L_COMMITDATE` AS `bfcol_4`, + `L_RECEIPTDATE` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) -), `bfcte_3` AS ( - SELECT - `bfcol_0`, - `bfcol_1`, - `bfcol_2`, `bfcol_3`, `bfcol_4`, `bfcol_5`, - `bfcol_0` AS `bfcol_11`, - `bfcol_1` AS `bfcol_12`, - `bfcol_2` AS `bfcol_13`, - `bfcol_5` AS `bfcol_14`, + `bfcol_0`, + `bfcol_1`, + `bfcol_2`, + `bfcol_3` AS `bfcol_11`, + `bfcol_4` AS `bfcol_12`, + `bfcol_5` AS `bfcol_13`, + `bfcol_2` AS `bfcol_14`, ( - `bfcol_4` >= CAST('1993-07-01' AS DATE) + `bfcol_1` >= CAST('1993-07-01' AS DATE) ) AND ( - `bfcol_4` < CAST('1993-10-01' AS DATE) + `bfcol_1` < CAST('1993-10-01' AS DATE) ) AS `bfcol_15`, - `bfcol_0` AS `bfcol_25`, - `bfcol_5` AS `bfcol_26`, - `bfcol_1` < `bfcol_2` AS `bfcol_27` - FROM `bfcte_2` + `bfcol_3` AS `bfcol_25`, + `bfcol_2` AS `bfcol_26`, + `bfcol_4` < `bfcol_5` AS `bfcol_27` + FROM `bfcte_1` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_3`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_3`, 1) = COALESCE(`bfcol_0`, 1) WHERE ( - `bfcol_4` >= CAST('1993-07-01' AS DATE) + `bfcol_1` >= CAST('1993-07-01' AS DATE) ) AND ( - `bfcol_4` < CAST('1993-10-01' AS DATE) + `bfcol_1` < CAST('1993-10-01' AS DATE) ) - AND `bfcol_1` < `bfcol_2` -), `bfcte_4` AS ( + AND `bfcol_4` < `bfcol_5` +), `bfcte_3` AS ( SELECT `bfcol_26`, `bfcol_25`, COUNT(1) AS `bfcol_33` - FROM `bfcte_3` + FROM `bfcte_2` WHERE NOT `bfcol_26` IS NULL AND NOT `bfcol_25` IS NULL GROUP BY `bfcol_26`, `bfcol_25` -), `bfcte_5` AS ( +), `bfcte_4` AS ( SELECT `bfcol_26`, COUNT(`bfcol_25`) AS `bfcol_36` - FROM `bfcte_4` + FROM `bfcte_3` GROUP BY `bfcol_26` ) SELECT `bfcol_26` AS `O_ORDERPRIORITY`, `bfcol_36` AS `ORDER_COUNT` -FROM `bfcte_5` +FROM `bfcte_4` ORDER BY `bfcol_26` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql index 54764f837aa..34974b36d8f 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/5/out.sql @@ -1,120 +1,100 @@ -WITH `bfcte_9` AS ( +WITH `bfcte_0` AS ( SELECT - `L_ORDERKEY` AS `bfcol_7`, - `L_SUPPKEY` AS `bfcol_8`, - `L_EXTENDEDPRICE` * ( - 1.0 - `L_DISCOUNT` - ) AS `bfcol_9` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_6` AS ( - SELECT - `O_ORDERKEY` AS `bfcol_19`, - `O_CUSTKEY` AS `bfcol_20` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - ( - `O_ORDERDATE` >= CAST('1994-01-01' AS DATE) - ) - AND ( - `O_ORDERDATE` < CAST('1995-01-01' AS DATE) - ) -), `bfcte_0` AS ( - SELECT - `R_REGIONKEY` AS `bfcol_27` - FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - `R_NAME` = 'ASIA' + `S_SUPPKEY` AS `bfcol_0`, + `S_NATIONKEY` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `N_NATIONKEY` AS `bfcol_28`, - `N_NAME` AS `bfcol_29`, - `N_REGIONKEY` AS `bfcol_30` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `C_CUSTKEY` AS `bfcol_2`, + `C_NATIONKEY` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_27`, 0) = COALESCE(`bfcol_30`, 0) - AND COALESCE(`bfcol_27`, 1) = COALESCE(`bfcol_30`, 1) + `N_NATIONKEY` AS `bfcol_4`, + `N_NAME` AS `bfcol_5`, + `N_REGIONKEY` AS `bfcol_6` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_28` AS `bfcol_31`, - `bfcol_29` AS `bfcol_32` - FROM `bfcte_2` + `R_REGIONKEY` AS `bfcol_32` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + `R_NAME` = 'ASIA' ), `bfcte_4` AS ( SELECT - `C_CUSTKEY` AS `bfcol_33`, - `C_NATIONKEY` AS `bfcol_34` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `O_ORDERKEY` AS `bfcol_33`, + `O_CUSTKEY` AS `bfcol_34` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `O_ORDERDATE` >= CAST('1994-01-01' AS DATE) + ) + AND ( + `O_ORDERDATE` < CAST('1995-01-01' AS DATE) + ) ), `bfcte_5` AS ( SELECT - * + `L_ORDERKEY` AS `bfcol_29`, + `L_SUPPKEY` AS `bfcol_30`, + `L_EXTENDEDPRICE` * ( + 1.0 - `L_DISCOUNT` + ) AS `bfcol_31` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' +), `bfcte_6` AS ( + SELECT + `bfcol_4` AS `bfcol_35`, + `bfcol_5` AS `bfcol_36` FROM `bfcte_3` - INNER JOIN `bfcte_4` - ON COALESCE(`bfcol_31`, 0) = COALESCE(`bfcol_34`, 0) - AND COALESCE(`bfcol_31`, 1) = COALESCE(`bfcol_34`, 1) + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_32`, 0) = COALESCE(`bfcol_6`, 0) + AND COALESCE(`bfcol_32`, 1) = COALESCE(`bfcol_6`, 1) ), `bfcte_7` AS ( SELECT - `bfcol_31` AS `bfcol_35`, - `bfcol_32` AS `bfcol_36`, - `bfcol_33` AS `bfcol_37` - FROM `bfcte_5` + `bfcol_35` AS `bfcol_37`, + `bfcol_36` AS `bfcol_38`, + `bfcol_2` AS `bfcol_39` + FROM `bfcte_6` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_35`, 0) = COALESCE(`bfcol_3`, 0) + AND COALESCE(`bfcol_35`, 1) = COALESCE(`bfcol_3`, 1) ), `bfcte_8` AS ( SELECT - * - FROM `bfcte_6` + `bfcol_33` AS `bfcol_40`, + `bfcol_37` AS `bfcol_41`, + `bfcol_38` AS `bfcol_42` + FROM `bfcte_4` INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_37`, 0) - AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_37`, 1) + ON COALESCE(`bfcol_34`, 0) = COALESCE(`bfcol_39`, 0) + AND COALESCE(`bfcol_34`, 1) = COALESCE(`bfcol_39`, 1) +), `bfcte_9` AS ( + SELECT + `bfcol_30` AS `bfcol_43`, + `bfcol_31` AS `bfcol_44`, + `bfcol_41` AS `bfcol_45`, + `bfcol_42` AS `bfcol_46` + FROM `bfcte_5` + INNER JOIN `bfcte_8` + ON COALESCE(`bfcol_29`, 0) = COALESCE(`bfcol_40`, 0) + AND COALESCE(`bfcol_29`, 1) = COALESCE(`bfcol_40`, 1) ), `bfcte_10` AS ( SELECT - `bfcol_19` AS `bfcol_38`, - `bfcol_35` AS `bfcol_39`, - `bfcol_36` AS `bfcol_40` - FROM `bfcte_8` -), `bfcte_11` AS ( - SELECT - * + `bfcol_46`, + COALESCE(SUM(`bfcol_44`), 0) AS `bfcol_49` FROM `bfcte_9` - INNER JOIN `bfcte_10` - ON COALESCE(`bfcol_7`, 0) = COALESCE(`bfcol_38`, 0) - AND COALESCE(`bfcol_7`, 1) = COALESCE(`bfcol_38`, 1) -), `bfcte_12` AS ( - SELECT - `bfcol_8` AS `bfcol_41`, - `bfcol_9` AS `bfcol_42`, - `bfcol_39` AS `bfcol_43`, - `bfcol_40` AS `bfcol_44` - FROM `bfcte_11` -), `bfcte_13` AS ( - SELECT - `S_SUPPKEY` AS `bfcol_45`, - `S_NATIONKEY` AS `bfcol_46` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_14` AS ( - SELECT - * - FROM `bfcte_12` - INNER JOIN `bfcte_13` - ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_45`, 0) - AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_45`, 1) - AND COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_46`, 0) - AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_46`, 1) -), `bfcte_15` AS ( - SELECT - `bfcol_44`, - COALESCE(SUM(`bfcol_42`), 0) AS `bfcol_49` - FROM `bfcte_14` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_0`, 1) + AND COALESCE(`bfcol_45`, 0) = COALESCE(`bfcol_1`, 0) + AND COALESCE(`bfcol_45`, 1) = COALESCE(`bfcol_1`, 1) WHERE - NOT `bfcol_44` IS NULL + NOT `bfcol_46` IS NULL GROUP BY - `bfcol_44` + `bfcol_46` ) SELECT - `bfcol_44` AS `N_NAME`, + `bfcol_46` AS `N_NAME`, `bfcol_49` AS `REVENUE` -FROM `bfcte_15` +FROM `bfcte_10` ORDER BY `bfcol_49` DESC, - `bfcol_44` ASC NULLS LAST \ No newline at end of file + `bfcol_46` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql index 6355550fb46..110f3f9736f 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/6/out.sql @@ -1,32 +1,36 @@ WITH `bfcte_0` AS ( + SELECT + * + FROM UNNEST(ARRAY>[STRUCT(0)]) +), `bfcte_1` AS ( SELECT `L_QUANTITY`, `L_EXTENDEDPRICE`, `L_DISCOUNT`, `L_SHIPDATE`, - `L_QUANTITY` AS `bfcol_4`, - `L_EXTENDEDPRICE` AS `bfcol_5`, - `L_DISCOUNT` AS `bfcol_6`, + `L_QUANTITY` AS `bfcol_5`, + `L_EXTENDEDPRICE` AS `bfcol_6`, + `L_DISCOUNT` AS `bfcol_7`, ( `L_SHIPDATE` >= CAST('1994-01-01' AS DATE) ) AND ( `L_SHIPDATE` < CAST('1995-01-01' AS DATE) - ) AS `bfcol_7`, - `L_QUANTITY` AS `bfcol_15`, - `L_EXTENDEDPRICE` AS `bfcol_16`, - `L_DISCOUNT` AS `bfcol_17`, + ) AS `bfcol_8`, + `L_QUANTITY` AS `bfcol_16`, + `L_EXTENDEDPRICE` AS `bfcol_17`, + `L_DISCOUNT` AS `bfcol_18`, ( `L_DISCOUNT` >= 0.05 ) AND ( `L_DISCOUNT` <= 0.07 - ) AS `bfcol_18`, - `L_EXTENDEDPRICE` AS `bfcol_26`, - `L_DISCOUNT` AS `bfcol_27`, - `L_QUANTITY` < 24 AS `bfcol_28`, - `L_EXTENDEDPRICE` AS `bfcol_34`, - `L_DISCOUNT` AS `bfcol_35`, - `L_EXTENDEDPRICE` * `L_DISCOUNT` AS `bfcol_38` + ) AS `bfcol_19`, + `L_EXTENDEDPRICE` AS `bfcol_27`, + `L_DISCOUNT` AS `bfcol_28`, + `L_QUANTITY` < 24 AS `bfcol_29`, + `L_EXTENDEDPRICE` AS `bfcol_35`, + `L_DISCOUNT` AS `bfcol_36`, + `L_EXTENDEDPRICE` * `L_DISCOUNT` AS `bfcol_39` FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE ( @@ -42,24 +46,16 @@ WITH `bfcte_0` AS ( `L_DISCOUNT` <= 0.07 ) AND `L_QUANTITY` < 24 -), `bfcte_1` AS ( - SELECT - COALESCE(SUM(`bfcol_38`), 0) AS `bfcol_40` - FROM `bfcte_0` ), `bfcte_2` AS ( SELECT - * + COALESCE(SUM(`bfcol_39`), 0) AS `bfcol_41` FROM `bfcte_1` ), `bfcte_3` AS ( - SELECT - * - FROM UNNEST(ARRAY>[STRUCT(0)]) -), `bfcte_4` AS ( SELECT * FROM `bfcte_2` - CROSS JOIN `bfcte_3` ) SELECT - CASE WHEN `bfcol_41` = 0 THEN `bfcol_40` END AS `REVENUE` -FROM `bfcte_4` \ No newline at end of file + CASE WHEN `bfcol_0` = 0 THEN `bfcol_41` END AS `REVENUE` +FROM `bfcte_3` +CROSS JOIN `bfcte_0` \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql index ed98f7f505b..3d82a905e8b 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/7/out.sql @@ -1,159 +1,143 @@ WITH `bfcte_0` AS ( SELECT - `C_CUSTKEY` AS `bfcol_0`, - `C_NATIONKEY` AS `bfcol_1` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_1` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_10`, - `N_NAME` AS `bfcol_11` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `N_NATIONKEY` AS `bfcol_22`, + `N_NAME` AS `bfcol_23`, + COALESCE(COALESCE(`N_NAME` IN ('FRANCE', 'GERMANY'), FALSE), FALSE) AS `bfcol_24` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' WHERE COALESCE(COALESCE(`N_NAME` IN ('FRANCE', 'GERMANY'), FALSE), FALSE) +), `bfcte_1` AS ( + SELECT + `S_SUPPKEY` AS `bfcol_2`, + `S_NATIONKEY` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_1`, 0) = COALESCE(`bfcol_10`, 0) - AND COALESCE(`bfcol_1`, 1) = COALESCE(`bfcol_10`, 1) + `L_ORDERKEY` AS `bfcol_31`, + `L_SUPPKEY` AS `bfcol_32`, + `L_EXTENDEDPRICE` AS `bfcol_33`, + `L_DISCOUNT` AS `bfcol_34`, + `L_SHIPDATE` AS `bfcol_35` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + WHERE + ( + `L_SHIPDATE` >= CAST('1995-01-01' AS DATE) + ) + AND ( + `L_SHIPDATE` <= CAST('1996-12-31' AS DATE) + ) ), `bfcte_3` AS ( SELECT - `bfcol_0` AS `bfcol_12`, - `bfcol_11` AS `bfcol_13` - FROM `bfcte_2` + `O_ORDERKEY` AS `bfcol_9`, + `O_CUSTKEY` AS `bfcol_10` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_4` AS ( SELECT - `O_ORDERKEY` AS `bfcol_14`, - `O_CUSTKEY` AS `bfcol_15` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `C_CUSTKEY` AS `bfcol_11`, + `C_NATIONKEY` AS `bfcol_12` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_5` AS ( SELECT - * - FROM `bfcte_3` - INNER JOIN `bfcte_4` - ON COALESCE(`bfcol_12`, 0) = COALESCE(`bfcol_15`, 0) - AND COALESCE(`bfcol_12`, 1) = COALESCE(`bfcol_15`, 1) + `bfcol_22` AS `bfcol_36`, + `bfcol_23` AS `bfcol_37` + FROM `bfcte_0` ), `bfcte_6` AS ( SELECT - `bfcol_13` AS `bfcol_16`, - `bfcol_14` AS `bfcol_17` - FROM `bfcte_5` + `bfcol_22` AS `bfcol_38`, + `bfcol_23` AS `bfcol_39` + FROM `bfcte_0` ), `bfcte_7` AS ( SELECT - `L_ORDERKEY` AS `bfcol_35`, - `L_SUPPKEY` AS `bfcol_36`, - `L_EXTENDEDPRICE` AS `bfcol_37`, - `L_DISCOUNT` AS `bfcol_38`, - `L_SHIPDATE` AS `bfcol_39` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - ( - `L_SHIPDATE` >= CAST('1995-01-01' AS DATE) - ) - AND ( - `L_SHIPDATE` <= CAST('1996-12-31' AS DATE) - ) + `bfcol_11` AS `bfcol_40`, + `bfcol_39` AS `bfcol_41` + FROM `bfcte_4` + INNER JOIN `bfcte_6` + ON COALESCE(`bfcol_12`, 0) = COALESCE(`bfcol_38`, 0) + AND COALESCE(`bfcol_12`, 1) = COALESCE(`bfcol_38`, 1) ), `bfcte_8` AS ( SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_17`, 0) = COALESCE(`bfcol_35`, 0) - AND COALESCE(`bfcol_17`, 1) = COALESCE(`bfcol_35`, 1) + `bfcol_41` AS `bfcol_42`, + `bfcol_9` AS `bfcol_43` + FROM `bfcte_7` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_40`, 0) = COALESCE(`bfcol_10`, 0) + AND COALESCE(`bfcol_40`, 1) = COALESCE(`bfcol_10`, 1) ), `bfcte_9` AS ( SELECT - `bfcol_16` AS `bfcol_40`, - `bfcol_36` AS `bfcol_41`, - `bfcol_37` AS `bfcol_42`, - `bfcol_38` AS `bfcol_43`, - `bfcol_39` AS `bfcol_44` + `bfcol_42` AS `bfcol_44`, + `bfcol_32` AS `bfcol_45`, + `bfcol_33` AS `bfcol_46`, + `bfcol_34` AS `bfcol_47`, + `bfcol_35` AS `bfcol_48` FROM `bfcte_8` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_31`, 0) + AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_31`, 1) ), `bfcte_10` AS ( SELECT - `S_SUPPKEY` AS `bfcol_45`, - `S_NATIONKEY` AS `bfcol_46` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_11` AS ( - SELECT - * + `bfcol_44` AS `bfcol_49`, + `bfcol_46` AS `bfcol_50`, + `bfcol_47` AS `bfcol_51`, + `bfcol_48` AS `bfcol_52`, + `bfcol_3` AS `bfcol_53` FROM `bfcte_9` - INNER JOIN `bfcte_10` - ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_45`, 0) - AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_45`, 1) -), `bfcte_12` AS ( - SELECT - `bfcol_40` AS `bfcol_47`, - `bfcol_42` AS `bfcol_48`, - `bfcol_43` AS `bfcol_49`, - `bfcol_44` AS `bfcol_50`, - `bfcol_46` AS `bfcol_51` - FROM `bfcte_11` -), `bfcte_13` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_60`, - `N_NAME` AS `bfcol_61` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' - WHERE - COALESCE(COALESCE(`N_NAME` IN ('FRANCE', 'GERMANY'), FALSE), FALSE) -), `bfcte_14` AS ( - SELECT - * - FROM `bfcte_12` - INNER JOIN `bfcte_13` - ON COALESCE(`bfcol_51`, 0) = COALESCE(`bfcol_60`, 0) - AND COALESCE(`bfcol_51`, 1) = COALESCE(`bfcol_60`, 1) -), `bfcte_15` AS ( + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_45`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_45`, 1) = COALESCE(`bfcol_2`, 1) +), `bfcte_11` AS ( SELECT - `bfcol_47`, - `bfcol_48`, `bfcol_49`, `bfcol_50`, `bfcol_51`, - `bfcol_60`, - `bfcol_61`, - `bfcol_47` AS `bfcol_67`, - `bfcol_48` AS `bfcol_68`, - `bfcol_49` AS `bfcol_69`, - `bfcol_50` AS `bfcol_70`, - `bfcol_61` AS `bfcol_71`, - `bfcol_47` <> `bfcol_61` AS `bfcol_72`, - `bfcol_47` AS `bfcol_84`, - `bfcol_50` AS `bfcol_85`, - `bfcol_61` AS `bfcol_86`, - `bfcol_48` * ( - 1.0 - `bfcol_49` - ) AS `bfcol_87`, - `bfcol_47` AS `bfcol_92`, - `bfcol_61` AS `bfcol_93`, - `bfcol_48` * ( - 1.0 - `bfcol_49` - ) AS `bfcol_94`, - EXTRACT(YEAR FROM `bfcol_50`) AS `bfcol_95` - FROM `bfcte_14` + `bfcol_52`, + `bfcol_53`, + `bfcol_36`, + `bfcol_37`, + `bfcol_49` AS `bfcol_59`, + `bfcol_50` AS `bfcol_60`, + `bfcol_51` AS `bfcol_61`, + `bfcol_52` AS `bfcol_62`, + `bfcol_37` AS `bfcol_63`, + `bfcol_49` <> `bfcol_37` AS `bfcol_64`, + `bfcol_49` AS `bfcol_76`, + `bfcol_52` AS `bfcol_77`, + `bfcol_37` AS `bfcol_78`, + `bfcol_50` * ( + 1.0 - `bfcol_51` + ) AS `bfcol_79`, + `bfcol_49` AS `bfcol_84`, + `bfcol_37` AS `bfcol_85`, + `bfcol_50` * ( + 1.0 - `bfcol_51` + ) AS `bfcol_86`, + EXTRACT(YEAR FROM `bfcol_52`) AS `bfcol_87` + FROM `bfcte_10` + INNER JOIN `bfcte_5` + ON COALESCE(`bfcol_53`, 0) = COALESCE(`bfcol_36`, 0) + AND COALESCE(`bfcol_53`, 1) = COALESCE(`bfcol_36`, 1) WHERE - `bfcol_47` <> `bfcol_61` -), `bfcte_16` AS ( + `bfcol_49` <> `bfcol_37` +), `bfcte_12` AS ( SELECT - `bfcol_93`, - `bfcol_92`, - `bfcol_95`, - COALESCE(SUM(`bfcol_94`), 0) AS `bfcol_100` - FROM `bfcte_15` + `bfcol_85`, + `bfcol_84`, + `bfcol_87`, + COALESCE(SUM(`bfcol_86`), 0) AS `bfcol_92` + FROM `bfcte_11` WHERE - NOT `bfcol_93` IS NULL AND NOT `bfcol_92` IS NULL AND NOT `bfcol_95` IS NULL + NOT `bfcol_85` IS NULL AND NOT `bfcol_84` IS NULL AND NOT `bfcol_87` IS NULL GROUP BY - `bfcol_93`, - `bfcol_92`, - `bfcol_95` + `bfcol_85`, + `bfcol_84`, + `bfcol_87` ) SELECT - `bfcol_93` AS `SUPP_NATION`, - `bfcol_92` AS `CUST_NATION`, - `bfcol_95` AS `L_YEAR`, - `bfcol_100` AS `REVENUE` -FROM `bfcte_16` + `bfcol_85` AS `SUPP_NATION`, + `bfcol_84` AS `CUST_NATION`, + `bfcol_87` AS `L_YEAR`, + `bfcol_92` AS `REVENUE` +FROM `bfcte_12` ORDER BY - `bfcol_93` ASC NULLS LAST, - `bfcol_92` ASC NULLS LAST, - `bfcol_95` ASC NULLS LAST \ No newline at end of file + `bfcol_85` ASC NULLS LAST, + `bfcol_84` ASC NULLS LAST, + `bfcol_87` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql index 7d6ec86f3ac..b2fa2971caf 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/8/out.sql @@ -1,212 +1,184 @@ WITH `bfcte_0` AS ( SELECT - `P_PARTKEY` AS `bfcol_0`, - `P_TYPE` AS `bfcol_1` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_6` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `N_NATIONKEY` AS `bfcol_0`, + `N_NAME` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_6` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `L_ORDERKEY` AS `bfcol_2`, - `L_PARTKEY` AS `bfcol_3`, - `L_SUPPKEY` AS `bfcol_4`, - `L_EXTENDEDPRICE` AS `bfcol_5`, - `L_DISCOUNT` AS `bfcol_6` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `N_NATIONKEY` AS `bfcol_4`, + `N_REGIONKEY` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_6` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) + `R_REGIONKEY` AS `bfcol_2`, + `R_NAME` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_1` AS `bfcol_7`, - `bfcol_2` AS `bfcol_8`, - `bfcol_4` AS `bfcol_9`, - `bfcol_5` AS `bfcol_10`, - `bfcol_6` AS `bfcol_11` - FROM `bfcte_2` + `C_CUSTKEY` AS `bfcol_6`, + `C_NATIONKEY` AS `bfcol_7` + FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_4` AS ( SELECT - `S_SUPPKEY` AS `bfcol_12`, - `S_NATIONKEY` AS `bfcol_13` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `O_ORDERKEY` AS `bfcol_8`, + `O_CUSTKEY` AS `bfcol_9`, + `O_ORDERDATE` AS `bfcol_10` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_5` AS ( SELECT - * - FROM `bfcte_3` - INNER JOIN `bfcte_4` - ON COALESCE(`bfcol_9`, 0) = COALESCE(`bfcol_12`, 0) - AND COALESCE(`bfcol_9`, 1) = COALESCE(`bfcol_12`, 1) + `S_SUPPKEY` AS `bfcol_11`, + `S_NATIONKEY` AS `bfcol_12` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_6` AS ( SELECT - `bfcol_7` AS `bfcol_14`, - `bfcol_8` AS `bfcol_15`, - `bfcol_10` AS `bfcol_16`, - `bfcol_11` AS `bfcol_17`, - `bfcol_13` AS `bfcol_18` - FROM `bfcte_5` + `L_ORDERKEY` AS `bfcol_13`, + `L_PARTKEY` AS `bfcol_14`, + `L_SUPPKEY` AS `bfcol_15`, + `L_EXTENDEDPRICE` AS `bfcol_16`, + `L_DISCOUNT` AS `bfcol_17` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_7` AS ( SELECT - `O_ORDERKEY` AS `bfcol_19`, - `O_CUSTKEY` AS `bfcol_20`, - `O_ORDERDATE` AS `bfcol_21` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `P_PARTKEY` AS `bfcol_18`, + `P_TYPE` AS `bfcol_19` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_8` AS ( SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_15`, 0) = COALESCE(`bfcol_19`, 0) - AND COALESCE(`bfcol_15`, 1) = COALESCE(`bfcol_19`, 1) + `bfcol_19` AS `bfcol_20`, + `bfcol_13` AS `bfcol_21`, + `bfcol_15` AS `bfcol_22`, + `bfcol_16` AS `bfcol_23`, + `bfcol_17` AS `bfcol_24` + FROM `bfcte_7` + INNER JOIN `bfcte_6` + ON COALESCE(`bfcol_18`, 0) = COALESCE(`bfcol_14`, 0) + AND COALESCE(`bfcol_18`, 1) = COALESCE(`bfcol_14`, 1) ), `bfcte_9` AS ( SELECT - `bfcol_14` AS `bfcol_22`, - `bfcol_16` AS `bfcol_23`, - `bfcol_17` AS `bfcol_24`, - `bfcol_18` AS `bfcol_25`, - `bfcol_20` AS `bfcol_26`, - `bfcol_21` AS `bfcol_27` + `bfcol_20` AS `bfcol_25`, + `bfcol_21` AS `bfcol_26`, + `bfcol_23` AS `bfcol_27`, + `bfcol_24` AS `bfcol_28`, + `bfcol_12` AS `bfcol_29` FROM `bfcte_8` + INNER JOIN `bfcte_5` + ON COALESCE(`bfcol_22`, 0) = COALESCE(`bfcol_11`, 0) + AND COALESCE(`bfcol_22`, 1) = COALESCE(`bfcol_11`, 1) ), `bfcte_10` AS ( SELECT - `C_CUSTKEY` AS `bfcol_28`, - `C_NATIONKEY` AS `bfcol_29` - FROM `bigframes-dev`.`tpch`.`CUSTOMER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `bfcol_25` AS `bfcol_30`, + `bfcol_27` AS `bfcol_31`, + `bfcol_28` AS `bfcol_32`, + `bfcol_29` AS `bfcol_33`, + `bfcol_9` AS `bfcol_34`, + `bfcol_10` AS `bfcol_35` + FROM `bfcte_9` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_8`, 0) + AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_8`, 1) ), `bfcte_11` AS ( SELECT - * - FROM `bfcte_9` - INNER JOIN `bfcte_10` - ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_28`, 0) - AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_28`, 1) + `bfcol_30` AS `bfcol_36`, + `bfcol_31` AS `bfcol_37`, + `bfcol_32` AS `bfcol_38`, + `bfcol_33` AS `bfcol_39`, + `bfcol_35` AS `bfcol_40`, + `bfcol_7` AS `bfcol_41` + FROM `bfcte_10` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_34`, 0) = COALESCE(`bfcol_6`, 0) + AND COALESCE(`bfcol_34`, 1) = COALESCE(`bfcol_6`, 1) ), `bfcte_12` AS ( SELECT - `bfcol_22` AS `bfcol_30`, - `bfcol_23` AS `bfcol_31`, - `bfcol_24` AS `bfcol_32`, - `bfcol_25` AS `bfcol_33`, - `bfcol_27` AS `bfcol_34`, - `bfcol_29` AS `bfcol_35` + `bfcol_36` AS `bfcol_42`, + `bfcol_37` AS `bfcol_43`, + `bfcol_38` AS `bfcol_44`, + `bfcol_39` AS `bfcol_45`, + `bfcol_40` AS `bfcol_46`, + `bfcol_5` AS `bfcol_47` FROM `bfcte_11` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_4`, 0) + AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_4`, 1) ), `bfcte_13` AS ( SELECT - `N_NATIONKEY` AS `bfcol_36`, - `N_REGIONKEY` AS `bfcol_37` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_14` AS ( - SELECT - * + `bfcol_42` AS `bfcol_66`, + `bfcol_43` AS `bfcol_67`, + `bfcol_44` AS `bfcol_68`, + `bfcol_45` AS `bfcol_69`, + `bfcol_46` AS `bfcol_70` FROM `bfcte_12` - INNER JOIN `bfcte_13` - ON COALESCE(`bfcol_35`, 0) = COALESCE(`bfcol_36`, 0) - AND COALESCE(`bfcol_35`, 1) = COALESCE(`bfcol_36`, 1) -), `bfcte_15` AS ( - SELECT - `bfcol_30` AS `bfcol_38`, - `bfcol_31` AS `bfcol_39`, - `bfcol_32` AS `bfcol_40`, - `bfcol_33` AS `bfcol_41`, - `bfcol_34` AS `bfcol_42`, - `bfcol_37` AS `bfcol_43` - FROM `bfcte_14` -), `bfcte_16` AS ( - SELECT - `R_REGIONKEY` AS `bfcol_44`, - `R_NAME` AS `bfcol_45` - FROM `bigframes-dev`.`tpch`.`REGION` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_17` AS ( - SELECT - * - FROM `bfcte_15` - INNER JOIN `bfcte_16` - ON COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_44`, 0) - AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_44`, 1) -), `bfcte_18` AS ( - SELECT - `bfcol_38` AS `bfcol_64`, - `bfcol_39` AS `bfcol_65`, - `bfcol_40` AS `bfcol_66`, - `bfcol_41` AS `bfcol_67`, - `bfcol_42` AS `bfcol_68` - FROM `bfcte_17` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_47`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_47`, 1) = COALESCE(`bfcol_2`, 1) WHERE - `bfcol_45` = 'AMERICA' -), `bfcte_19` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_69`, - `N_NAME` AS `bfcol_70` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_20` AS ( - SELECT - * - FROM `bfcte_18` - INNER JOIN `bfcte_19` - ON COALESCE(`bfcol_67`, 0) = COALESCE(`bfcol_69`, 0) - AND COALESCE(`bfcol_67`, 1) = COALESCE(`bfcol_69`, 1) -), `bfcte_21` AS ( - SELECT - `bfcol_64`, - `bfcol_65`, + `bfcol_3` = 'AMERICA' +), `bfcte_14` AS ( + SELECT `bfcol_66`, `bfcol_67`, `bfcol_68`, `bfcol_69`, `bfcol_70`, - `bfcol_64` AS `bfcol_76`, - `bfcol_65` AS `bfcol_77`, - `bfcol_66` AS `bfcol_78`, - `bfcol_68` AS `bfcol_79`, - `bfcol_70` AS `bfcol_80`, + `bfcol_0`, + `bfcol_1`, + `bfcol_66` AS `bfcol_76`, + `bfcol_67` AS `bfcol_77`, + `bfcol_68` AS `bfcol_78`, + `bfcol_70` AS `bfcol_79`, + `bfcol_1` AS `bfcol_80`, ( - `bfcol_68` >= CAST('1995-01-01' AS DATE) + `bfcol_70` >= CAST('1995-01-01' AS DATE) ) AND ( - `bfcol_68` <= CAST('1996-12-31' AS DATE) + `bfcol_70` <= CAST('1996-12-31' AS DATE) ) AS `bfcol_81`, - `bfcol_65` AS `bfcol_93`, - `bfcol_66` AS `bfcol_94`, - `bfcol_68` AS `bfcol_95`, - `bfcol_70` AS `bfcol_96`, - `bfcol_64` = 'ECONOMY ANODIZED STEEL' AS `bfcol_97`, - `bfcol_65` AS `bfcol_107`, - `bfcol_66` AS `bfcol_108`, - `bfcol_70` AS `bfcol_109`, - EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_110`, - `bfcol_70` AS `bfcol_115`, - EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_116`, - `bfcol_65` * ( - 1.0 - `bfcol_66` + `bfcol_67` AS `bfcol_93`, + `bfcol_68` AS `bfcol_94`, + `bfcol_70` AS `bfcol_95`, + `bfcol_1` AS `bfcol_96`, + `bfcol_66` = 'ECONOMY ANODIZED STEEL' AS `bfcol_97`, + `bfcol_67` AS `bfcol_107`, + `bfcol_68` AS `bfcol_108`, + `bfcol_1` AS `bfcol_109`, + EXTRACT(YEAR FROM `bfcol_70`) AS `bfcol_110`, + `bfcol_1` AS `bfcol_115`, + EXTRACT(YEAR FROM `bfcol_70`) AS `bfcol_116`, + `bfcol_67` * ( + 1.0 - `bfcol_68` ) AS `bfcol_117`, - EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_121`, - `bfcol_65` * ( - 1.0 - `bfcol_66` + EXTRACT(YEAR FROM `bfcol_70`) AS `bfcol_121`, + `bfcol_67` * ( + 1.0 - `bfcol_68` ) AS `bfcol_122`, - IF(`bfcol_70` = 'BRAZIL', `bfcol_65` * ( - 1.0 - `bfcol_66` + IF(`bfcol_1` = 'BRAZIL', `bfcol_67` * ( + 1.0 - `bfcol_68` ), 0) AS `bfcol_123`, - EXTRACT(YEAR FROM `bfcol_68`) AS `bfcol_127`, - IF(`bfcol_70` = 'BRAZIL', `bfcol_65` * ( - 1.0 - `bfcol_66` + EXTRACT(YEAR FROM `bfcol_70`) AS `bfcol_127`, + IF(`bfcol_1` = 'BRAZIL', `bfcol_67` * ( + 1.0 - `bfcol_68` ), 0) AS `bfcol_128`, - `bfcol_65` * ( - 1.0 - `bfcol_66` + `bfcol_67` * ( + 1.0 - `bfcol_68` ) AS `bfcol_129` - FROM `bfcte_20` + FROM `bfcte_13` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_69`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_69`, 1) = COALESCE(`bfcol_0`, 1) WHERE ( - `bfcol_68` >= CAST('1995-01-01' AS DATE) + `bfcol_70` >= CAST('1995-01-01' AS DATE) ) AND ( - `bfcol_68` <= CAST('1996-12-31' AS DATE) + `bfcol_70` <= CAST('1996-12-31' AS DATE) ) - AND `bfcol_64` = 'ECONOMY ANODIZED STEEL' -), `bfcte_22` AS ( + AND `bfcol_66` = 'ECONOMY ANODIZED STEEL' +), `bfcte_15` AS ( SELECT `bfcol_127`, COALESCE(SUM(`bfcol_128`), 0) AS `bfcol_133`, COALESCE(SUM(`bfcol_129`), 0) AS `bfcol_134` - FROM `bfcte_21` + FROM `bfcte_14` WHERE NOT `bfcol_127` IS NULL GROUP BY @@ -215,7 +187,7 @@ WITH `bfcte_0` AS ( SELECT `bfcol_127` AS `O_YEAR`, ROUND(IEEE_DIVIDE(`bfcol_133`, `bfcol_134`), 2) AS `MKT_SHARE` -FROM `bfcte_22` +FROM `bfcte_15` ORDER BY `bfcol_127` ASC NULLS LAST, `bfcol_127` ASC NULLS LAST \ No newline at end of file diff --git a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql index bbbd0c3c70f..7f886aa7ce5 100644 --- a/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql +++ b/tests/unit/core/compile/sqlglot/tpch/snapshots/test_tpch/test_tpch_query/9/out.sql @@ -1,119 +1,94 @@ WITH `bfcte_0` AS ( SELECT - `P_PARTKEY` AS `bfcol_0`, - `P_NAME` AS `bfcol_1` - FROM `bigframes-dev`.`tpch`.`PART` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `N_NATIONKEY` AS `bfcol_0`, + `N_NAME` AS `bfcol_1` + FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_5` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_1` AS ( SELECT - `L_ORDERKEY` AS `bfcol_2`, - `L_PARTKEY` AS `bfcol_3`, - `L_SUPPKEY` AS `bfcol_4`, - `L_QUANTITY` AS `bfcol_5`, - `L_EXTENDEDPRICE` AS `bfcol_6`, - `L_DISCOUNT` AS `bfcol_7` - FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `O_ORDERKEY` AS `bfcol_2`, + `O_ORDERDATE` AS `bfcol_3` + FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_4` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_2` AS ( SELECT - * - FROM `bfcte_0` - INNER JOIN `bfcte_1` - ON COALESCE(`bfcol_0`, 0) = COALESCE(`bfcol_3`, 0) - AND COALESCE(`bfcol_0`, 1) = COALESCE(`bfcol_3`, 1) + `S_SUPPKEY` AS `bfcol_4`, + `S_NATIONKEY` AS `bfcol_5` + FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_3` AS ( SELECT - `bfcol_1` AS `bfcol_8`, - `bfcol_2` AS `bfcol_9`, - `bfcol_3` AS `bfcol_10`, - `bfcol_4` AS `bfcol_11`, - `bfcol_5` AS `bfcol_12`, - `bfcol_6` AS `bfcol_13`, - `bfcol_7` AS `bfcol_14` - FROM `bfcte_2` + `PS_PARTKEY` AS `bfcol_6`, + `PS_SUPPKEY` AS `bfcol_7`, + `PS_SUPPLYCOST` AS `bfcol_8` + FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_4` AS ( SELECT - `PS_PARTKEY` AS `bfcol_15`, - `PS_SUPPKEY` AS `bfcol_16`, - `PS_SUPPLYCOST` AS `bfcol_17` - FROM `bigframes-dev`.`tpch`.`PARTSUPP` AS `bft_3` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `L_ORDERKEY` AS `bfcol_9`, + `L_PARTKEY` AS `bfcol_10`, + `L_SUPPKEY` AS `bfcol_11`, + `L_QUANTITY` AS `bfcol_12`, + `L_EXTENDEDPRICE` AS `bfcol_13`, + `L_DISCOUNT` AS `bfcol_14` + FROM `bigframes-dev`.`tpch`.`LINEITEM` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_5` AS ( SELECT - * - FROM `bfcte_3` - INNER JOIN `bfcte_4` - ON COALESCE(`bfcol_11`, 0) = COALESCE(`bfcol_16`, 0) - AND COALESCE(`bfcol_11`, 1) = COALESCE(`bfcol_16`, 1) - AND COALESCE(`bfcol_10`, 0) = COALESCE(`bfcol_15`, 0) - AND COALESCE(`bfcol_10`, 1) = COALESCE(`bfcol_15`, 1) + `P_PARTKEY` AS `bfcol_15`, + `P_NAME` AS `bfcol_16` + FROM `bigframes-dev`.`tpch`.`PART` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' ), `bfcte_6` AS ( SELECT - `bfcol_8` AS `bfcol_18`, - `bfcol_9` AS `bfcol_19`, + `bfcol_16` AS `bfcol_17`, + `bfcol_9` AS `bfcol_18`, + `bfcol_10` AS `bfcol_19`, `bfcol_11` AS `bfcol_20`, `bfcol_12` AS `bfcol_21`, `bfcol_13` AS `bfcol_22`, - `bfcol_14` AS `bfcol_23`, - `bfcol_17` AS `bfcol_24` + `bfcol_14` AS `bfcol_23` FROM `bfcte_5` + INNER JOIN `bfcte_4` + ON COALESCE(`bfcol_15`, 0) = COALESCE(`bfcol_10`, 0) + AND COALESCE(`bfcol_15`, 1) = COALESCE(`bfcol_10`, 1) ), `bfcte_7` AS ( SELECT - `S_SUPPKEY` AS `bfcol_25`, - `S_NATIONKEY` AS `bfcol_26` - FROM `bigframes-dev`.`tpch`.`SUPPLIER` AS `bft_2` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' + `bfcol_17` AS `bfcol_24`, + `bfcol_18` AS `bfcol_25`, + `bfcol_20` AS `bfcol_26`, + `bfcol_21` AS `bfcol_27`, + `bfcol_22` AS `bfcol_28`, + `bfcol_23` AS `bfcol_29`, + `bfcol_8` AS `bfcol_30` + FROM `bfcte_6` + INNER JOIN `bfcte_3` + ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_7`, 0) + AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_7`, 1) + AND COALESCE(`bfcol_19`, 0) = COALESCE(`bfcol_6`, 0) + AND COALESCE(`bfcol_19`, 1) = COALESCE(`bfcol_6`, 1) ), `bfcte_8` AS ( SELECT - * - FROM `bfcte_6` - INNER JOIN `bfcte_7` - ON COALESCE(`bfcol_20`, 0) = COALESCE(`bfcol_25`, 0) - AND COALESCE(`bfcol_20`, 1) = COALESCE(`bfcol_25`, 1) + `bfcol_24` AS `bfcol_31`, + `bfcol_25` AS `bfcol_32`, + `bfcol_27` AS `bfcol_33`, + `bfcol_28` AS `bfcol_34`, + `bfcol_29` AS `bfcol_35`, + `bfcol_30` AS `bfcol_36`, + `bfcol_5` AS `bfcol_37` + FROM `bfcte_7` + INNER JOIN `bfcte_2` + ON COALESCE(`bfcol_26`, 0) = COALESCE(`bfcol_4`, 0) + AND COALESCE(`bfcol_26`, 1) = COALESCE(`bfcol_4`, 1) ), `bfcte_9` AS ( SELECT - `bfcol_18` AS `bfcol_27`, - `bfcol_19` AS `bfcol_28`, - `bfcol_21` AS `bfcol_29`, - `bfcol_22` AS `bfcol_30`, - `bfcol_23` AS `bfcol_31`, - `bfcol_24` AS `bfcol_32`, - `bfcol_26` AS `bfcol_33` + `bfcol_31` AS `bfcol_38`, + `bfcol_33` AS `bfcol_39`, + `bfcol_34` AS `bfcol_40`, + `bfcol_35` AS `bfcol_41`, + `bfcol_36` AS `bfcol_42`, + `bfcol_37` AS `bfcol_43`, + `bfcol_3` AS `bfcol_44` FROM `bfcte_8` + INNER JOIN `bfcte_1` + ON COALESCE(`bfcol_32`, 0) = COALESCE(`bfcol_2`, 0) + AND COALESCE(`bfcol_32`, 1) = COALESCE(`bfcol_2`, 1) ), `bfcte_10` AS ( SELECT - `O_ORDERKEY` AS `bfcol_34`, - `O_ORDERDATE` AS `bfcol_35` - FROM `bigframes-dev`.`tpch`.`ORDERS` AS `bft_1` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_11` AS ( - SELECT - * - FROM `bfcte_9` - INNER JOIN `bfcte_10` - ON COALESCE(`bfcol_28`, 0) = COALESCE(`bfcol_34`, 0) - AND COALESCE(`bfcol_28`, 1) = COALESCE(`bfcol_34`, 1) -), `bfcte_12` AS ( - SELECT - `bfcol_27` AS `bfcol_36`, - `bfcol_29` AS `bfcol_37`, - `bfcol_30` AS `bfcol_38`, - `bfcol_31` AS `bfcol_39`, - `bfcol_32` AS `bfcol_40`, - `bfcol_33` AS `bfcol_41`, - `bfcol_35` AS `bfcol_42` - FROM `bfcte_11` -), `bfcte_13` AS ( - SELECT - `N_NATIONKEY` AS `bfcol_43`, - `N_NAME` AS `bfcol_44` - FROM `bigframes-dev`.`tpch`.`NATION` AS `bft_0` FOR SYSTEM_TIME AS OF '2026-03-10T18:00:00' -), `bfcte_14` AS ( - SELECT - * - FROM `bfcte_12` - INNER JOIN `bfcte_13` - ON COALESCE(`bfcol_41`, 0) = COALESCE(`bfcol_43`, 0) - AND COALESCE(`bfcol_41`, 1) = COALESCE(`bfcol_43`, 1) -), `bfcte_15` AS ( - SELECT - `bfcol_36`, - `bfcol_37`, `bfcol_38`, `bfcol_39`, `bfcol_40`, @@ -121,37 +96,42 @@ WITH `bfcte_0` AS ( `bfcol_42`, `bfcol_43`, `bfcol_44`, - `bfcol_37` AS `bfcol_52`, - `bfcol_38` AS `bfcol_53`, - `bfcol_39` AS `bfcol_54`, - `bfcol_40` AS `bfcol_55`, - `bfcol_42` AS `bfcol_56`, - `bfcol_44` AS `bfcol_57`, - REGEXP_CONTAINS(`bfcol_36`, 'green') AS `bfcol_58`, - `bfcol_37` AS `bfcol_72`, - `bfcol_38` AS `bfcol_73`, - `bfcol_39` AS `bfcol_74`, - `bfcol_40` AS `bfcol_75`, - `bfcol_44` AS `bfcol_76`, - EXTRACT(YEAR FROM `bfcol_42`) AS `bfcol_77`, - `bfcol_44` AS `bfcol_84`, - EXTRACT(YEAR FROM `bfcol_42`) AS `bfcol_85`, + `bfcol_0`, + `bfcol_1`, + `bfcol_39` AS `bfcol_52`, + `bfcol_40` AS `bfcol_53`, + `bfcol_41` AS `bfcol_54`, + `bfcol_42` AS `bfcol_55`, + `bfcol_44` AS `bfcol_56`, + `bfcol_1` AS `bfcol_57`, + REGEXP_CONTAINS(`bfcol_38`, 'green') AS `bfcol_58`, + `bfcol_39` AS `bfcol_72`, + `bfcol_40` AS `bfcol_73`, + `bfcol_41` AS `bfcol_74`, + `bfcol_42` AS `bfcol_75`, + `bfcol_1` AS `bfcol_76`, + EXTRACT(YEAR FROM `bfcol_44`) AS `bfcol_77`, + `bfcol_1` AS `bfcol_84`, + EXTRACT(YEAR FROM `bfcol_44`) AS `bfcol_85`, ( - `bfcol_38` * ( - 1 - `bfcol_39` + `bfcol_40` * ( + 1 - `bfcol_41` ) ) - ( - `bfcol_40` * `bfcol_37` + `bfcol_42` * `bfcol_39` ) AS `bfcol_86` - FROM `bfcte_14` + FROM `bfcte_9` + INNER JOIN `bfcte_0` + ON COALESCE(`bfcol_43`, 0) = COALESCE(`bfcol_0`, 0) + AND COALESCE(`bfcol_43`, 1) = COALESCE(`bfcol_0`, 1) WHERE - REGEXP_CONTAINS(`bfcol_36`, 'green') -), `bfcte_16` AS ( + REGEXP_CONTAINS(`bfcol_38`, 'green') +), `bfcte_11` AS ( SELECT `bfcol_84`, `bfcol_85`, COALESCE(SUM(`bfcol_86`), 0) AS `bfcol_90` - FROM `bfcte_15` + FROM `bfcte_10` WHERE NOT `bfcol_84` IS NULL AND NOT `bfcol_85` IS NULL GROUP BY @@ -162,7 +142,7 @@ SELECT `bfcol_84` AS `NATION`, `bfcol_85` AS `O_YEAR`, ROUND(`bfcol_90`, 2) AS `SUM_PROFIT` -FROM `bfcte_16` +FROM `bfcte_11` ORDER BY `bfcol_84` ASC NULLS LAST, `bfcol_85` DESC, diff --git a/tests/unit/core/compile/sqlglot/tpch/test_tpch.py b/tests/unit/core/compile/sqlglot/tpch/test_tpch.py index 5e511c710ec..042d8d55d40 100644 --- a/tests/unit/core/compile/sqlglot/tpch/test_tpch.py +++ b/tests/unit/core/compile/sqlglot/tpch/test_tpch.py @@ -16,6 +16,7 @@ import pytest +freezegun = pytest.importorskip("freezegun") pytest.importorskip("pytest_snapshot") @@ -40,9 +41,10 @@ def test_tpch_query(tpch_session, query_num, snapshot): exec(modified_code, exec_globals) q_func = exec_globals["q"] - result = q_func(project_id, dataset_id, tpch_session) + with freezegun.freeze_time("2026-03-10 18:00:00"): + result = q_func(project_id, dataset_id, tpch_session) - # result should be a DataFrame - sql = result.sql + # result should be a DataFrame + sql = result.sql - snapshot.assert_match(sql, "out.sql") + snapshot.assert_match(sql, "out.sql")