On 2025-Jun-25, Fujii Masao wrote: > From 516e647e7d1fdafc64dba092389963f32cd688e5 Mon Sep 17 00:00:00 2001 > From: Fujii Masao <fu...@postgresql.org> > Date: Wed, 25 Jun 2025 10:02:56 +0900 > Subject: [PATCH v2] Make CREATE TABLE LIKE copy comments on NOT NULL > constraints when requested. > > Commit 14e87ffa5c5 introduced support for adding comments to NOT NULL > constraints. However, CREATE TABLE LIKE INCLUDING COMMENTS did not copy > these comments to the new table. This was an oversight in that commit. > > This commit corrects the behavior by ensuring CREATE TABLE LIKE to also copy > the comments on NOT NULL constraints when INCLUDING COMMENTS is specified.
LGTM. I'd add a line in the test showing that these comments are copied even if INCLUDING CONSTRAINTS is not given, because not-null constraints comments themselves are -- as attached. -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "It takes less than 2 seconds to get to 78% complete; that's a good sign. A few seconds later it's at 90%, but it seems to have stuck there. Did somebody make percentages logarithmic while I wasn't looking?" http://smylers.hates-software.com/2005/09/08/1995c749.html
>From 3a5b66feaf4824707f5e09f084ed7b303589f887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Herrera?= <alvhe...@kurilemu.de> Date: Wed, 25 Jun 2025 13:42:03 +0200 Subject: [PATCH] test fixup --- src/test/regress/expected/create_table_like.out | 12 +++++++----- src/test/regress/sql/create_table_like.sql | 3 ++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/test/regress/expected/create_table_like.out b/src/test/regress/expected/create_table_like.out index 1374a972e6e..7092b42672d 100644 --- a/src/test/regress/expected/create_table_like.out +++ b/src/test/regress/expected/create_table_like.out @@ -329,6 +329,7 @@ COMMENT ON STATISTICS ctlt1_expr_stat IS 'ab expr stats'; COMMENT ON COLUMN ctlt1.a IS 'A'; COMMENT ON COLUMN ctlt1.b IS 'B'; COMMENT ON CONSTRAINT ctlt1_a_check ON ctlt1 IS 't1_a_check'; +COMMENT ON CONSTRAINT ctlt1_a_not_null ON ctlt1 IS 't1_a_notnull'; COMMENT ON INDEX ctlt1_pkey IS 'index pkey'; COMMENT ON INDEX ctlt1_b_key IS 'index b_key'; ALTER TABLE ctlt1 ALTER COLUMN a SET STORAGE MAIN; @@ -384,11 +385,12 @@ Not-null constraints: "ctlt1_a_not_null" NOT NULL "a" (local, inherited) Inherits: ctlt1 -SELECT description FROM pg_description, pg_constraint c WHERE classoid = 'pg_constraint'::regclass AND objoid = c.oid AND c.conrelid = 'ctlt1_inh'::regclass; - description -------------- - t1_a_check -(1 row) +SELECT conname, description FROM pg_description, pg_constraint c WHERE classoid = 'pg_constraint'::regclass AND objoid = c.oid AND c.conrelid = 'ctlt1_inh'::regclass ORDER BY conname COLLATE "C"; + conname | description +------------------+-------------- + ctlt1_a_check | t1_a_check + ctlt1_a_not_null | t1_a_notnull +(2 rows) CREATE TABLE ctlt13_inh () INHERITS (ctlt1, ctlt3); NOTICE: merging multiple inherited definitions of column "a" diff --git a/src/test/regress/sql/create_table_like.sql b/src/test/regress/sql/create_table_like.sql index 6da7f4f0557..9edde9830e7 100644 --- a/src/test/regress/sql/create_table_like.sql +++ b/src/test/regress/sql/create_table_like.sql @@ -139,6 +139,7 @@ COMMENT ON STATISTICS ctlt1_expr_stat IS 'ab expr stats'; COMMENT ON COLUMN ctlt1.a IS 'A'; COMMENT ON COLUMN ctlt1.b IS 'B'; COMMENT ON CONSTRAINT ctlt1_a_check ON ctlt1 IS 't1_a_check'; +COMMENT ON CONSTRAINT ctlt1_a_not_null ON ctlt1 IS 't1_a_notnull'; COMMENT ON INDEX ctlt1_pkey IS 'index pkey'; COMMENT ON INDEX ctlt1_b_key IS 'index b_key'; ALTER TABLE ctlt1 ALTER COLUMN a SET STORAGE MAIN; @@ -164,7 +165,7 @@ CREATE TABLE ctlt12_comments (LIKE ctlt1 INCLUDING COMMENTS, LIKE ctlt2 INCLUDIN \d+ ctlt12_comments CREATE TABLE ctlt1_inh (LIKE ctlt1 INCLUDING CONSTRAINTS INCLUDING COMMENTS) INHERITS (ctlt1); \d+ ctlt1_inh -SELECT description FROM pg_description, pg_constraint c WHERE classoid = 'pg_constraint'::regclass AND objoid = c.oid AND c.conrelid = 'ctlt1_inh'::regclass; +SELECT conname, description FROM pg_description, pg_constraint c WHERE classoid = 'pg_constraint'::regclass AND objoid = c.oid AND c.conrelid = 'ctlt1_inh'::regclass ORDER BY conname COLLATE "C"; CREATE TABLE ctlt13_inh () INHERITS (ctlt1, ctlt3); \d+ ctlt13_inh CREATE TABLE ctlt13_like (LIKE ctlt3 INCLUDING CONSTRAINTS INCLUDING INDEXES INCLUDING COMMENTS INCLUDING STORAGE) INHERITS (ctlt1); -- 2.39.5