hi.
in src/test/modules/test_ddl_deparse/sql/alter_table.sql:
----------------------------
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;
----
The test initially focuses on the "parent" table, then switches to the "part"
table, and goes back to the "parent" table.
This seems weird? so I slightly adjusted the order to cover the "parent"
table first, followed by the "part" table.
src/test/modules/test_ddl_deparse/sql/alter_table.sql
don't have ALTER TABLE ALTER COLUMN SET EXPRESSION,
so I added a test on it.
From 55fed544cab5addb108d61f43fe6d2286fcb6f40 Mon Sep 17 00:00:00 2001
From: jian he <[email protected]>
Date: Sun, 24 Aug 2025 22:51:30 +0800
Subject: [PATCH v1 1/1] refactor test_ddl_deparse/sql/alter_table.sql
1. The test initially focuses on the "parent" table, then switches to the "part"
table, and goes back to the "parent" table.
This seemed inconsistent, so I slightly adjusted the order to cover the "parent"
table first, followed by the "part" table.
2. src/test/modules/test_ddl_deparse/sql/alter_table.sql
don't have ALTER TABLE ALTER COLUMN SET EXPRESSION,
so I add a test on it.
discussion: https://postgr.es/m/
---
.../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.34.1