Improve DDL deparsing test
authorHeikki Linnakangas <[email protected]>
Wed, 10 Dec 2025 17:27:02 +0000 (19:27 +0200)
committerHeikki Linnakangas <[email protected]>
Wed, 10 Dec 2025 17:27:02 +0000 (19:27 +0200)
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 <[email protected]>
Reviewed-by: Chao Li <[email protected]>
Discussion: https://www.postgresql.org/message-id/CACJufxFDi7fnwB-8xXd_ExML7-7pKbTaK4j46AJ=4-14DXvtVg@mail.gmail.com

src/test/modules/test_ddl_deparse/expected/alter_table.out
src/test/modules/test_ddl_deparse/sql/alter_table.sql

index 50d0354a3417b16f741a4a967f056217789dec7a..f1c6f05fe17ffdbc7606539481c1a006ee980a7d 100644 (file)
@@ -41,25 +41,6 @@ ALTER TABLE parent ADD CONSTRAINT a_pos CHECK (a > 0);
 NOTICE:  merging constraint "a_pos" with inherited definition
 NOTICE:  DDL test: type alter table, tag ALTER TABLE
 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;
 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
@@ -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 child
 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 (
        a int generated always as (b::int * 2) stored,
        b text
 );
 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;
 NOTICE:  DDL test: type alter table, tag ALTER TABLE
 NOTICE:    subcommand: type DROP EXPRESSION desc column a of table tbl
index 9ad1cf908d42814f8b4eb8a63172d4c49dedfb07..380ba266075770b2b337131bf996fde6b86a91a7 100644 (file)
@@ -24,19 +24,6 @@ ALTER TABLE ONLY grandchild ADD CONSTRAINT a_pos CHECK (a > 0);
 -- Constraint, with recursion
 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 DROP 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;
 
+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 (
        a int generated always as (b::int * 2) stored,
        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 b SET COMPRESSION pglz;