diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-06-30 08:03:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-06-30 08:03:58 +0000 |
commit | 9f19773cebdc9476f2a3266d3c01c967c38fcd1e (patch) | |
tree | a60f607ba2bb64fb45da86c297ff29ffc9b92f58 /tests/fixtures/optimizer/merge_subqueries.sql | |
parent | Releasing debian version 16.7.3-1. (diff) | |
download | sqlglot-9f19773cebdc9476f2a3266d3c01c967c38fcd1e.tar.xz sqlglot-9f19773cebdc9476f2a3266d3c01c967c38fcd1e.zip |
Merging upstream version 16.7.7.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/fixtures/optimizer/merge_subqueries.sql')
-rw-r--r-- | tests/fixtures/optimizer/merge_subqueries.sql | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/fixtures/optimizer/merge_subqueries.sql b/tests/fixtures/optimizer/merge_subqueries.sql index bd56e07..fb69ea7 100644 --- a/tests/fixtures/optimizer/merge_subqueries.sql +++ b/tests/fixtures/optimizer/merge_subqueries.sql @@ -2,6 +2,28 @@ SELECT a, b FROM (SELECT a, b FROM x); SELECT x.a AS a, x.b AS b FROM x AS x; +# title: Wrap addition in a multiplication +SELECT c * 2 AS d FROM (SELECT a + b AS c FROM x); +SELECT (x.a + x.b) * 2 AS d FROM x AS x; + +# title: Wrap addition in an addition +# note: The "simplify" rule will unwrap this +SELECT c + d AS e FROM (SELECT a + b AS c, a AS d FROM x); +SELECT (x.a + x.b) + x.a AS e FROM x AS x; + +# title: Wrap multiplication in an addition +# note: The "simplify" rule will unwrap this +WITH cte AS (SELECT a * b AS c, a AS d FROM x) SELECT c + d AS e FROM cte; +SELECT (x.a * x.b) + x.a AS e FROM x AS x; + +# title: Don't wrap function +SELECT 2 * foo AS bar FROM (SELECT CAST(b AS DOUBLE) AS foo FROM x); +SELECT 2 * CAST(x.b AS DOUBLE) AS bar FROM x AS x; + +# title: Don't wrap a wrapped expression +SELECT foo * 2 AS bar FROM (SELECT (1 + 2 + 3) AS foo FROM x); +SELECT (1 + 2 + 3) * 2 AS bar FROM x AS x; + # title: Inner table alias is merged SELECT a, b FROM (SELECT a, b FROM x AS q) AS r; SELECT q.a AS a, q.b AS b FROM x AS q; |