Skip to content

Commit

Permalink
Add tests for rewriting queries with CTEs.
Browse files Browse the repository at this point in the history
  • Loading branch information
plypaul committed Nov 9, 2024
1 parent e0ac2d9 commit 164c6f5
Show file tree
Hide file tree
Showing 3 changed files with 412 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
optimizer:
SqlRewritingSubQueryReducer

sql_before_optimizing:
-- Top-level SELECT
WITH cte_source_0 AS (
-- CTE source 0
SELECT
test_table_alias.col_0 AS cte_source_0__col_0
, test_table_alias.col_1 AS cte_source_0__col_1
FROM (
-- CTE source 0 sub-query
SELECT
test_table_alias.col_0 AS cte_source_0_subquery__col_0
, test_table_alias.col_0 AS cte_source_0_subquery__col_1
FROM test_schema.test_table test_table_alias
) cte_source_0_subquery
)

, cte_source_1 AS (
-- CTE source 1
SELECT
test_table_alias.col_0 AS cte_source_1__col_0
, test_table_alias.col_1 AS cte_source_1__col_1
FROM (
-- CTE source 1 sub-query
SELECT
cte_source_0_alias.cte_source_0__col_0 AS cte_source_1_subquery__col_0
, cte_source_0_alias.cte_source_0__col_0 AS cte_source_1_subquery__col_1
FROM cte_source_0 cte_source_0_alias
) cte_source_1_subquery
)

SELECT
cte_source_0_alias.cte_source_0__col_0 AS top_level__col_0
, right_source_alias.right_source__col_1 AS top_level__col_1
FROM cte_source_0 cte_source_0_alias
INNER JOIN
cte_source_1 right_source_alias
ON
cte_source_0_alias.cte_source_0__col_1 = right_source_alias.right_source__col_1
GROUP BY
cte_source_0_alias.cte_source_0__col_0
, right_source_alias.right_source__col_1

sql_after_optimizing:
-- Top-level SELECT
WITH cte_source_0 AS (
-- CTE source 0 sub-query
-- CTE source 0
SELECT
test_table_alias.col_0 AS cte_source_0__col_0
, test_table_alias.col_1 AS cte_source_0__col_1
FROM test_schema.test_table test_table_alias
)

, cte_source_1 AS (
-- CTE source 1 sub-query
-- CTE source 1
SELECT
test_table_alias.col_0 AS cte_source_1__col_0
, test_table_alias.col_1 AS cte_source_1__col_1
FROM cte_source_0 cte_source_0_alias
)

SELECT
cte_source_0_alias.cte_source_0__col_0 AS top_level__col_0
, right_source_alias.right_source__col_1 AS top_level__col_1
FROM cte_source_0 cte_source_0_alias
INNER JOIN
cte_source_1 right_source_alias
ON
cte_source_0_alias.cte_source_0__col_1 = right_source_alias.right_source__col_1
GROUP BY
cte_source_0_alias.cte_source_0__col_0
, right_source_alias.right_source__col_1
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
optimizer:
SqlRewritingSubQueryReducer

sql_before_optimizing:
-- Top-level SELECT
WITH cte_source_0 AS (
-- CTE source 0
SELECT
test_table_alias.col_0 AS cte_source_0__col_0
, test_table_alias.col_1 AS cte_source_0__col_1
FROM (
-- CTE source 0 sub-query
SELECT
test_table_alias.col_0 AS cte_source_0_subquery__col_0
, test_table_alias.col_0 AS cte_source_0_subquery__col_1
FROM test_schema.test_table test_table_alias
) cte_source_0_subquery
)

, cte_source_1 AS (
-- CTE source 1
SELECT
test_table_alias.col_0 AS cte_source_1__col_0
, test_table_alias.col_1 AS cte_source_1__col_1
FROM (
-- CTE source 1 sub-query
SELECT
cte_source_0_alias.cte_source_0__col_0 AS cte_source_1_subquery__col_0
, cte_source_0_alias.cte_source_0__col_0 AS cte_source_1_subquery__col_1
FROM cte_source_0 cte_source_0_alias
) cte_source_1_subquery
)

SELECT
cte_source_0_alias.cte_source_0__col_0 AS top_level__col_0
, right_source_alias.right_source__col_1 AS top_level__col_1
FROM cte_source_0 cte_source_0_alias
INNER JOIN
cte_source_1 right_source_alias
ON
cte_source_0_alias.cte_source_0__col_1 = right_source_alias.right_source__col_1
GROUP BY
cte_source_0_alias.cte_source_0__col_0
, right_source_alias.right_source__col_1

sql_after_optimizing:
-- Top-level SELECT
WITH cte_source_0 AS (
-- CTE source 0 sub-query
-- CTE source 0
SELECT
test_table_alias.col_0 AS cte_source_0__col_0
, test_table_alias.col_1 AS cte_source_0__col_1
FROM test_schema.test_table test_table_alias
)

, cte_source_1 AS (
-- CTE source 1 sub-query
-- CTE source 1
SELECT
test_table_alias.col_0 AS cte_source_1__col_0
, test_table_alias.col_1 AS cte_source_1__col_1
FROM cte_source_0 cte_source_0_alias
)

SELECT
cte_source_0_alias.cte_source_0__col_0 AS top_level__col_0
, right_source_alias.right_source__col_1 AS top_level__col_1
FROM cte_source_0 cte_source_0_alias
INNER JOIN
cte_source_1 right_source_alias
ON
cte_source_0_alias.cte_source_0__col_1 = right_source_alias.right_source__col_1
GROUP BY
top_level__col_0
, top_level__col_1
Loading

0 comments on commit 164c6f5

Please sign in to comment.