Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 215 additions & 0 deletions __fixtures__/generated/generated.json

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-copy.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- COPY direction, targets and option quoting
COPY t TO STDOUT;
COPY t FROM STDIN;
COPY (SELECT * FROM t ORDER BY a) TO STDOUT WITH DELIMITER ',';
COPY t TO STDOUT WITH (FORMAT csv, QUOTE '''', DELIMITER '|');
COPY t TO STDOUT WITH (FORMAT csv, FORCE_QUOTE (a, b), ESCAPE E'\\');
COPY t TO STDOUT WITH (FORMAT csv, FORCE_QUOTE *);
COPY t FROM STDIN WITH (FORMAT csv, FORCE_NOT_NULL (a), FORCE_NULL (b, c));
COPY t FROM STDIN WITH (FORMAT csv, FORCE_NOT_NULL *, FORCE_NULL *);
COPY t FROM STDIN WITH (FORMAT text, DELIMITER ';', NULL '\N', DEFAULT '\D', ENCODING 'sql_ascii');
COPY t FROM STDIN WITH (FORMAT binary);
COPY t FROM STDIN WITH (HEADER match);
COPY t FROM STDIN WITH (HEADER true, ON_ERROR ignore, LOG_VERBOSITY verbose);
COPY t FROM STDIN WITH (FREEZE);
COPY t FROM STDIN WITH (REJECT_LIMIT 5);
COPY t (a, b) TO 'file.csv' WITH (FORMAT csv, HEADER);
COPY t FROM PROGRAM 'gunzip < file.gz' WITH (FORMAT text);
COPY t TO PROGRAM 'gzip > file.gz';
COPY t FROM 'it''s.csv';
COPY t FROM STDIN WHERE a > 0;
COPY t FROM STDIN WITH NULL AS 'I''m null';
16 changes: 16 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-cte-insert.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-- CTE SEARCH / CYCLE clauses
WITH RECURSIVE graph(f, t, label) AS (SELECT 1, 2, 'a' UNION ALL SELECT g.f, g.t, g.label FROM graph g) SEARCH DEPTH FIRST BY f, t SET seq SELECT * FROM graph;
WITH RECURSIVE graph(f, t, label) AS (SELECT 1, 2, 'a' UNION ALL SELECT g.f, g.t, g.label FROM graph g) SEARCH BREADTH FIRST BY f, t SET seq SELECT * FROM graph;
WITH RECURSIVE graph(f, t, label) AS (SELECT 1, 2, 'a' UNION ALL SELECT g.f, g.t, g.label FROM graph g) CYCLE f, t SET is_cycle USING path SELECT * FROM graph;
WITH RECURSIVE graph(f, t, label) AS (SELECT 1, 2, 'a' UNION ALL SELECT g.f, g.t, g.label FROM graph g) CYCLE f, t SET is_cycle TO 'Y' DEFAULT 'N' USING path SELECT * FROM graph;
WITH RECURSIVE graph(f, t, label) AS (SELECT 1, 2, 'a' UNION ALL SELECT g.f, g.t, g.label FROM graph g) CYCLE f, t SET is_cycle TO point '(1,1)' DEFAULT point '(0,0)' USING path SELECT * FROM graph;
WITH RECURSIVE graph(f, t, label) AS (SELECT 1, 2, 'a' UNION ALL SELECT g.f, g.t, g.label FROM graph g) SEARCH DEPTH FIRST BY f, t SET seq CYCLE f, t SET is_cycle USING path SELECT * FROM graph;
-- INSERT OVERRIDING
INSERT INTO itest1 OVERRIDING USER VALUE VALUES (10, 'xyz');
INSERT INTO itest1 (a, b) OVERRIDING SYSTEM VALUE VALUES (10, 'xyz');
INSERT INTO itest1 OVERRIDING SYSTEM VALUE SELECT * FROM itest2;
MERGE INTO tgt t USING src s ON t.a = s.a WHEN NOT MATCHED THEN INSERT (a) OVERRIDING SYSTEM VALUE VALUES (s.a);
-- multi-column assignment in MERGE
MERGE INTO tgt t USING src s ON t.a = s.a WHEN MATCHED THEN UPDATE SET (b, c) = (SELECT s.b, s.c);
MERGE INTO tgt t USING src s ON t.a = s.a WHEN MATCHED THEN UPDATE SET (b, c) = (s.b, s.c), d = 1;
UPDATE tgt SET (b, c) = (SELECT 1, 2), d = 3;
21 changes: 21 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-grant-role.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- GRANT/REVOKE role membership options, GRANTED BY, CASCADE
GRANT regress_role1 TO regress_role2;
GRANT regress_role1 TO regress_role2 WITH ADMIN OPTION;
GRANT regress_role1 TO regress_role2 WITH ADMIN OPTION GRANTED BY regress_role3;
GRANT regress_role1 TO regress_role2 GRANTED BY CURRENT_ROLE;
GRANT regress_role1 TO regress_role2 GRANTED BY CURRENT_USER;
GRANT regress_role1 TO regress_role2 WITH INHERIT FALSE, ADMIN TRUE;
GRANT regress_role1 TO regress_role2 WITH INHERIT OPTION, SET FALSE;
GRANT regress_role1 TO regress_role2 WITH SET TRUE GRANTED BY regress_role3;
GRANT "Mixed_Case_Role" TO regress_role2;
REVOKE regress_role1 FROM regress_role2;
REVOKE regress_role1 FROM regress_role2 CASCADE;
REVOKE ADMIN OPTION FOR regress_role1 FROM regress_role2;
REVOKE ADMIN OPTION FOR regress_role1 FROM regress_role2 GRANTED BY regress_role3 CASCADE;
REVOKE INHERIT OPTION FOR regress_role1 FROM regress_role2;
REVOKE SET OPTION FOR regress_role1 FROM regress_role2;
REVOKE regress_role1 FROM regress_role2 GRANTED BY CURRENT_ROLE;
-- GRANTED BY on object privileges
GRANT INSERT ON t TO regress_role2 GRANTED BY CURRENT_USER;
GRANT TRUNCATE ON t TO regress_role2 GRANTED BY regress_role3;
REVOKE SELECT ON t FROM regress_role2 GRANTED BY CURRENT_ROLE;
22 changes: 22 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-identity-storage.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-- Identity column alterations
ALTER TABLE itest ALTER COLUMN a ADD GENERATED ALWAYS AS IDENTITY;
ALTER TABLE itest ALTER COLUMN a ADD GENERATED BY DEFAULT AS IDENTITY (START WITH 10 INCREMENT BY 2);
ALTER TABLE itest ALTER COLUMN a SET GENERATED ALWAYS;
ALTER TABLE itest ALTER COLUMN a SET GENERATED BY DEFAULT;
ALTER TABLE itest ALTER COLUMN a SET GENERATED BY DEFAULT SET INCREMENT BY 2 SET START WITH 100 RESTART;
ALTER TABLE itest ALTER COLUMN a RESTART;
ALTER TABLE itest ALTER COLUMN a RESTART WITH 1000;
ALTER TABLE itest ALTER COLUMN a SET INCREMENT BY 5 SET MINVALUE 1 SET MAXVALUE 100 SET CACHE 10 SET CYCLE;
ALTER TABLE itest ALTER COLUMN a SET NO MINVALUE SET NO MAXVALUE SET NO CYCLE;
ALTER TABLE itest ALTER COLUMN a DROP IDENTITY;
ALTER TABLE itest ALTER COLUMN a DROP IDENTITY IF EXISTS;
ALTER SEQUENCE itest_a_seq OWNED BY NONE;
ALTER SEQUENCE itest_a_seq OWNED BY itest.a;
-- column STORAGE / COMPRESSION in CREATE TABLE
CREATE TABLE test_storage (a text, c text STORAGE plain);
CREATE TABLE test_storage (a text, b int STORAGE extended, c text STORAGE external, d text STORAGE main);
CREATE TABLE test_compression (a text COMPRESSION lz4, b text COMPRESSION pglz);
CREATE TABLE test_compression (a text STORAGE external COMPRESSION lz4 NOT NULL);
-- ALTER COLUMN TYPE with COLLATE
ALTER TABLE t ALTER b TYPE char(2) COLLATE "POSIX";
ALTER TABLE t ALTER COLUMN b TYPE text COLLATE "C" USING b::text;
18 changes: 18 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-misc-ddl.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-- COMMENT ON CONSTRAINT ... ON DOMAIN
COMMENT ON CONSTRAINT the_constraint ON DOMAIN constraint_comments_dom IS 'yes, another comment';
COMMENT ON CONSTRAINT the_constraint ON DOMAIN s.constraint_comments_dom IS NULL;
COMMENT ON CONSTRAINT the_constraint ON constraint_comments_tbl IS 'table constraint';
-- DEFAULT needs parens around non-b_expr expressions
CREATE TABLE error_tbl (b1 bool DEFAULT (1 IN (1, 2)));
CREATE TABLE error_tbl (b1 bool DEFAULT (true AND false));
CREATE TABLE error_tbl (b1 bool DEFAULT ('a' LIKE 'a%'));
CREATE TABLE error_tbl (b1 bool DEFAULT (1 BETWEEN 0 AND 2));
CREATE TABLE error_tbl (b1 bool DEFAULT (1 = ANY (ARRAY[1, 2])));
CREATE TABLE error_tbl (b1 int DEFAULT 1 + 2);
CREATE TABLE error_tbl (b1 bool DEFAULT 1 IS DISTINCT FROM 2);
ALTER TABLE error_tbl ALTER COLUMN b1 SET DEFAULT (1 IN (1, 2));
-- EXCLUDE constraint deferrability
CREATE TABLE deferred_excl (f1 int, f2 int, CONSTRAINT deferred_excl_con EXCLUDE (f1 WITH =) INITIALLY DEFERRED);
CREATE TABLE deferred_excl (f1 int, CONSTRAINT deferred_excl_con EXCLUDE (f1 WITH =) DEFERRABLE INITIALLY DEFERRED);
CREATE TABLE deferred_excl (f1 int, CONSTRAINT deferred_excl_con EXCLUDE USING gist (f1 WITH =) NOT DEFERRABLE);
ALTER TABLE deferred_excl ADD CONSTRAINT deferred_excl_con2 EXCLUDE (f1 WITH =) DEFERRABLE INITIALLY IMMEDIATE;
20 changes: 20 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-partition-ctas.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
-- PARTITION OF with column options and hash bounds
CREATE TABLE p1 PARTITION OF parent (f3 WITH OPTIONS GENERATED ALWAYS AS IDENTITY) FOR VALUES FROM ('2016-11-01') TO ('2016-12-01');
CREATE TABLE p1 PARTITION OF parent (a NOT NULL, b DEFAULT 1, CONSTRAINT p1_chk CHECK (a > 0)) FOR VALUES IN (1, 2);
CREATE TABLE p1 PARTITION OF parent FOR VALUES WITH (MODULUS 2, REMAINDER 0);
CREATE TABLE p1 PARTITION OF parent FOR VALUES WITH (MODULUS 4, REMAINDER 3);
CREATE TABLE p1 PARTITION OF parent (a WITH OPTIONS NOT NULL) FOR VALUES WITH (MODULUS 2, REMAINDER 1);
CREATE TABLE p1 PARTITION OF parent DEFAULT;
CREATE TABLE p1 PARTITION OF parent (a NOT NULL) DEFAULT;
CREATE TABLE p1 PARTITION OF parent FOR VALUES FROM (MINVALUE) TO (MAXVALUE) PARTITION BY HASH (b);
ALTER TABLE parent ATTACH PARTITION p1 FOR VALUES WITH (MODULUS 2, REMAINDER 0);
ALTER TABLE parent ATTACH PARTITION p1 DEFAULT;
-- CREATE TABLE AS option placement/quoting
CREATE TABLE tas_case WITH ("Fillfactor" = 10) AS SELECT 1 a;
CREATE TABLE tas WITH (fillfactor = 10, autovacuum_enabled = false) AS SELECT 1 a;
CREATE TEMP TABLE tas ON COMMIT DROP AS SELECT 1 a;
CREATE TABLE tas (x, y) WITH (fillfactor = 50) TABLESPACE pg_default AS SELECT 1, 2 WITH NO DATA;
CREATE TABLE tas USING heap WITH (fillfactor = 50) AS SELECT 1 a;
CREATE MATERIALIZED VIEW mv WITH (fillfactor = 50) AS SELECT 1 a WITH NO DATA;
-- reloption quoting in CREATE TABLE
CREATE TABLE t (a int) WITH ("Fillfactor" = 10, toast.autovacuum_enabled = false);
32 changes: 32 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-publication-subscription.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-- CREATE/ALTER PUBLICATION and ALTER SUBSCRIPTION forms
CREATE PUBLICATION p FOR ALL TABLES;
CREATE PUBLICATION p FOR TABLE t1, t2 (a, b) WHERE (a > 5);
CREATE PUBLICATION p FOR TABLES IN SCHEMA s1, s2;
CREATE PUBLICATION p FOR TABLE t1, TABLES IN SCHEMA s1 WITH (publish = 'insert, update', publish_via_partition_root = true);
CREATE PUBLICATION p WITH (publish_via_partition_root = 1);
ALTER PUBLICATION p ADD TABLE t3;
ALTER PUBLICATION p ADD TABLE t3 (a) WHERE (a IS NOT NULL);
ALTER PUBLICATION p DROP TABLE t3;
ALTER PUBLICATION p SET TABLE t1, t2;
ALTER PUBLICATION p SET TABLES IN SCHEMA s1;
ALTER PUBLICATION p ADD TABLES IN SCHEMA s2;
ALTER PUBLICATION p DROP TABLES IN SCHEMA s2;
ALTER PUBLICATION p SET (publish = 'insert');
ALTER PUBLICATION p SET (publish_via_partition_root = 0);
ALTER PUBLICATION p SET (publish_via_partition_root = false);
ALTER PUBLICATION p OWNER TO regress_user;
ALTER PUBLICATION p RENAME TO p2;
CREATE SUBSCRIPTION s CONNECTION 'dbname=doesnotexist' PUBLICATION p WITH (connect = false, slot_name = NONE);
ALTER SUBSCRIPTION s SET (slot_name = 'newname');
ALTER SUBSCRIPTION s SET (streaming = parallel);
ALTER SUBSCRIPTION s CONNECTION 'dbname=other';
ALTER SUBSCRIPTION s SET PUBLICATION p1, p2 WITH (refresh = false);
ALTER SUBSCRIPTION s ADD PUBLICATION p3 WITH (refresh = false);
ALTER SUBSCRIPTION s DROP PUBLICATION p3 WITH (refresh = false);
ALTER SUBSCRIPTION s REFRESH PUBLICATION WITH (copy_data = false);
ALTER SUBSCRIPTION s ENABLE;
ALTER SUBSCRIPTION s DISABLE;
ALTER SUBSCRIPTION s SKIP (lsn = '0/12345');
ALTER SUBSCRIPTION s SKIP (lsn = NONE);
ALTER SUBSCRIPTION s OWNER TO regress_user;
ALTER SUBSCRIPTION s RENAME TO s2;
63 changes: 63 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-sqljson.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
-- SQL/JSON constructors
SELECT JSON_OBJECT();
SELECT JSON_OBJECT(RETURNING json);
SELECT JSON_OBJECT(RETURNING jsonb);
SELECT JSON_OBJECT(RETURNING text FORMAT JSON);
SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF8);
SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
SELECT JSON_OBJECT('foo': 1, 'bar': 'baz');
SELECT JSON_OBJECT('foo' VALUE 1, 'bar' VALUE 'baz');
SELECT JSON_OBJECT('a': 1 ABSENT ON NULL);
SELECT JSON_OBJECT('a': 1 NULL ON NULL);
SELECT JSON_OBJECT('a': 1, 'a': 2 WITH UNIQUE KEYS);
SELECT JSON_OBJECT('a': 1, 'a': 2 WITHOUT UNIQUE KEYS);
SELECT JSON_OBJECT('a': 1, 'b': 2 ABSENT ON NULL WITH UNIQUE KEYS RETURNING jsonb);
SELECT JSON_OBJECT('a': '{"b": 1}' FORMAT JSON);
SELECT JSON_OBJECT('a': '{"b": 1}' FORMAT JSON RETURNING jsonb);
SELECT JSON_ARRAY();
SELECT JSON_ARRAY(RETURNING jsonb);
SELECT JSON_ARRAY(1, 2, 'a');
SELECT JSON_ARRAY(1, NULL, 2 NULL ON NULL);
SELECT JSON_ARRAY(1, NULL, 2 ABSENT ON NULL);
SELECT JSON_ARRAY('{"a": 1}' FORMAT JSON, 2 RETURNING jsonb);
SELECT JSON_ARRAY(SELECT i FROM (VALUES (1), (2), (NULL), (4)) foo(i));
SELECT JSON_ARRAY(SELECT i FROM (VALUES (1), (2)) foo(i) RETURNING jsonb);
SELECT JSON_ARRAY(SELECT i FROM (VALUES (3), (1)) foo(i) ORDER BY i);
SELECT JSON_ARRAY(SELECT i FROM (VALUES ('[1]')) foo(i) FORMAT JSON RETURNING text);
SELECT JSON('{"a": 1}');
SELECT JSON('{"a": 1}' WITH UNIQUE KEYS);
SELECT JSON('{"a": 1}' WITHOUT UNIQUE KEYS);
SELECT JSON('{"a": 1}'::bytea FORMAT JSON ENCODING UTF8);
SELECT JSON_SCALAR(1);
SELECT JSON_SCALAR('text');
SELECT JSON_SCALAR(NULL::int);
SELECT JSON_SERIALIZE('{"a": 1}');
SELECT JSON_SERIALIZE('{"a": 1}' FORMAT JSON);
SELECT JSON_SERIALIZE('{"a": 1}'::jsonb RETURNING bytea);
SELECT JSON_SERIALIZE('{"a": 1}' RETURNING bytea FORMAT JSON ENCODING UTF8);
-- SQL/JSON aggregates
SELECT JSON_OBJECTAGG(k: v) FROM t;
SELECT JSON_OBJECTAGG(k VALUE v) FROM t;
SELECT JSON_OBJECTAGG(k: v ABSENT ON NULL) FROM t;
SELECT JSON_OBJECTAGG(k: v NULL ON NULL WITH UNIQUE KEYS RETURNING jsonb) FROM t;
SELECT JSON_OBJECTAGG(k: v FORMAT JSON) FROM t;
SELECT JSON_OBJECTAGG(k: v) FILTER (WHERE k IS NOT NULL) FROM t;
SELECT JSON_OBJECTAGG(k: v) OVER (PARTITION BY g) FROM t;
SELECT JSON_OBJECTAGG(k: v) FILTER (WHERE k IS NOT NULL) OVER (ORDER BY k ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) FROM t;
SELECT JSON_ARRAYAGG(v) FROM t;
SELECT JSON_ARRAYAGG(v ORDER BY v DESC) FROM t;
SELECT JSON_ARRAYAGG(v NULL ON NULL) FROM t;
SELECT JSON_ARRAYAGG(v ABSENT ON NULL RETURNING jsonb) FROM t;
SELECT JSON_ARRAYAGG(v FORMAT JSON ORDER BY v ABSENT ON NULL RETURNING text) FROM t;
SELECT JSON_ARRAYAGG(v) FILTER (WHERE v > 0) OVER w FROM t WINDOW w AS (PARTITION BY g);
-- IS JSON predicates
SELECT js IS JSON FROM t;
SELECT js IS NOT JSON FROM t;
SELECT js IS JSON VALUE FROM t;
SELECT js IS JSON OBJECT FROM t;
SELECT js IS JSON ARRAY FROM t;
SELECT js IS JSON SCALAR FROM t;
SELECT js IS JSON WITH UNIQUE KEYS FROM t;
SELECT js IS JSON OBJECT WITHOUT UNIQUE KEYS FROM t;
SELECT js IS NOT JSON ARRAY WITH UNIQUE FROM t;
SELECT CASE WHEN js IS JSON OBJECT THEN 'o' WHEN js IS JSON ARRAY THEN 'a' END FROM t;
22 changes: 22 additions & 0 deletions __fixtures__/kitchen-sink/misc/pg18-window-frames.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-- WindowDef.frameOptions is a bitmask; decode every bound/exclusion combination
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN 2 PRECEDING AND 1 FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) FROM t;
SELECT sum(x) OVER (ORDER BY x RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x GROUPS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE GROUP) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE TIES) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE CURRENT ROW) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING EXCLUDE NO OTHERS) FROM t;
SELECT sum(x) OVER (ORDER BY x RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x RANGE BETWEEN INTERVAL '1 day' PRECEDING AND INTERVAL '1 day' FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS UNBOUNDED PRECEDING) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS 1 PRECEDING) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS CURRENT ROW) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING) FROM t;
SELECT sum(x) OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) FROM t;
SELECT sum(x) OVER w FROM t WINDOW w AS (ORDER BY x ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING);
SELECT sum(x) OVER (w ORDER BY y) FROM t WINDOW w AS (PARTITION BY z);
SELECT sum(x) OVER (w ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM t WINDOW w AS (PARTITION BY z ORDER BY x);
SELECT sum(x) OVER (PARTITION BY z) FROM t;
SELECT sum(x) OVER () FROM t;
28 changes: 28 additions & 0 deletions packages/deparser/__tests__/kitchen-sink/misc-pg18-copy.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

import { FixtureTestUtils } from '../../test-utils';
const fixtures = new FixtureTestUtils();

it('misc-pg18-copy', async () => {
await fixtures.runFixtureTests([
"misc/pg18-copy-1.sql",
"misc/pg18-copy-2.sql",
"misc/pg18-copy-3.sql",
"misc/pg18-copy-4.sql",
"misc/pg18-copy-5.sql",
"misc/pg18-copy-6.sql",
"misc/pg18-copy-7.sql",
"misc/pg18-copy-8.sql",
"misc/pg18-copy-9.sql",
"misc/pg18-copy-10.sql",
"misc/pg18-copy-11.sql",
"misc/pg18-copy-12.sql",
"misc/pg18-copy-13.sql",
"misc/pg18-copy-14.sql",
"misc/pg18-copy-15.sql",
"misc/pg18-copy-16.sql",
"misc/pg18-copy-17.sql",
"misc/pg18-copy-18.sql",
"misc/pg18-copy-19.sql",
"misc/pg18-copy-20.sql"
]);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@

import { FixtureTestUtils } from '../../test-utils';
const fixtures = new FixtureTestUtils();

it('misc-pg18-cte-insert', async () => {
await fixtures.runFixtureTests([
"misc/pg18-cte-insert-1.sql",
"misc/pg18-cte-insert-2.sql",
"misc/pg18-cte-insert-3.sql",
"misc/pg18-cte-insert-4.sql",
"misc/pg18-cte-insert-5.sql",
"misc/pg18-cte-insert-6.sql",
"misc/pg18-cte-insert-7.sql",
"misc/pg18-cte-insert-8.sql",
"misc/pg18-cte-insert-9.sql",
"misc/pg18-cte-insert-10.sql",
"misc/pg18-cte-insert-11.sql",
"misc/pg18-cte-insert-12.sql",
"misc/pg18-cte-insert-13.sql"
]);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

import { FixtureTestUtils } from '../../test-utils';
const fixtures = new FixtureTestUtils();

it('misc-pg18-grant-role', async () => {
await fixtures.runFixtureTests([
"misc/pg18-grant-role-1.sql",
"misc/pg18-grant-role-2.sql",
"misc/pg18-grant-role-3.sql",
"misc/pg18-grant-role-4.sql",
"misc/pg18-grant-role-5.sql",
"misc/pg18-grant-role-6.sql",
"misc/pg18-grant-role-7.sql",
"misc/pg18-grant-role-8.sql",
"misc/pg18-grant-role-9.sql",
"misc/pg18-grant-role-10.sql",
"misc/pg18-grant-role-11.sql",
"misc/pg18-grant-role-12.sql",
"misc/pg18-grant-role-13.sql",
"misc/pg18-grant-role-14.sql",
"misc/pg18-grant-role-15.sql",
"misc/pg18-grant-role-16.sql",
"misc/pg18-grant-role-17.sql",
"misc/pg18-grant-role-18.sql",
"misc/pg18-grant-role-19.sql"
]);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

import { FixtureTestUtils } from '../../test-utils';
const fixtures = new FixtureTestUtils();

it('misc-pg18-identity-storage', async () => {
await fixtures.runFixtureTests([
"misc/pg18-identity-storage-1.sql",
"misc/pg18-identity-storage-2.sql",
"misc/pg18-identity-storage-3.sql",
"misc/pg18-identity-storage-4.sql",
"misc/pg18-identity-storage-5.sql",
"misc/pg18-identity-storage-6.sql",
"misc/pg18-identity-storage-7.sql",
"misc/pg18-identity-storage-8.sql",
"misc/pg18-identity-storage-9.sql",
"misc/pg18-identity-storage-10.sql",
"misc/pg18-identity-storage-11.sql",
"misc/pg18-identity-storage-12.sql",
"misc/pg18-identity-storage-13.sql",
"misc/pg18-identity-storage-14.sql",
"misc/pg18-identity-storage-15.sql",
"misc/pg18-identity-storage-16.sql",
"misc/pg18-identity-storage-17.sql",
"misc/pg18-identity-storage-18.sql",
"misc/pg18-identity-storage-19.sql"
]);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@

import { FixtureTestUtils } from '../../test-utils';
const fixtures = new FixtureTestUtils();

it('misc-pg18-misc-ddl', async () => {
await fixtures.runFixtureTests([
"misc/pg18-misc-ddl-1.sql",
"misc/pg18-misc-ddl-2.sql",
"misc/pg18-misc-ddl-3.sql",
"misc/pg18-misc-ddl-4.sql",
"misc/pg18-misc-ddl-5.sql",
"misc/pg18-misc-ddl-6.sql",
"misc/pg18-misc-ddl-7.sql",
"misc/pg18-misc-ddl-8.sql",
"misc/pg18-misc-ddl-9.sql",
"misc/pg18-misc-ddl-10.sql",
"misc/pg18-misc-ddl-11.sql",
"misc/pg18-misc-ddl-12.sql",
"misc/pg18-misc-ddl-13.sql",
"misc/pg18-misc-ddl-14.sql",
"misc/pg18-misc-ddl-15.sql"
]);
});
Loading
Loading