Adding upstream version 17.9.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
4a22906fbb
commit
19b35e2a28
87 changed files with 45907 additions and 42511 deletions
4
tests/fixtures/identity.sql
vendored
4
tests/fixtures/identity.sql
vendored
|
@ -730,6 +730,7 @@ WITH a AS (SELECT * FROM b) DELETE FROM a
|
|||
WITH a AS (SELECT * FROM b) CACHE TABLE a
|
||||
SELECT ? AS ? FROM x WHERE b BETWEEN ? AND ? GROUP BY ?, 1 LIMIT ?
|
||||
SELECT :hello, ? FROM x LIMIT :my_limit
|
||||
SELECT a FROM b WHERE c IS ?
|
||||
SELECT * FROM x OFFSET @skip FETCH NEXT @take ROWS ONLY
|
||||
WITH a AS ((SELECT b.foo AS foo, b.bar AS bar FROM b) UNION ALL (SELECT c.foo AS foo, c.bar AS bar FROM c)) SELECT * FROM a
|
||||
WITH a AS ((SELECT 1 AS b) UNION ALL (SELECT 1 AS b)) SELECT * FROM a
|
||||
|
@ -848,3 +849,6 @@ SELECT * FROM current_date
|
|||
SELECT * FROM schema.current_date
|
||||
SELECT /*+ SOME_HINT(foo) */ 1
|
||||
SELECT * FROM (tbl1 CROSS JOIN (SELECT * FROM tbl2) AS t1)
|
||||
/* comment1 */ INSERT INTO x /* comment2 */ VALUES (1, 2, 3)
|
||||
/* comment1 */ UPDATE tbl /* comment2 */ SET x = 2 WHERE x < 2
|
||||
/* comment1 */ DELETE FROM x /* comment2 */ WHERE y > 1
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
foo;
|
||||
foo;
|
||||
|
||||
# dialect: snowflake
|
||||
foo + "bar".baz;
|
||||
FOO + "bar".BAZ;
|
||||
|
||||
SELECT a FROM x;
|
||||
SELECT a FROM x;
|
||||
|
||||
|
|
19
tests/fixtures/optimizer/optimizer.sql
vendored
19
tests/fixtures/optimizer/optimizer.sql
vendored
|
@ -638,7 +638,7 @@ SELECT
|
|||
FROM "users" AS "u"
|
||||
CROSS JOIN LATERAL (
|
||||
SELECT
|
||||
"l"."log_date"
|
||||
"l"."log_date" AS "log_date"
|
||||
FROM "logs" AS "l"
|
||||
WHERE
|
||||
"l"."log_date" <= 100 AND "l"."user_id" = "u"."user_id"
|
||||
|
@ -890,3 +890,20 @@ FROM (
|
|||
JOIN "y" AS "y"
|
||||
ON "x"."a" = "y"."c"
|
||||
);
|
||||
|
||||
# title: replace scalar subquery, wrap resulting column in a MAX
|
||||
SELECT a, SUM(c) / (SELECT SUM(c) FROM y) * 100 AS foo FROM y INNER JOIN x ON y.b = x.b GROUP BY a;
|
||||
WITH "_u_0" AS (
|
||||
SELECT
|
||||
SUM("y"."c") AS "_col_0"
|
||||
FROM "y" AS "y"
|
||||
)
|
||||
SELECT
|
||||
"x"."a" AS "a",
|
||||
SUM("y"."c") / MAX("_u_0"."_col_0") * 100 AS "foo"
|
||||
FROM "y" AS "y"
|
||||
CROSS JOIN "_u_0" AS "_u_0"
|
||||
JOIN "x" AS "x"
|
||||
ON "y"."b" = "x"."b"
|
||||
GROUP BY
|
||||
"x"."a";
|
||||
|
|
10
tests/fixtures/optimizer/qualify_columns.sql
vendored
10
tests/fixtures/optimizer/qualify_columns.sql
vendored
|
@ -93,6 +93,16 @@ SELECT 2 AS "2" FROM x AS x GROUP BY 1;
|
|||
SELECT 'a' AS a FROM x GROUP BY 1;
|
||||
SELECT 'a' AS a FROM x AS x GROUP BY 1;
|
||||
|
||||
# execute: false
|
||||
# dialect: oracle
|
||||
SELECT t."col" FROM tbl t;
|
||||
SELECT T."col" AS "col" FROM TBL T;
|
||||
|
||||
# execute: false
|
||||
# dialect: oracle
|
||||
WITH base AS (SELECT x.dummy AS COL_1 FROM dual x) SELECT b."COL_1" FROM base b;
|
||||
WITH BASE AS (SELECT X.DUMMY AS COL_1 FROM DUAL X) SELECT B.COL_1 AS COL_1 FROM BASE B;
|
||||
|
||||
# execute: false
|
||||
-- this query seems to be invalid in postgres and duckdb but valid in bigquery
|
||||
SELECT 2 a FROM x GROUP BY 1 HAVING a > 1;
|
||||
|
|
35
tests/fixtures/optimizer/qualify_columns_ddl.sql
vendored
Normal file
35
tests/fixtures/optimizer/qualify_columns_ddl.sql
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
# title: Create with CTE
|
||||
WITH cte AS (SELECT b FROM y) CREATE TABLE s AS SELECT * FROM cte;
|
||||
WITH cte AS (SELECT y.b AS b FROM y AS y) CREATE TABLE s AS SELECT cte.b AS b FROM cte;
|
||||
|
||||
# title: Create without CTE
|
||||
CREATE TABLE foo AS SELECT a FROM tbl;
|
||||
CREATE TABLE foo AS SELECT tbl.a AS a FROM tbl AS tbl;
|
||||
|
||||
# title: Create with complex CTE with derived table
|
||||
WITH cte AS (SELECT a FROM (SELECT a from x)) CREATE TABLE s AS SELECT * FROM cte;
|
||||
WITH cte AS (SELECT _q_0.a AS a FROM (SELECT x.a AS a FROM x AS x) AS _q_0) CREATE TABLE s AS SELECT cte.a AS a FROM cte;
|
||||
|
||||
# title: Create wtih multiple CTEs
|
||||
WITH cte1 AS (SELECT b FROM y), cte2 AS (SELECT b FROM cte1) CREATE TABLE s AS SELECT * FROM cte2;
|
||||
WITH cte1 AS (SELECT y.b AS b FROM y AS y), cte2 AS (SELECT cte1.b AS b FROM cte1) CREATE TABLE s AS SELECT cte2.b AS b FROM cte2;
|
||||
|
||||
# title: Create with multiple CTEs, selecting only from the first CTE (unnecessary code)
|
||||
WITH cte1 AS (SELECT b FROM y), cte2 AS (SELECT b FROM cte1) CREATE TABLE s AS SELECT * FROM cte1;
|
||||
WITH cte1 AS (SELECT y.b AS b FROM y AS y), cte2 AS (SELECT cte1.b AS b FROM cte1) CREATE TABLE s AS SELECT cte1.b AS b FROM cte1;
|
||||
|
||||
# title: Create with multiple derived tables
|
||||
CREATE TABLE s AS SELECT * FROM (SELECT b FROM (SELECT b FROM y));
|
||||
CREATE TABLE s AS SELECT _q_1.b AS b FROM (SELECT _q_0.b AS b FROM (SELECT y.b AS b FROM y AS y) AS _q_0) AS _q_1;
|
||||
|
||||
# title: Create with a CTE and a derived table
|
||||
WITH cte AS (SELECT b FROM y) CREATE TABLE s AS SELECT * FROM (SELECT b FROM (SELECT b FROM cte));
|
||||
WITH cte AS (SELECT y.b AS b FROM y AS y) CREATE TABLE s AS SELECT _q_1.b AS b FROM (SELECT _q_0.b AS b FROM (SELECT cte.b AS b FROM cte) AS _q_0) AS _q_1;
|
||||
|
||||
# title: Insert with CTE
|
||||
WITH cte AS (SELECT b FROM y) INSERT INTO s SELECT * FROM cte;
|
||||
WITH cte AS (SELECT y.b AS b FROM y AS y) INSERT INTO s SELECT cte.b AS b FROM cte;
|
||||
|
||||
# title: Insert without CTE
|
||||
INSERT INTO foo SELECT a FROM tbl;
|
||||
INSERT INTO foo SELECT tbl.a AS a FROM tbl AS tbl;
|
30
tests/fixtures/optimizer/tpc-ds/tpc-ds.sql
vendored
30
tests/fixtures/optimizer/tpc-ds/tpc-ds.sql
vendored
|
@ -1449,11 +1449,31 @@ WITH "_u_0" AS (
|
|||
"store_sales"."ss_quantity" <= 80 AND "store_sales"."ss_quantity" >= 61
|
||||
)
|
||||
SELECT
|
||||
CASE WHEN "_u_0"."_col_0" > 3672 THEN "_u_1"."_col_0" ELSE "_u_2"."_col_0" END AS "bucket1",
|
||||
CASE WHEN "_u_3"."_col_0" > 3392 THEN "_u_4"."_col_0" ELSE "_u_5"."_col_0" END AS "bucket2",
|
||||
CASE WHEN "_u_6"."_col_0" > 32784 THEN "_u_7"."_col_0" ELSE "_u_8"."_col_0" END AS "bucket3",
|
||||
CASE WHEN "_u_9"."_col_0" > 26032 THEN "_u_10"."_col_0" ELSE "_u_11"."_col_0" END AS "bucket4",
|
||||
CASE WHEN "_u_12"."_col_0" > 23982 THEN "_u_13"."_col_0" ELSE "_u_14"."_col_0" END AS "bucket5"
|
||||
CASE
|
||||
WHEN MAX("_u_0"."_col_0") > 3672
|
||||
THEN MAX("_u_1"."_col_0")
|
||||
ELSE MAX("_u_2"."_col_0")
|
||||
END AS "bucket1",
|
||||
CASE
|
||||
WHEN MAX("_u_3"."_col_0") > 3392
|
||||
THEN MAX("_u_4"."_col_0")
|
||||
ELSE MAX("_u_5"."_col_0")
|
||||
END AS "bucket2",
|
||||
CASE
|
||||
WHEN MAX("_u_6"."_col_0") > 32784
|
||||
THEN MAX("_u_7"."_col_0")
|
||||
ELSE MAX("_u_8"."_col_0")
|
||||
END AS "bucket3",
|
||||
CASE
|
||||
WHEN MAX("_u_9"."_col_0") > 26032
|
||||
THEN MAX("_u_10"."_col_0")
|
||||
ELSE MAX("_u_11"."_col_0")
|
||||
END AS "bucket4",
|
||||
CASE
|
||||
WHEN MAX("_u_12"."_col_0") > 23982
|
||||
THEN MAX("_u_13"."_col_0")
|
||||
ELSE MAX("_u_14"."_col_0")
|
||||
END AS "bucket5"
|
||||
FROM "reason" AS "reason"
|
||||
CROSS JOIN "_u_0" AS "_u_0"
|
||||
CROSS JOIN "_u_1" AS "_u_1"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue