1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-13 14:22:43 +03:00

Improve DDL deparsing test

1. The test initially focuses on the "parent" table, then switches to
the "part" table, and goes back to the "parent" table. That seems a
little weird, so move the tests around so that all the commands on the
"parent" table are done first, followed by the "part" table.

2. ALTER TABLE ALTER COLUMN SET EXPRESSION was not tested, so add
that.

Author: jian he <jian.universality@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://www.postgresql.org/message-id/CACJufxFDi7fnwB-8xXd_ExML7-7pKbTaK4j46AJ=4-14DXvtVg@mail.gmail.com
This commit is contained in:
Heikki Linnakangas
2025-12-10 19:27:02 +02:00
parent eebec3ca4b
commit 343693c3c1
2 changed files with 36 additions and 32 deletions

View File

@@ -41,25 +41,6 @@ ALTER TABLE parent ADD CONSTRAINT a_pos CHECK (a > 0);
NOTICE: merging constraint "a_pos" with inherited definition NOTICE: merging constraint "a_pos" with inherited definition
NOTICE: DDL test: type alter table, tag ALTER TABLE NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type ADD CONSTRAINT (and recurse) desc constraint a_pos on table parent NOTICE: subcommand: type ADD CONSTRAINT (and recurse) desc constraint a_pos on table parent
CREATE TABLE part (
a int
) PARTITION BY RANGE (a);
NOTICE: DDL test: type simple, tag CREATE TABLE
CREATE TABLE part1 PARTITION OF part FOR VALUES FROM (1) to (100);
NOTICE: DDL test: type simple, tag CREATE TABLE
CREATE TABLE part2 (a int);
NOTICE: DDL test: type simple, tag CREATE TABLE
ALTER TABLE part ATTACH PARTITION part2 FOR VALUES FROM (101) to (200);
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type ATTACH PARTITION desc table part2
ALTER TABLE part DETACH PARTITION part2;
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type DETACH PARTITION desc table part2
DROP TABLE part2;
ALTER TABLE part ADD PRIMARY KEY (a);
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type ADD CONSTRAINT (and recurse) desc constraint part_a_not_null on table part
NOTICE: subcommand: type ADD INDEX desc index part_pkey
ALTER TABLE parent ALTER COLUMN a SET NOT NULL; ALTER TABLE parent ALTER COLUMN a SET NOT NULL;
NOTICE: DDL test: type alter table, tag ALTER TABLE NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type SET NOT NULL (and recurse) desc constraint parent_a_not_null on table parent NOTICE: subcommand: type SET NOT NULL (and recurse) desc constraint parent_a_not_null on table parent
@@ -117,11 +98,33 @@ NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type ALTER COLUMN SET DEFAULT desc column c of table parent NOTICE: subcommand: type ALTER COLUMN SET DEFAULT desc column c of table parent
NOTICE: subcommand: type ALTER COLUMN SET DEFAULT desc column c of table child NOTICE: subcommand: type ALTER COLUMN SET DEFAULT desc column c of table child
NOTICE: subcommand: type ALTER COLUMN SET DEFAULT desc column c of table grandchild NOTICE: subcommand: type ALTER COLUMN SET DEFAULT desc column c of table grandchild
CREATE TABLE part (
a int
) PARTITION BY RANGE (a);
NOTICE: DDL test: type simple, tag CREATE TABLE
CREATE TABLE part1 PARTITION OF part FOR VALUES FROM (1) to (100);
NOTICE: DDL test: type simple, tag CREATE TABLE
CREATE TABLE part2 (a int);
NOTICE: DDL test: type simple, tag CREATE TABLE
ALTER TABLE part ATTACH PARTITION part2 FOR VALUES FROM (101) to (200);
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type ATTACH PARTITION desc table part2
ALTER TABLE part DETACH PARTITION part2;
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type DETACH PARTITION desc table part2
DROP TABLE part2;
ALTER TABLE part ADD PRIMARY KEY (a);
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type ADD CONSTRAINT (and recurse) desc constraint part_a_not_null on table part
NOTICE: subcommand: type ADD INDEX desc index part_pkey
CREATE TABLE tbl ( CREATE TABLE tbl (
a int generated always as (b::int * 2) stored, a int generated always as (b::int * 2) stored,
b text b text
); );
NOTICE: DDL test: type simple, tag CREATE TABLE NOTICE: DDL test: type simple, tag CREATE TABLE
ALTER TABLE tbl ALTER COLUMN a SET EXPRESSION AS (b::int * 3);
NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type SET EXPRESSION desc column a of table tbl
ALTER TABLE tbl ALTER COLUMN a DROP EXPRESSION; ALTER TABLE tbl ALTER COLUMN a DROP EXPRESSION;
NOTICE: DDL test: type alter table, tag ALTER TABLE NOTICE: DDL test: type alter table, tag ALTER TABLE
NOTICE: subcommand: type DROP EXPRESSION desc column a of table tbl NOTICE: subcommand: type DROP EXPRESSION desc column a of table tbl

View File

@@ -24,19 +24,6 @@ ALTER TABLE ONLY grandchild ADD CONSTRAINT a_pos CHECK (a > 0);
-- Constraint, with recursion -- Constraint, with recursion
ALTER TABLE parent ADD CONSTRAINT a_pos CHECK (a > 0); ALTER TABLE parent ADD CONSTRAINT a_pos CHECK (a > 0);
CREATE TABLE part (
a int
) PARTITION BY RANGE (a);
CREATE TABLE part1 PARTITION OF part FOR VALUES FROM (1) to (100);
CREATE TABLE part2 (a int);
ALTER TABLE part ATTACH PARTITION part2 FOR VALUES FROM (101) to (200);
ALTER TABLE part DETACH PARTITION part2;
DROP TABLE part2;
ALTER TABLE part ADD PRIMARY KEY (a);
ALTER TABLE parent ALTER COLUMN a SET NOT NULL; ALTER TABLE parent ALTER COLUMN a SET NOT NULL;
ALTER TABLE parent ALTER COLUMN a DROP NOT NULL; ALTER TABLE parent ALTER COLUMN a DROP NOT NULL;
ALTER TABLE parent ALTER COLUMN a SET NOT NULL; ALTER TABLE parent ALTER COLUMN a SET NOT NULL;
@@ -62,11 +49,25 @@ ALTER TABLE parent ALTER COLUMN c TYPE numeric;
ALTER TABLE parent ALTER COLUMN c SET DEFAULT 0; ALTER TABLE parent ALTER COLUMN c SET DEFAULT 0;
CREATE TABLE part (
a int
) PARTITION BY RANGE (a);
CREATE TABLE part1 PARTITION OF part FOR VALUES FROM (1) to (100);
CREATE TABLE part2 (a int);
ALTER TABLE part ATTACH PARTITION part2 FOR VALUES FROM (101) to (200);
ALTER TABLE part DETACH PARTITION part2;
DROP TABLE part2;
ALTER TABLE part ADD PRIMARY KEY (a);
CREATE TABLE tbl ( CREATE TABLE tbl (
a int generated always as (b::int * 2) stored, a int generated always as (b::int * 2) stored,
b text b text
); );
ALTER TABLE tbl ALTER COLUMN a SET EXPRESSION AS (b::int * 3);
ALTER TABLE tbl ALTER COLUMN a DROP EXPRESSION; ALTER TABLE tbl ALTER COLUMN a DROP EXPRESSION;
ALTER TABLE tbl ALTER COLUMN b SET COMPRESSION pglz; ALTER TABLE tbl ALTER COLUMN b SET COMPRESSION pglz;