parse
ALTER TABLE a RENAME TO b
----
ALTER TABLE a RENAME TO b
ALTER TABLE a RENAME TO b -- fully parenthesized
ALTER TABLE a RENAME TO b -- literals removed
ALTER TABLE _ RENAME TO _ -- identifiers removed

parse
EXPLAIN ALTER TABLE a RENAME TO b
----
EXPLAIN ALTER TABLE a RENAME TO b
EXPLAIN ALTER TABLE a RENAME TO b -- fully parenthesized
EXPLAIN ALTER TABLE a RENAME TO b -- literals removed
EXPLAIN ALTER TABLE _ RENAME TO _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a RENAME TO b
----
ALTER TABLE IF EXISTS a RENAME TO b
ALTER TABLE IF EXISTS a RENAME TO b -- fully parenthesized
ALTER TABLE IF EXISTS a RENAME TO b -- literals removed
ALTER TABLE IF EXISTS _ RENAME TO _ -- identifiers removed

parse
ALTER TABLE a RENAME COLUMN c1 TO c2
----
ALTER TABLE a RENAME COLUMN c1 TO c2
ALTER TABLE a RENAME COLUMN c1 TO c2 -- fully parenthesized
ALTER TABLE a RENAME COLUMN c1 TO c2 -- literals removed
ALTER TABLE _ RENAME COLUMN _ TO _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a RENAME COLUMN c1 TO c2
----
ALTER TABLE IF EXISTS a RENAME COLUMN c1 TO c2
ALTER TABLE IF EXISTS a RENAME COLUMN c1 TO c2 -- fully parenthesized
ALTER TABLE IF EXISTS a RENAME COLUMN c1 TO c2 -- literals removed
ALTER TABLE IF EXISTS _ RENAME COLUMN _ TO _ -- identifiers removed

parse
ALTER TABLE a RENAME b TO c
----
ALTER TABLE a RENAME COLUMN b TO c -- normalized!
ALTER TABLE a RENAME COLUMN b TO c -- fully parenthesized
ALTER TABLE a RENAME COLUMN b TO c -- literals removed
ALTER TABLE _ RENAME COLUMN _ TO _ -- identifiers removed

parse
ALTER TABLE a RENAME CONSTRAINT c1 TO c2
----
ALTER TABLE a RENAME CONSTRAINT c1 TO c2
ALTER TABLE a RENAME CONSTRAINT c1 TO c2 -- fully parenthesized
ALTER TABLE a RENAME CONSTRAINT c1 TO c2 -- literals removed
ALTER TABLE _ RENAME CONSTRAINT _ TO _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a RENAME CONSTRAINT c1 TO c2
----
ALTER TABLE IF EXISTS a RENAME CONSTRAINT c1 TO c2
ALTER TABLE IF EXISTS a RENAME CONSTRAINT c1 TO c2 -- fully parenthesized
ALTER TABLE IF EXISTS a RENAME CONSTRAINT c1 TO c2 -- literals removed
ALTER TABLE IF EXISTS _ RENAME CONSTRAINT _ TO _ -- identifiers removed

parse
ALTER TABLE a RENAME CONSTRAINT c TO d, RENAME COLUMN e TO f
----
ALTER TABLE a RENAME CONSTRAINT c TO d, RENAME COLUMN e TO f
ALTER TABLE a RENAME CONSTRAINT c TO d, RENAME COLUMN e TO f -- fully parenthesized
ALTER TABLE a RENAME CONSTRAINT c TO d, RENAME COLUMN e TO f -- literals removed
ALTER TABLE _ RENAME CONSTRAINT _ TO _, RENAME COLUMN _ TO _ -- identifiers removed

error
ALTER TABLE t RENAME COLUMN x TO family
----
at or near "family": syntax error
DETAIL: source SQL:
ALTER TABLE t RENAME COLUMN x TO family
                                 ^
HINT: try \h ALTER TABLE

error
ALTER TABLE t RENAME TO t[TRUE]
----
at or near "[": syntax error
DETAIL: source SQL:
ALTER TABLE t RENAME TO t[TRUE]
                         ^

parse
ALTER TABLE a SET LOCALITY GLOBAL
----
ALTER TABLE a SET LOCALITY GLOBAL
ALTER TABLE a SET LOCALITY GLOBAL -- fully parenthesized
ALTER TABLE a SET LOCALITY GLOBAL -- literals removed
ALTER TABLE _ SET LOCALITY GLOBAL -- identifiers removed


parse
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN region_name
----
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN region_name
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN region_name -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN region_name -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY TABLE IN _ -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL IN "us-west-1"
----
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN "us-west-1" -- normalized!
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN "us-west-1" -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN "us-west-1" -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY TABLE IN _ -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION
----
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE
----
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- normalized!
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL
----
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- normalized!
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL IN PRIMARY REGION
----
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- normalized!
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY TABLE IN PRIMARY REGION -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL BY ROW
----
ALTER TABLE a SET LOCALITY REGIONAL BY ROW
ALTER TABLE a SET LOCALITY REGIONAL BY ROW -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY ROW -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY ROW -- identifiers removed

parse
ALTER TABLE a SET LOCALITY REGIONAL BY ROW AS bobby
----
ALTER TABLE a SET LOCALITY REGIONAL BY ROW AS bobby
ALTER TABLE a SET LOCALITY REGIONAL BY ROW AS bobby -- fully parenthesized
ALTER TABLE a SET LOCALITY REGIONAL BY ROW AS bobby -- literals removed
ALTER TABLE _ SET LOCALITY REGIONAL BY ROW AS _ -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
----
ALTER TABLE a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
ALTER TABLE a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8, ADD CONSTRAINT _ UNIQUE (_) -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT8 ON UPDATE 1
----
ALTER TABLE a ADD COLUMN b INT8 ON UPDATE 1
ALTER TABLE a ADD COLUMN b INT8 ON UPDATE (1) -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 ON UPDATE _ -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 ON UPDATE 1 -- identifiers removed

parse
EXPLAIN ALTER TABLE a ADD COLUMN b INT8
----
EXPLAIN ALTER TABLE a ADD COLUMN b INT8
EXPLAIN ALTER TABLE a ADD COLUMN b INT8 -- fully parenthesized
EXPLAIN ALTER TABLE a ADD COLUMN b INT8 -- literals removed
EXPLAIN ALTER TABLE _ ADD COLUMN _ INT8 -- identifiers removed

parse
ALTER TABLE a ADD b INT8
----
ALTER TABLE a ADD COLUMN b INT8 -- normalized!
ALTER TABLE a ADD COLUMN b INT8 -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b
"char"
----
ALTER TABLE a ADD COLUMN b "char" -- normalized!
ALTER TABLE a ADD COLUMN b "char" -- fully parenthesized
ALTER TABLE a ADD COLUMN b "char" -- literals removed
ALTER TABLE _ ADD COLUMN _ "char" -- identifiers removed

parse
ALTER TABLE a ADD COLUMN "b"
"char"
----
ALTER TABLE a ADD COLUMN b "char" -- normalized!
ALTER TABLE a ADD COLUMN b "char" -- fully parenthesized
ALTER TABLE a ADD COLUMN b "char" -- literals removed
ALTER TABLE _ ADD COLUMN _ "char" -- identifiers removed

parse
ALTER TABLE a ADD IF NOT EXISTS b INT8
----
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8 -- normalized!
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8 -- fully parenthesized
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8 -- literals removed
ALTER TABLE _ ADD COLUMN IF NOT EXISTS _ INT8 -- identifiers removed

parse
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
----
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- fully parenthesized
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- literals removed
ALTER TABLE _ ADD COLUMN IF NOT EXISTS _ INT8, ADD CONSTRAINT _ UNIQUE (_) -- identifiers removed

parse
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
----
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- fully parenthesized
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- literals removed
ALTER TABLE IF EXISTS _ ADD COLUMN _ INT8, ADD CONSTRAINT _ UNIQUE (_) -- identifiers removed

parse
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
----
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- fully parenthesized
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- literals removed
ALTER TABLE IF EXISTS _ ADD COLUMN IF NOT EXISTS _ INT8, ADD CONSTRAINT _ UNIQUE (_) -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT8 UNIQUE WITHOUT INDEX, ADD CONSTRAINT a_no_idx UNIQUE WITHOUT INDEX (a)
----
ALTER TABLE a ADD COLUMN b INT8 UNIQUE WITHOUT INDEX, ADD CONSTRAINT a_no_idx UNIQUE WITHOUT INDEX (a)
ALTER TABLE a ADD COLUMN b INT8 UNIQUE WITHOUT INDEX, ADD CONSTRAINT a_no_idx UNIQUE WITHOUT INDEX (a) -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 UNIQUE WITHOUT INDEX, ADD CONSTRAINT a_no_idx UNIQUE WITHOUT INDEX (a) -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 UNIQUE WITHOUT INDEX, ADD CONSTRAINT _ UNIQUE WITHOUT INDEX (_) -- identifiers removed

parse
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) NOT VALID
----
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) NOT VALID
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) NOT VALID -- fully parenthesized
ALTER TABLE a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) NOT VALID -- literals removed
ALTER TABLE _ ADD COLUMN IF NOT EXISTS _ INT8, ADD CONSTRAINT _ UNIQUE (_) NOT VALID -- identifiers removed

parse
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
----
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- fully parenthesized
ALTER TABLE IF EXISTS a ADD COLUMN b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- literals removed
ALTER TABLE IF EXISTS _ ADD COLUMN _ INT8, ADD CONSTRAINT _ UNIQUE (_) -- identifiers removed

parse
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
----
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a)
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- fully parenthesized
ALTER TABLE IF EXISTS a ADD COLUMN IF NOT EXISTS b INT8, ADD CONSTRAINT a_idx UNIQUE (a) -- literals removed
ALTER TABLE IF EXISTS _ ADD COLUMN IF NOT EXISTS _ INT8, ADD CONSTRAINT _ UNIQUE (_) -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a
----
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 FAMILY _ -- identifiers removed

parse
ALTER TABLE a ADD b INT8 FAMILY fam_a
----
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a -- normalized!
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 FAMILY fam_a -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 FAMILY _ -- identifiers removed


parse
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY
----
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 CREATE FAMILY -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY fam_b
----
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY fam_b
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY fam_b -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 CREATE FAMILY fam_b -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 CREATE FAMILY _ -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT8 CREATE IF NOT EXISTS FAMILY fam_b
----
ALTER TABLE a ADD COLUMN b INT8 CREATE IF NOT EXISTS FAMILY fam_b
ALTER TABLE a ADD COLUMN b INT8 CREATE IF NOT EXISTS FAMILY fam_b -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 CREATE IF NOT EXISTS FAMILY fam_b -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 CREATE IF NOT EXISTS FAMILY _ -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS IDENTITY
----
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED ALWAYS AS IDENTITY -- normalized!
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED ALWAYS AS IDENTITY -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED ALWAYS AS IDENTITY -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 NOT NULL GENERATED ALWAYS AS IDENTITY -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT GENERATED BY DEFAULT AS IDENTITY
----
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- normalized!
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- identifiers removed

parse
ALTER TABLE a ADD COLUMN b INT NOT NULL GENERATED BY DEFAULT AS IDENTITY
----
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- normalized!
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- fully parenthesized
ALTER TABLE a ADD COLUMN b INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- literals removed
ALTER TABLE _ ADD COLUMN _ INT8 NOT NULL GENERATED BY DEFAULT AS IDENTITY -- identifiers removed

parse
ALTER TABLE t ALTER PRIMARY KEY USING COLUMNS (a, b, c)
----
ALTER TABLE t ALTER PRIMARY KEY USING COLUMNS (a, b, c)
ALTER TABLE t ALTER PRIMARY KEY USING COLUMNS (a, b, c) -- fully parenthesized
ALTER TABLE t ALTER PRIMARY KEY USING COLUMNS (a, b, c) -- literals removed
ALTER TABLE _ ALTER PRIMARY KEY USING COLUMNS (_, _, _) -- identifiers removed

parse
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx
----
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE _ DROP COLUMN _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
----
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE _ DROP COLUMN IF EXISTS _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx
----
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE IF EXISTS _ DROP COLUMN _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
----
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE IF EXISTS _ DROP COLUMN IF EXISTS _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx
----
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE a DROP COLUMN b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE _ DROP COLUMN _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
----
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE _ DROP COLUMN IF EXISTS _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx
----
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE IF EXISTS a DROP COLUMN b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE IF EXISTS _ DROP COLUMN _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
----
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- fully parenthesized
ALTER TABLE IF EXISTS a DROP COLUMN IF EXISTS b, DROP CONSTRAINT a_idx -- literals removed
ALTER TABLE IF EXISTS _ DROP COLUMN IF EXISTS _, DROP CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE a DROP COLUMN b CASCADE
----
ALTER TABLE a DROP COLUMN b CASCADE
ALTER TABLE a DROP COLUMN b CASCADE -- fully parenthesized
ALTER TABLE a DROP COLUMN b CASCADE -- literals removed
ALTER TABLE _ DROP COLUMN _ CASCADE -- identifiers removed

parse
ALTER TABLE a DROP COLUMN b RESTRICT
----
ALTER TABLE a DROP COLUMN b RESTRICT
ALTER TABLE a DROP COLUMN b RESTRICT -- fully parenthesized
ALTER TABLE a DROP COLUMN b RESTRICT -- literals removed
ALTER TABLE _ DROP COLUMN _ RESTRICT -- identifiers removed

parse
ALTER TABLE a DROP b
----
ALTER TABLE a DROP COLUMN b -- normalized!
ALTER TABLE a DROP COLUMN b -- fully parenthesized
ALTER TABLE a DROP COLUMN b -- literals removed
ALTER TABLE _ DROP COLUMN _ -- identifiers removed

parse
ALTER TABLE a DROP CONSTRAINT b CASCADE
----
ALTER TABLE a DROP CONSTRAINT b CASCADE
ALTER TABLE a DROP CONSTRAINT b CASCADE -- fully parenthesized
ALTER TABLE a DROP CONSTRAINT b CASCADE -- literals removed
ALTER TABLE _ DROP CONSTRAINT _ CASCADE -- identifiers removed

parse
ALTER TABLE a DROP CONSTRAINT IF EXISTS b RESTRICT
----
ALTER TABLE a DROP CONSTRAINT IF EXISTS b RESTRICT
ALTER TABLE a DROP CONSTRAINT IF EXISTS b RESTRICT -- fully parenthesized
ALTER TABLE a DROP CONSTRAINT IF EXISTS b RESTRICT -- literals removed
ALTER TABLE _ DROP CONSTRAINT IF EXISTS _ RESTRICT -- identifiers removed

parse
ALTER TABLE a VALIDATE CONSTRAINT a
----
ALTER TABLE a VALIDATE CONSTRAINT a
ALTER TABLE a VALIDATE CONSTRAINT a -- fully parenthesized
ALTER TABLE a VALIDATE CONSTRAINT a -- literals removed
ALTER TABLE _ VALIDATE CONSTRAINT _ -- identifiers removed

parse
ALTER TABLE a ADD PRIMARY KEY (x, y, z)
----
ALTER TABLE a ADD PRIMARY KEY (x, y, z)
ALTER TABLE a ADD PRIMARY KEY (x, y, z) -- fully parenthesized
ALTER TABLE a ADD PRIMARY KEY (x, y, z) -- literals removed
ALTER TABLE _ ADD PRIMARY KEY (_, _, _) -- identifiers removed

parse
ALTER TABLE a ADD CONSTRAINT "primary" PRIMARY KEY (x, y, z)
----
ALTER TABLE a ADD CONSTRAINT "primary" PRIMARY KEY (x, y, z)
ALTER TABLE a ADD CONSTRAINT "primary" PRIMARY KEY (x, y, z) -- fully parenthesized
ALTER TABLE a ADD CONSTRAINT "primary" PRIMARY KEY (x, y, z) -- literals removed
ALTER TABLE _ ADD CONSTRAINT _ PRIMARY KEY (_, _, _) -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET DEFAULT 42
----
ALTER TABLE a ALTER COLUMN b SET DEFAULT 42
ALTER TABLE a ALTER COLUMN b SET DEFAULT (42) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DEFAULT _ -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DEFAULT 42 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET DEFAULT NULL
----
ALTER TABLE a ALTER COLUMN b SET DEFAULT NULL
ALTER TABLE a ALTER COLUMN b SET DEFAULT (NULL) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DEFAULT _ -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DEFAULT NULL -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b DROP DEFAULT
----
ALTER TABLE a ALTER COLUMN b DROP DEFAULT
ALTER TABLE a ALTER COLUMN b DROP DEFAULT -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP DEFAULT -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP DEFAULT -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET ON UPDATE 42
----
ALTER TABLE a ALTER COLUMN b SET ON UPDATE 42
ALTER TABLE a ALTER COLUMN b SET ON UPDATE (42) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET ON UPDATE _ -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET ON UPDATE 42 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET ON UPDATE NULL
----
ALTER TABLE a ALTER COLUMN b SET ON UPDATE NULL
ALTER TABLE a ALTER COLUMN b SET ON UPDATE (NULL) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET ON UPDATE _ -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET ON UPDATE NULL -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET ON UPDATE current_timestamp()
----
ALTER TABLE a ALTER COLUMN b SET ON UPDATE current_timestamp()
ALTER TABLE a ALTER COLUMN b SET ON UPDATE (current_timestamp()) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET ON UPDATE current_timestamp() -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET ON UPDATE current_timestamp() -- identifiers removed

parse
ALTER TABLE a ALTER b SET ON UPDATE c IS NOT DISTINCT FROM FALSE
----
ALTER TABLE a ALTER COLUMN b SET ON UPDATE c IS false -- normalized!
ALTER TABLE a ALTER COLUMN b SET ON UPDATE ((c) IS (false)) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET ON UPDATE c IS NOT DISTINCT FROM _ -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET ON UPDATE _ IS false -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b DROP ON UPDATE
----
ALTER TABLE a ALTER COLUMN b DROP ON UPDATE
ALTER TABLE a ALTER COLUMN b DROP ON UPDATE -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP ON UPDATE -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP ON UPDATE -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b DROP NOT NULL
----
ALTER TABLE a ALTER COLUMN b DROP NOT NULL
ALTER TABLE a ALTER COLUMN b DROP NOT NULL -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP NOT NULL -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP NOT NULL -- identifiers removed

parse
ALTER TABLE a ALTER b DROP NOT NULL
----
ALTER TABLE a ALTER COLUMN b DROP NOT NULL -- normalized!
ALTER TABLE a ALTER COLUMN b DROP NOT NULL -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP NOT NULL -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP NOT NULL -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b DROP STORED
----
ALTER TABLE a ALTER COLUMN b DROP STORED
ALTER TABLE a ALTER COLUMN b DROP STORED -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP STORED -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP STORED -- identifiers removed

parse
ALTER TABLE a ALTER b DROP STORED
----
ALTER TABLE a ALTER COLUMN b DROP STORED -- normalized!
ALTER TABLE a ALTER COLUMN b DROP STORED -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP STORED -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP STORED -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8
----
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DATA TYPE INT8 -- identifiers removed

parse
ALTER TABLE a ALTER b TYPE INT8
----
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8 -- normalized!
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DATA TYPE INT8 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DATA TYPE INT8 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET DATA TYPE STRING COLLATE en USING b::STRING
----
ALTER TABLE a ALTER COLUMN b SET DATA TYPE STRING COLLATE en USING b::STRING
ALTER TABLE a ALTER COLUMN b SET DATA TYPE STRING COLLATE en USING ((b)::STRING) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DATA TYPE STRING COLLATE en USING b::STRING -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DATA TYPE STRING COLLATE en USING _::STRING -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET DATA TYPE DECIMAL(10)[]
----
ALTER TABLE a ALTER COLUMN b SET DATA TYPE DECIMAL(10)[]
ALTER TABLE a ALTER COLUMN b SET DATA TYPE DECIMAL(10)[] -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DATA TYPE DECIMAL(10)[] -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DATA TYPE DECIMAL(10)[] -- identifiers removed

parse
ALTER TABLE a SET SCHEMA s
----
ALTER TABLE a SET SCHEMA s
ALTER TABLE a SET SCHEMA s -- fully parenthesized
ALTER TABLE a SET SCHEMA s -- literals removed
ALTER TABLE _ SET SCHEMA _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a SET SCHEMA s
----
ALTER TABLE IF EXISTS a SET SCHEMA s
ALTER TABLE IF EXISTS a SET SCHEMA s -- fully parenthesized
ALTER TABLE IF EXISTS a SET SCHEMA s -- literals removed
ALTER TABLE IF EXISTS _ SET SCHEMA _ -- identifiers removed

parse
ALTER TABLE a OWNER TO foo
----
ALTER TABLE a OWNER TO foo
ALTER TABLE a OWNER TO foo -- fully parenthesized
ALTER TABLE a OWNER TO foo -- literals removed
ALTER TABLE _ OWNER TO _ -- identifiers removed

parse
ALTER TABLE IF EXISTS a OWNER TO foo
----
ALTER TABLE IF EXISTS a OWNER TO foo
ALTER TABLE IF EXISTS a OWNER TO foo -- fully parenthesized
ALTER TABLE IF EXISTS a OWNER TO foo -- literals removed
ALTER TABLE IF EXISTS _ OWNER TO _ -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1)
----
ALTER TABLE a SPLIT AT VALUES (1)
ALTER TABLE a SPLIT AT VALUES ((1)) -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) -- identifiers removed

parse
EXPLAIN ALTER TABLE a SPLIT AT VALUES (1)
----
EXPLAIN ALTER TABLE a SPLIT AT VALUES (1)
EXPLAIN ALTER TABLE a SPLIT AT VALUES ((1)) -- fully parenthesized
EXPLAIN ALTER TABLE a SPLIT AT VALUES (_) -- literals removed
EXPLAIN ALTER TABLE _ SPLIT AT VALUES (1) -- identifiers removed

parse
ALTER TABLE a SPLIT AT SELECT * FROM t
----
ALTER TABLE a SPLIT AT SELECT * FROM t
ALTER TABLE a SPLIT AT SELECT (*) FROM t -- fully parenthesized
ALTER TABLE a SPLIT AT SELECT * FROM t -- literals removed
ALTER TABLE _ SPLIT AT SELECT * FROM _ -- identifiers removed

parse
ALTER TABLE d.a SPLIT AT VALUES ('b', 2)
----
ALTER TABLE d.a SPLIT AT VALUES ('b', 2)
ALTER TABLE d.a SPLIT AT VALUES (('b'), (2)) -- fully parenthesized
ALTER TABLE d.a SPLIT AT VALUES ('_', _) -- literals removed
ALTER TABLE _._ SPLIT AT VALUES ('b', 2) -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '1 day'
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '1 day'
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION ('1 day') -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION '_' -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION '1 day' -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '1 day':::INTERVAL
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '1 day':::INTERVAL
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION (('1 day'):::INTERVAL) -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION '_':::INTERVAL -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION '1 day':::INTERVAL -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '7258118400000000.0'
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '7258118400000000.0'
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION ('7258118400000000.0') -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION '_' -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION '7258118400000000.0' -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '2200-01-01 00:00:00.0'
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '2200-01-01 00:00:00.0'
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION ('2200-01-01 00:00:00.0') -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION '_' -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION '2200-01-01 00:00:00.0' -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION TIMESTAMP '2200-01-01 00:00:00.0'
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION TIMESTAMP '2200-01-01 00:00:00.0'
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION (TIMESTAMP ('2200-01-01 00:00:00.0')) -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION TIMESTAMP '_' -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION TIMESTAMP '2200-01-01 00:00:00.0' -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '2200-01-01 00:00:00.0':::TIMESTAMP
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION '2200-01-01 00:00:00.0':::TIMESTAMP
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION (('2200-01-01 00:00:00.0'):::TIMESTAMP) -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION '_':::TIMESTAMP -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION '2200-01-01 00:00:00.0':::TIMESTAMP -- identifiers removed

parse
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION TIMESTAMPTZ '2200-01-01 00:00:00.0'
----
ALTER TABLE a SPLIT AT VALUES (1) WITH EXPIRATION TIMESTAMPTZ '2200-01-01 00:00:00.0'
ALTER TABLE a SPLIT AT VALUES ((1)) WITH EXPIRATION (TIMESTAMPTZ ('2200-01-01 00:00:00.0')) -- fully parenthesized
ALTER TABLE a SPLIT AT VALUES (_) WITH EXPIRATION TIMESTAMPTZ '_' -- literals removed
ALTER TABLE _ SPLIT AT VALUES (1) WITH EXPIRATION TIMESTAMPTZ '2200-01-01 00:00:00.0' -- identifiers removed

parse
ALTER TABLE a UNSPLIT AT VALUES (1)
----
ALTER TABLE a UNSPLIT AT VALUES (1)
ALTER TABLE a UNSPLIT AT VALUES ((1)) -- fully parenthesized
ALTER TABLE a UNSPLIT AT VALUES (_) -- literals removed
ALTER TABLE _ UNSPLIT AT VALUES (1) -- identifiers removed

parse
EXPLAIN ALTER TABLE a UNSPLIT AT VALUES (1)
----
EXPLAIN ALTER TABLE a UNSPLIT AT VALUES (1)
EXPLAIN ALTER TABLE a UNSPLIT AT VALUES ((1)) -- fully parenthesized
EXPLAIN ALTER TABLE a UNSPLIT AT VALUES (_) -- literals removed
EXPLAIN ALTER TABLE _ UNSPLIT AT VALUES (1) -- identifiers removed

parse
ALTER TABLE a UNSPLIT AT SELECT * FROM t
----
ALTER TABLE a UNSPLIT AT SELECT * FROM t
ALTER TABLE a UNSPLIT AT SELECT (*) FROM t -- fully parenthesized
ALTER TABLE a UNSPLIT AT SELECT * FROM t -- literals removed
ALTER TABLE _ UNSPLIT AT SELECT * FROM _ -- identifiers removed

parse
ALTER TABLE d.a UNSPLIT AT VALUES ('b', 2)
----
ALTER TABLE d.a UNSPLIT AT VALUES ('b', 2)
ALTER TABLE d.a UNSPLIT AT VALUES (('b'), (2)) -- fully parenthesized
ALTER TABLE d.a UNSPLIT AT VALUES ('_', _) -- literals removed
ALTER TABLE _._ UNSPLIT AT VALUES ('b', 2) -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE VALUES (ARRAY[1], 1)
----
ALTER TABLE a RELOCATE VOTERS VALUES (ARRAY[1], 1) -- normalized!
ALTER TABLE a RELOCATE VOTERS VALUES ((ARRAY[(1)]), (1)) -- fully parenthesized
ALTER TABLE a RELOCATE VOTERS VALUES (ARRAY[_], _) -- literals removed
ALTER TABLE _ RELOCATE VOTERS VALUES (ARRAY[1], 1) -- identifiers removed

parse
EXPLAIN ALTER TABLE a EXPERIMENTAL_RELOCATE TABLE b
----
EXPLAIN ALTER TABLE a RELOCATE VOTERS TABLE b -- normalized!
EXPLAIN ALTER TABLE a RELOCATE VOTERS TABLE b -- fully parenthesized
EXPLAIN ALTER TABLE a RELOCATE VOTERS TABLE b -- literals removed
EXPLAIN ALTER TABLE _ RELOCATE VOTERS TABLE _ -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE SELECT * FROM t
----
ALTER TABLE a RELOCATE VOTERS SELECT * FROM t -- normalized!
ALTER TABLE a RELOCATE VOTERS SELECT (*) FROM t -- fully parenthesized
ALTER TABLE a RELOCATE VOTERS SELECT * FROM t -- literals removed
ALTER TABLE _ RELOCATE VOTERS SELECT * FROM _ -- identifiers removed

parse
ALTER TABLE d.a EXPERIMENTAL_RELOCATE VALUES (ARRAY[1, 2, 3], 'b', 2)
----
ALTER TABLE d.a RELOCATE VOTERS VALUES (ARRAY[1, 2, 3], 'b', 2) -- normalized!
ALTER TABLE d.a RELOCATE VOTERS VALUES ((ARRAY[(1), (2), (3)]), ('b'), (2)) -- fully parenthesized
ALTER TABLE d.a RELOCATE VOTERS VALUES (ARRAY[_, _, __more1_10__], '_', _) -- literals removed
ALTER TABLE _._ RELOCATE VOTERS VALUES (ARRAY[1, 2, 3], 'b', 2) -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE VOTERS VALUES (ARRAY[1], 1)
----
ALTER TABLE a RELOCATE VOTERS VALUES (ARRAY[1], 1) -- normalized!
ALTER TABLE a RELOCATE VOTERS VALUES ((ARRAY[(1)]), (1)) -- fully parenthesized
ALTER TABLE a RELOCATE VOTERS VALUES (ARRAY[_], _) -- literals removed
ALTER TABLE _ RELOCATE VOTERS VALUES (ARRAY[1], 1) -- identifiers removed

parse
EXPLAIN ALTER TABLE a EXPERIMENTAL_RELOCATE VOTERS TABLE b
----
EXPLAIN ALTER TABLE a RELOCATE VOTERS TABLE b -- normalized!
EXPLAIN ALTER TABLE a RELOCATE VOTERS TABLE b -- fully parenthesized
EXPLAIN ALTER TABLE a RELOCATE VOTERS TABLE b -- literals removed
EXPLAIN ALTER TABLE _ RELOCATE VOTERS TABLE _ -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE VOTERS SELECT * FROM t
----
ALTER TABLE a RELOCATE VOTERS SELECT * FROM t -- normalized!
ALTER TABLE a RELOCATE VOTERS SELECT (*) FROM t -- fully parenthesized
ALTER TABLE a RELOCATE VOTERS SELECT * FROM t -- literals removed
ALTER TABLE _ RELOCATE VOTERS SELECT * FROM _ -- identifiers removed

parse
ALTER TABLE d.a EXPERIMENTAL_RELOCATE VOTERS VALUES (ARRAY[1, 2, 3], 'b', 2)
----
ALTER TABLE d.a RELOCATE VOTERS VALUES (ARRAY[1, 2, 3], 'b', 2) -- normalized!
ALTER TABLE d.a RELOCATE VOTERS VALUES ((ARRAY[(1), (2), (3)]), ('b'), (2)) -- fully parenthesized
ALTER TABLE d.a RELOCATE VOTERS VALUES (ARRAY[_, _, __more1_10__], '_', _) -- literals removed
ALTER TABLE _._ RELOCATE VOTERS VALUES (ARRAY[1, 2, 3], 'b', 2) -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE NONVOTERS VALUES (ARRAY[1], 1)
----
ALTER TABLE a RELOCATE NONVOTERS VALUES (ARRAY[1], 1) -- normalized!
ALTER TABLE a RELOCATE NONVOTERS VALUES ((ARRAY[(1)]), (1)) -- fully parenthesized
ALTER TABLE a RELOCATE NONVOTERS VALUES (ARRAY[_], _) -- literals removed
ALTER TABLE _ RELOCATE NONVOTERS VALUES (ARRAY[1], 1) -- identifiers removed

parse
EXPLAIN ALTER TABLE a EXPERIMENTAL_RELOCATE NONVOTERS TABLE b
----
EXPLAIN ALTER TABLE a RELOCATE NONVOTERS TABLE b -- normalized!
EXPLAIN ALTER TABLE a RELOCATE NONVOTERS TABLE b -- fully parenthesized
EXPLAIN ALTER TABLE a RELOCATE NONVOTERS TABLE b -- literals removed
EXPLAIN ALTER TABLE _ RELOCATE NONVOTERS TABLE _ -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE NONVOTERS SELECT * FROM t
----
ALTER TABLE a RELOCATE NONVOTERS SELECT * FROM t -- normalized!
ALTER TABLE a RELOCATE NONVOTERS SELECT (*) FROM t -- fully parenthesized
ALTER TABLE a RELOCATE NONVOTERS SELECT * FROM t -- literals removed
ALTER TABLE _ RELOCATE NONVOTERS SELECT * FROM _ -- identifiers removed

parse
ALTER TABLE d.a EXPERIMENTAL_RELOCATE NONVOTERS VALUES (ARRAY[1, 2, 3], 'b', 2)
----
ALTER TABLE d.a RELOCATE NONVOTERS VALUES (ARRAY[1, 2, 3], 'b', 2) -- normalized!
ALTER TABLE d.a RELOCATE NONVOTERS VALUES ((ARRAY[(1), (2), (3)]), ('b'), (2)) -- fully parenthesized
ALTER TABLE d.a RELOCATE NONVOTERS VALUES (ARRAY[_, _, __more1_10__], '_', _) -- literals removed
ALTER TABLE _._ RELOCATE NONVOTERS VALUES (ARRAY[1, 2, 3], 'b', 2) -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE LEASE VALUES (1, 1)
----
ALTER TABLE a RELOCATE LEASE VALUES (1, 1) -- normalized!
ALTER TABLE a RELOCATE LEASE VALUES ((1), (1)) -- fully parenthesized
ALTER TABLE a RELOCATE LEASE VALUES (_, _) -- literals removed
ALTER TABLE _ RELOCATE LEASE VALUES (1, 1) -- identifiers removed

parse
ALTER TABLE a EXPERIMENTAL_RELOCATE LEASE SELECT * FROM t
----
ALTER TABLE a RELOCATE LEASE SELECT * FROM t -- normalized!
ALTER TABLE a RELOCATE LEASE SELECT (*) FROM t -- fully parenthesized
ALTER TABLE a RELOCATE LEASE SELECT * FROM t -- literals removed
ALTER TABLE _ RELOCATE LEASE SELECT * FROM _ -- identifiers removed

parse
ALTER TABLE d.a EXPERIMENTAL_RELOCATE LEASE VALUES (1, 'b', 2)
----
ALTER TABLE d.a RELOCATE LEASE VALUES (1, 'b', 2) -- normalized!
ALTER TABLE d.a RELOCATE LEASE VALUES ((1), ('b'), (2)) -- fully parenthesized
ALTER TABLE d.a RELOCATE LEASE VALUES (_, '_', __more1_10__) -- literals removed
ALTER TABLE _._ RELOCATE LEASE VALUES (1, 'b', 2) -- identifiers removed

parse
ALTER TABLE a SCATTER
----
ALTER TABLE a SCATTER
ALTER TABLE a SCATTER -- fully parenthesized
ALTER TABLE a SCATTER -- literals removed
ALTER TABLE _ SCATTER -- identifiers removed

parse
EXPLAIN ALTER TABLE a SCATTER
----
EXPLAIN ALTER TABLE a SCATTER
EXPLAIN ALTER TABLE a SCATTER -- fully parenthesized
EXPLAIN ALTER TABLE a SCATTER -- literals removed
EXPLAIN ALTER TABLE _ SCATTER -- identifiers removed

parse
ALTER TABLE a SCATTER FROM (1, 2, 3) TO (4, 5, 6)
----
ALTER TABLE a SCATTER FROM (1, 2, 3) TO (4, 5, 6)
ALTER TABLE a SCATTER FROM ((1), (2), (3)) TO ((4), (5), (6)) -- fully parenthesized
ALTER TABLE a SCATTER FROM (_, _, _) TO (_, _, _) -- literals removed
ALTER TABLE _ SCATTER FROM (1, 2, 3) TO (4, 5, 6) -- identifiers removed

parse
ALTER TABLE d.a SCATTER
----
ALTER TABLE d.a SCATTER
ALTER TABLE d.a SCATTER -- fully parenthesized
ALTER TABLE d.a SCATTER -- literals removed
ALTER TABLE _._ SCATTER -- identifiers removed

parse
ALTER TABLE db.t CONFIGURE ZONE = 'foo'
----
ALTER TABLE db.t CONFIGURE ZONE = 'foo'
ALTER TABLE db.t CONFIGURE ZONE = ('foo') -- fully parenthesized
ALTER TABLE db.t CONFIGURE ZONE = '_' -- literals removed
ALTER TABLE _._ CONFIGURE ZONE = 'foo' -- identifiers removed

parse
EXPLAIN ALTER TABLE db.t CONFIGURE ZONE = 'foo'
----
EXPLAIN ALTER TABLE db.t CONFIGURE ZONE = 'foo'
EXPLAIN ALTER TABLE db.t CONFIGURE ZONE = ('foo') -- fully parenthesized
EXPLAIN ALTER TABLE db.t CONFIGURE ZONE = '_' -- literals removed
EXPLAIN ALTER TABLE _._ CONFIGURE ZONE = 'foo' -- identifiers removed

parse
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = 'foo'
----
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = 'foo'
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = ('foo') -- fully parenthesized
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = '_' -- literals removed
ALTER PARTITION _ OF TABLE _._ CONFIGURE ZONE = 'foo' -- identifiers removed

parse
EXPLAIN ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = 'foo'
----
EXPLAIN ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = 'foo'
EXPLAIN ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = ('foo') -- fully parenthesized
EXPLAIN ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE = '_' -- literals removed
EXPLAIN ALTER PARTITION _ OF TABLE _._ CONFIGURE ZONE = 'foo' -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE = 'foo'
----
ALTER TABLE t CONFIGURE ZONE = 'foo'
ALTER TABLE t CONFIGURE ZONE = ('foo') -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE = '_' -- literals removed
ALTER TABLE _ CONFIGURE ZONE = 'foo' -- identifiers removed

parse
ALTER PARTITION p OF TABLE t CONFIGURE ZONE = 'foo'
----
ALTER PARTITION p OF TABLE t CONFIGURE ZONE = 'foo'
ALTER PARTITION p OF TABLE t CONFIGURE ZONE = ('foo') -- fully parenthesized
ALTER PARTITION p OF TABLE t CONFIGURE ZONE = '_' -- literals removed
ALTER PARTITION _ OF TABLE _ CONFIGURE ZONE = 'foo' -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE = b'foo'
----
ALTER TABLE t CONFIGURE ZONE = b'foo'
ALTER TABLE t CONFIGURE ZONE = (b'foo') -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE = '_' -- literals removed
ALTER TABLE _ CONFIGURE ZONE = b'foo' -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE = a || b
----
ALTER TABLE t CONFIGURE ZONE = a || b
ALTER TABLE t CONFIGURE ZONE = ((a) || (b)) -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE = a || b -- literals removed
ALTER TABLE _ CONFIGURE ZONE = _ || _ -- identifiers removed

parse
ALTER TABLE db.t CONFIGURE ZONE USING foo = bar, baz = yay
----
ALTER TABLE db.t CONFIGURE ZONE USING foo = bar, baz = yay
ALTER TABLE db.t CONFIGURE ZONE USING foo = (bar), baz = (yay) -- fully parenthesized
ALTER TABLE db.t CONFIGURE ZONE USING foo = bar, baz = yay -- literals removed
ALTER TABLE _._ CONFIGURE ZONE USING _ = _, _ = _ -- identifiers removed

parse
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING foo = bar, baz = yay
----
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING foo = bar, baz = yay
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING foo = (bar), baz = (yay) -- fully parenthesized
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING foo = bar, baz = yay -- literals removed
ALTER PARTITION _ OF TABLE _._ CONFIGURE ZONE USING _ = _, _ = _ -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE USING foo = bar, baz = yay
----
ALTER TABLE t CONFIGURE ZONE USING foo = bar, baz = yay
ALTER TABLE t CONFIGURE ZONE USING foo = (bar), baz = (yay) -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE USING foo = bar, baz = yay -- literals removed
ALTER TABLE _ CONFIGURE ZONE USING _ = _, _ = _ -- identifiers removed

parse
ALTER TABLE db.t CONFIGURE ZONE USING foo.bar = yay
----
ALTER TABLE db.t CONFIGURE ZONE USING "foo.bar" = yay -- normalized!
ALTER TABLE db.t CONFIGURE ZONE USING "foo.bar" = (yay) -- fully parenthesized
ALTER TABLE db.t CONFIGURE ZONE USING "foo.bar" = yay -- literals removed
ALTER TABLE _._ CONFIGURE ZONE USING _ = _ -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE USING foo.bar = yay
----
ALTER TABLE t CONFIGURE ZONE USING "foo.bar" = yay -- normalized!
ALTER TABLE t CONFIGURE ZONE USING "foo.bar" = (yay) -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE USING "foo.bar" = yay -- literals removed
ALTER TABLE _ CONFIGURE ZONE USING _ = _ -- identifiers removed

parse
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING foo = bar, baz = yay
----
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING foo = bar, baz = yay
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING foo = (bar), baz = (yay) -- fully parenthesized
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING foo = bar, baz = yay -- literals removed
ALTER PARTITION _ OF TABLE _ CONFIGURE ZONE USING _ = _, _ = _ -- identifiers removed

parse
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING foo.bar = yay
----
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING "foo.bar" = yay -- normalized!
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING "foo.bar" = (yay) -- fully parenthesized
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING "foo.bar" = yay -- literals removed
ALTER PARTITION _ OF TABLE _ CONFIGURE ZONE USING _ = _ -- identifiers removed

parse
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING foo.bar = yay
----
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING "foo.bar" = yay -- normalized!
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING "foo.bar" = (yay) -- fully parenthesized
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING "foo.bar" = yay -- literals removed
ALTER PARTITION _ OF TABLE _._ CONFIGURE ZONE USING _ = _ -- identifiers removed

parse
ALTER TABLE db.t CONFIGURE ZONE DISCARD
----
ALTER TABLE db.t CONFIGURE ZONE DISCARD
ALTER TABLE db.t CONFIGURE ZONE DISCARD -- fully parenthesized
ALTER TABLE db.t CONFIGURE ZONE DISCARD -- literals removed
ALTER TABLE _._ CONFIGURE ZONE DISCARD -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE = NULL
----
ALTER TABLE t CONFIGURE ZONE DISCARD -- normalized!
ALTER TABLE t CONFIGURE ZONE DISCARD -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE DISCARD -- literals removed
ALTER TABLE _ CONFIGURE ZONE DISCARD -- identifiers removed

parse
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE DISCARD
----
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE DISCARD
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE DISCARD -- fully parenthesized
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE DISCARD -- literals removed
ALTER PARTITION _ OF TABLE _._ CONFIGURE ZONE DISCARD -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE DISCARD
----
ALTER TABLE t CONFIGURE ZONE DISCARD
ALTER TABLE t CONFIGURE ZONE DISCARD -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE DISCARD -- literals removed
ALTER TABLE _ CONFIGURE ZONE DISCARD -- identifiers removed

parse
ALTER PARTITION p OF TABLE t CONFIGURE ZONE DISCARD
----
ALTER PARTITION p OF TABLE t CONFIGURE ZONE DISCARD
ALTER PARTITION p OF TABLE t CONFIGURE ZONE DISCARD -- fully parenthesized
ALTER PARTITION p OF TABLE t CONFIGURE ZONE DISCARD -- literals removed
ALTER PARTITION _ OF TABLE _ CONFIGURE ZONE DISCARD -- identifiers removed


parse
ALTER TABLE db.t CONFIGURE ZONE USING DEFAULT
----
ALTER TABLE db.t CONFIGURE ZONE USING DEFAULT
ALTER TABLE db.t CONFIGURE ZONE USING DEFAULT -- fully parenthesized
ALTER TABLE db.t CONFIGURE ZONE USING DEFAULT -- literals removed
ALTER TABLE _._ CONFIGURE ZONE USING DEFAULT -- identifiers removed

parse
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING DEFAULT
----
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING DEFAULT
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING DEFAULT -- fully parenthesized
ALTER PARTITION p OF TABLE db.t CONFIGURE ZONE USING DEFAULT -- literals removed
ALTER PARTITION _ OF TABLE _._ CONFIGURE ZONE USING DEFAULT -- identifiers removed

parse
ALTER TABLE t CONFIGURE ZONE USING DEFAULT
----
ALTER TABLE t CONFIGURE ZONE USING DEFAULT
ALTER TABLE t CONFIGURE ZONE USING DEFAULT -- fully parenthesized
ALTER TABLE t CONFIGURE ZONE USING DEFAULT -- literals removed
ALTER TABLE _ CONFIGURE ZONE USING DEFAULT -- identifiers removed

parse
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING DEFAULT
----
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING DEFAULT
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING DEFAULT -- fully parenthesized
ALTER PARTITION p OF TABLE t CONFIGURE ZONE USING DEFAULT -- literals removed
ALTER PARTITION _ OF TABLE _ CONFIGURE ZONE USING DEFAULT -- identifiers removed

parse
ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE
----
ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE
ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE -- fully parenthesized
ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE -- literals removed
ALTER TABLE _ EXPERIMENTAL_AUDIT SET READ WRITE -- identifiers removed

parse
EXPLAIN ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE
----
EXPLAIN ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE
EXPLAIN ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE -- fully parenthesized
EXPLAIN ALTER TABLE t EXPERIMENTAL_AUDIT SET READ WRITE -- literals removed
EXPLAIN ALTER TABLE _ EXPERIMENTAL_AUDIT SET READ WRITE -- identifiers removed

parse
ALTER TABLE t EXPERIMENTAL_AUDIT SET OFF
----
ALTER TABLE t EXPERIMENTAL_AUDIT SET OFF
ALTER TABLE t EXPERIMENTAL_AUDIT SET OFF -- fully parenthesized
ALTER TABLE t EXPERIMENTAL_AUDIT SET OFF -- literals removed
ALTER TABLE _ EXPERIMENTAL_AUDIT SET OFF -- identifiers removed

parse
ALTER TABLE t SET (fillfactor = 100, autovacuum_enabled = false)
----
ALTER TABLE t SET ('fillfactor' = 100, 'autovacuum_enabled' = false) -- normalized!
ALTER TABLE t SET ('fillfactor' = (100), 'autovacuum_enabled' = (false)) -- fully parenthesized
ALTER TABLE t SET ('fillfactor' = _, 'autovacuum_enabled' = _) -- literals removed
ALTER TABLE _ SET ('fillfactor' = 100, 'autovacuum_enabled' = false) -- identifiers removed

parse
ALTER TABLE t RESET (fillfactor)
----
ALTER TABLE t RESET ('fillfactor') -- normalized!
ALTER TABLE t RESET ('fillfactor') -- fully parenthesized
ALTER TABLE t RESET ('fillfactor') -- literals removed
ALTER TABLE _ RESET ('fillfactor') -- identifiers removed

parse
ALTER TABLE t RESET (fillfactor, autovacuum_enabled)
----
ALTER TABLE t RESET ('fillfactor', 'autovacuum_enabled') -- normalized!
ALTER TABLE t RESET ('fillfactor', 'autovacuum_enabled') -- fully parenthesized
ALTER TABLE t RESET ('fillfactor', 'autovacuum_enabled') -- literals removed
ALTER TABLE _ RESET ('fillfactor', 'autovacuum_enabled') -- identifiers removed

parse
ALTER TABLE t RESET (fillfactor, autovacuum_enabled, 'string')
----
ALTER TABLE t RESET ('fillfactor', 'autovacuum_enabled', 'string') -- normalized!
ALTER TABLE t RESET ('fillfactor', 'autovacuum_enabled', 'string') -- fully parenthesized
ALTER TABLE t RESET ('fillfactor', 'autovacuum_enabled', 'string') -- literals removed
ALTER TABLE _ RESET ('fillfactor', 'autovacuum_enabled', 'string') -- identifiers removed

parse
ALTER TABLE t SET (exclude_data_from_backup = true)
----
ALTER TABLE t SET ('exclude_data_from_backup' = true) -- normalized!
ALTER TABLE t SET ('exclude_data_from_backup' = (true)) -- fully parenthesized
ALTER TABLE t SET ('exclude_data_from_backup' = _) -- literals removed
ALTER TABLE _ SET ('exclude_data_from_backup' = true) -- identifiers removed

parse
ALTER TABLE t RESET (exclude_data_from_backup)
----
ALTER TABLE t RESET ('exclude_data_from_backup') -- normalized!
ALTER TABLE t RESET ('exclude_data_from_backup') -- fully parenthesized
ALTER TABLE t RESET ('exclude_data_from_backup') -- literals removed
ALTER TABLE _ RESET ('exclude_data_from_backup') -- identifiers removed

error
ALTER PARTITION p OF TABLE tbl@idx CONFIGURE ZONE USING num_replicas = 1
----
at or near "idx": syntax error: index name should not be specified in ALTER PARTITION ... OF TABLE
DETAIL: source SQL:
ALTER PARTITION p OF TABLE tbl@idx CONFIGURE ZONE USING num_replicas = 1
                               ^
HINT: try ALTER PARTITION ... OF INDEX

error
ALTER PARTITION p OF TABLE tbl@* CONFIGURE ZONE USING num_replicas = 1
----
at or near "configure": syntax error: index wildcard unsupported in ALTER PARTITION ... OF TABLE
DETAIL: source SQL:
ALTER PARTITION p OF TABLE tbl@* CONFIGURE ZONE USING num_replicas = 1
                                 ^
HINT: try ALTER PARTITION <partition> OF INDEX <tablename>@*

error
ALTER TABLE t ADD COLUMN b INT NULL GENERATED ALWAYS AS IDENTITY
----
at or near "EOF": syntax error: conflicting NULL/NOT NULL declarations for column "b"
DETAIL: source SQL:
ALTER TABLE t ADD COLUMN b INT NULL GENERATED ALWAYS AS IDENTITY
                                                                ^

error
ALTER TABLE t ADD COLUMN b INT GENERATED ALWAYS AS IDENTITY NULL
----
at or near "EOF": syntax error: conflicting NULL/NOT NULL declarations for column "b"
DETAIL: source SQL:
ALTER TABLE t ADD COLUMN b INT GENERATED ALWAYS AS IDENTITY NULL
                                                                ^

error
ALTER TABLE a ADD COLUMN b INT GENERATED BY DEFAULT AS IDENTITY GENERATED ALWAYS AS IDENTITY
----
at or near "EOF": syntax error: multiple identity specifications for column "b"
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b INT GENERATED BY DEFAULT AS IDENTITY GENERATED ALWAYS AS IDENTITY
                                                                                            ^

error
ALTER TABLE a ADD COLUMN b INT AS (a + 10) STORED GENERATED ALWAYS AS IDENTITY
----
at or near "EOF": syntax error: both generated identity and computed expression specified for column "b"
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b INT AS (a + 10) STORED GENERATED ALWAYS AS IDENTITY
                                                                              ^

error
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS (1 + 1) STORED GENERATED ALWAYS AS IDENTITY
----
at or near "EOF": syntax error: both generated identity and computed expression specified for column "b"
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS (1 + 1) STORED GENERATED ALWAYS AS IDENTITY
                                                                                              ^

error
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS (1+1) IDENTITY
----
at or near "identity": syntax error: use AS ( <expr> ) STORED or AS ( <expr> ) VIRTUAL
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS (1+1) IDENTITY
                                                         ^

error
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS IDENTITY DEFAULT 1
----
at or near "EOF": syntax error: multiple default values specified for column "b"
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b INT GENERATED ALWAYS AS IDENTITY DEFAULT 1
                                                                     ^

error
ALTER TABLE a ADD COLUMN b INT GENERATED BY DEFAULT AS IDENTITY DEFAULT 1
----
at or near "EOF": syntax error: multiple default values specified for column "b"
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b INT GENERATED BY DEFAULT AS IDENTITY DEFAULT 1
                                                                         ^

error
ALTER TABLE a ADD COLUMN b VARCHAR(12) GENERATED ALWAYS AS IDENTITY
----
at or near "EOF": syntax error: identity column type must be an INT
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b VARCHAR(12) GENERATED ALWAYS AS IDENTITY
                                                                   ^

error
ALTER TABLE a ADD COLUMN b VARCHAR(12) GENERATED BY DEFAULT AS IDENTITY
----
at or near "EOF": syntax error: identity column type must be an INT
DETAIL: source SQL:
ALTER TABLE a ADD COLUMN b VARCHAR(12) GENERATED BY DEFAULT AS IDENTITY
                                                                       ^

parse
ALTER TABLE a ALTER COLUMN b TYPE "A Nice Name For A Type 🌠"
----
ALTER TABLE a ALTER COLUMN b SET DATA TYPE "A Nice Name For A Type 🌠" -- normalized!
ALTER TABLE a ALTER COLUMN b SET DATA TYPE "A Nice Name For A Type 🌠" -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET DATA TYPE "A Nice Name For A Type 🌠" -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET DATA TYPE _ -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY 
----
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY -- fully parenthesized
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY -- literals removed
ALTER TABLE _ ALTER COLUMN _ ADD GENERATED ALWAYS AS IDENTITY -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY
----
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY -- fully parenthesized
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY -- literals removed
ALTER TABLE _ ALTER COLUMN _ ADD GENERATED BY DEFAULT AS IDENTITY -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY (START WITH 10)
----
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY ( START WITH 10 ) -- normalized!
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY ( START WITH 10 ) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b ADD GENERATED ALWAYS AS IDENTITY ( START WITH 0 ) -- literals removed
ALTER TABLE _ ALTER COLUMN _ ADD GENERATED ALWAYS AS IDENTITY ( START WITH 10 ) -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY (START WITH 10)
----
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY ( START WITH 10 ) -- normalized!
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY ( START WITH 10 ) -- fully parenthesized
ALTER TABLE a ALTER COLUMN b ADD GENERATED BY DEFAULT AS IDENTITY ( START WITH 0 ) -- literals removed
ALTER TABLE _ ALTER COLUMN _ ADD GENERATED BY DEFAULT AS IDENTITY ( START WITH 10 ) -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET GENERATED ALWAYS
----
ALTER TABLE a ALTER COLUMN b SET GENERATED ALWAYS
ALTER TABLE a ALTER COLUMN b SET GENERATED ALWAYS -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET GENERATED ALWAYS -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET GENERATED ALWAYS -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET GENERATED BY DEFAULT
----
ALTER TABLE a ALTER COLUMN b SET GENERATED BY DEFAULT
ALTER TABLE a ALTER COLUMN b SET GENERATED BY DEFAULT -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET GENERATED BY DEFAULT -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET GENERATED BY DEFAULT -- identifiers removed


parse
ALTER TABLE a ALTER COLUMN b RESTART
----
ALTER TABLE a ALTER COLUMN b RESTART
ALTER TABLE a ALTER COLUMN b RESTART -- fully parenthesized
ALTER TABLE a ALTER COLUMN b RESTART -- literals removed
ALTER TABLE _ ALTER COLUMN _ RESTART -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b RESTART 3
----
ALTER TABLE a ALTER COLUMN b RESTART 3
ALTER TABLE a ALTER COLUMN b RESTART 3 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b RESTART 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ RESTART 3 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b RESTART WITH 3
----
ALTER TABLE a ALTER COLUMN b RESTART WITH 3
ALTER TABLE a ALTER COLUMN b RESTART WITH 3 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b RESTART WITH 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ RESTART WITH 3 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET START 3
----
ALTER TABLE a ALTER COLUMN b SET START 3
ALTER TABLE a ALTER COLUMN b SET START 3 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET START 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET START 3 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET START WITH 3
----
ALTER TABLE a ALTER COLUMN b SET START WITH 3
ALTER TABLE a ALTER COLUMN b SET START WITH 3 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET START WITH 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET START WITH 3 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET INCREMENT 2
----
ALTER TABLE a ALTER COLUMN b SET INCREMENT 2
ALTER TABLE a ALTER COLUMN b SET INCREMENT 2 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET INCREMENT 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET INCREMENT 2 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET INCREMENT BY 2
----
ALTER TABLE a ALTER COLUMN b SET INCREMENT BY 2
ALTER TABLE a ALTER COLUMN b SET INCREMENT BY 2 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET INCREMENT BY 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET INCREMENT BY 2 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET MINVALUE 2
----
ALTER TABLE a ALTER COLUMN b SET MINVALUE 2
ALTER TABLE a ALTER COLUMN b SET MINVALUE 2 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET MINVALUE 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET MINVALUE 2 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET NO MINVALUE
----
ALTER TABLE a ALTER COLUMN b SET NO MINVALUE
ALTER TABLE a ALTER COLUMN b SET NO MINVALUE -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET NO MINVALUE -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET NO MINVALUE -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET MAXVALUE 2
----
ALTER TABLE a ALTER COLUMN b SET MAXVALUE 2
ALTER TABLE a ALTER COLUMN b SET MAXVALUE 2 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET MAXVALUE 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET MAXVALUE 2 -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET CYCLE
----
ALTER TABLE a ALTER COLUMN b SET CYCLE
ALTER TABLE a ALTER COLUMN b SET CYCLE -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET CYCLE -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET CYCLE -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET NO CYCLE
----
ALTER TABLE a ALTER COLUMN b SET NO CYCLE
ALTER TABLE a ALTER COLUMN b SET NO CYCLE -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET NO CYCLE -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET NO CYCLE -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b SET CACHE 2
----
ALTER TABLE a ALTER COLUMN b SET CACHE 2
ALTER TABLE a ALTER COLUMN b SET CACHE 2 -- fully parenthesized
ALTER TABLE a ALTER COLUMN b SET CACHE 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET CACHE 2 -- identifiers removed

parse
ALTER TABLE alter_opts_generated_as_identity ALTER COLUMN a SET MAXVALUE 40 RESTART WITH 2 SET CACHE 5 SET INCREMENT BY 2;
----
ALTER TABLE alter_opts_generated_as_identity ALTER COLUMN a SET MAXVALUE 40 RESTART WITH 2 SET CACHE 5 SET INCREMENT BY 2 -- normalized!
ALTER TABLE alter_opts_generated_as_identity ALTER COLUMN a SET MAXVALUE 40 RESTART WITH 2 SET CACHE 5 SET INCREMENT BY 2 -- fully parenthesized
ALTER TABLE alter_opts_generated_as_identity ALTER COLUMN a SET MAXVALUE 0 RESTART WITH 0 SET CACHE 0 SET INCREMENT BY 0 -- literals removed
ALTER TABLE _ ALTER COLUMN _ SET MAXVALUE 40 RESTART WITH 2 SET CACHE 5 SET INCREMENT BY 2 -- identifiers removed

error
ALTER TABLE a ALTER COLUMN b SET RESTART
----
at or near "EOF": syntax error: sequence option "RESTART" not supported here
DETAIL: source SQL:
ALTER TABLE a ALTER COLUMN b SET RESTART
                                        ^

error
ALTER TABLE a ALTER COLUMN b SET OWNED BY NONE
----
at or near "EOF": syntax error: sequence option "OWNED BY" not supported here
DETAIL: source SQL:
ALTER TABLE a ALTER COLUMN b SET OWNED BY NONE
                                              ^

error
ALTER TABLE a ALTER COLUMN b SET AS INT8
----
at or near "EOF": syntax error: sequence option "AS" not supported here
DETAIL: source SQL:
ALTER TABLE a ALTER COLUMN b SET AS INT8
                                        ^

parse                                      
ALTER TABLE a ALTER COLUMN b DROP IDENTITY
----
ALTER TABLE a ALTER COLUMN b DROP IDENTITY
ALTER TABLE a ALTER COLUMN b DROP IDENTITY -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP IDENTITY -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP IDENTITY -- identifiers removed

parse
ALTER TABLE a ALTER COLUMN b DROP IDENTITY IF EXISTS
----
ALTER TABLE a ALTER COLUMN b DROP IDENTITY IF EXISTS
ALTER TABLE a ALTER COLUMN b DROP IDENTITY IF EXISTS -- fully parenthesized
ALTER TABLE a ALTER COLUMN b DROP IDENTITY IF EXISTS -- literals removed
ALTER TABLE _ ALTER COLUMN _ DROP IDENTITY IF EXISTS -- identifiers removed

parse
ALTER TABLE a ENABLE ROW LEVEL SECURITY
----
ALTER TABLE a ENABLE ROW LEVEL SECURITY
ALTER TABLE a ENABLE ROW LEVEL SECURITY -- fully parenthesized
ALTER TABLE a ENABLE ROW LEVEL SECURITY -- literals removed
ALTER TABLE _ ENABLE ROW LEVEL SECURITY -- identifiers removed

parse
ALTER TABLE a DISABLE ROW LEVEL SECURITY
----
ALTER TABLE a DISABLE ROW LEVEL SECURITY
ALTER TABLE a DISABLE ROW LEVEL SECURITY -- fully parenthesized
ALTER TABLE a DISABLE ROW LEVEL SECURITY -- literals removed
ALTER TABLE _ DISABLE ROW LEVEL SECURITY -- identifiers removed

parse
ALTER TABLE a FORCE ROW LEVEL SECURITY
----
ALTER TABLE a FORCE ROW LEVEL SECURITY
ALTER TABLE a FORCE ROW LEVEL SECURITY -- fully parenthesized
ALTER TABLE a FORCE ROW LEVEL SECURITY -- literals removed
ALTER TABLE _ FORCE ROW LEVEL SECURITY -- identifiers removed

parse
ALTER TABLE a NO FORCE ROW LEVEL SECURITY
----
ALTER TABLE a NO FORCE ROW LEVEL SECURITY
ALTER TABLE a NO FORCE ROW LEVEL SECURITY -- fully parenthesized
ALTER TABLE a NO FORCE ROW LEVEL SECURITY -- literals removed
ALTER TABLE _ NO FORCE ROW LEVEL SECURITY -- identifiers removed

parse
ALTER TABLE a NO FORCE ROW LEVEL SECURITY, ENABLE ROW LEVEL SECURITY
----
ALTER TABLE a NO FORCE ROW LEVEL SECURITY, ENABLE ROW LEVEL SECURITY
ALTER TABLE a NO FORCE ROW LEVEL SECURITY, ENABLE ROW LEVEL SECURITY -- fully parenthesized
ALTER TABLE a NO FORCE ROW LEVEL SECURITY, ENABLE ROW LEVEL SECURITY -- literals removed
ALTER TABLE _ NO FORCE ROW LEVEL SECURITY, ENABLE ROW LEVEL SECURITY -- identifiers removed

parse
ALTER TABLE a ENABLE ROW LEVEL SECURITY, DISABLE ROW LEVEL SECURITY
----
ALTER TABLE a ENABLE ROW LEVEL SECURITY, DISABLE ROW LEVEL SECURITY
ALTER TABLE a ENABLE ROW LEVEL SECURITY, DISABLE ROW LEVEL SECURITY -- fully parenthesized
ALTER TABLE a ENABLE ROW LEVEL SECURITY, DISABLE ROW LEVEL SECURITY -- literals removed
ALTER TABLE _ ENABLE ROW LEVEL SECURITY, DISABLE ROW LEVEL SECURITY -- identifiers removed
