From 343693c3c116688970be550fcbf15f7ddf55525b Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 10 Dec 2025 19:27:02 +0200 Subject: [PATCH] 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 Reviewed-by: Chao Li Discussion: https://www.postgresql.org/message-id/CACJufxFDi7fnwB-8xXd_ExML7-7pKbTaK4j46AJ=4-14DXvtVg@mail.gmail.com --- .../test_ddl_deparse/expected/alter_table.out | 41 ++++++++++--------- .../test_ddl_deparse/sql/alter_table.sql | 27 ++++++------ 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/test/modules/test_ddl_deparse/expected/alter_table.out b/src/test/modules/test_ddl_deparse/expected/alter_table.out index 50d0354a341..f1c6f05fe17 100644 --- a/src/test/modules/test_ddl_deparse/expected/alter_table.out +++ b/src/test/modules/test_ddl_deparse/expected/alter_table.out @@ -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 diff --git a/src/test/modules/test_ddl_deparse/sql/alter_table.sql b/src/test/modules/test_ddl_deparse/sql/alter_table.sql index 9ad1cf908d4..380ba266075 100644 --- a/src/test/modules/test_ddl_deparse/sql/alter_table.sql +++ b/src/test/modules/test_ddl_deparse/sql/alter_table.sql @@ -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; -- 2.39.5