Re: [PATCH] Add pg_get_table_ddl() to reconstruct CREATE TABLE statements
Akshay Joshi <akshay.joshi@enterprisedb.com>
From: Akshay Joshi <akshay.joshi@enterprisedb.com>
To: Zsolt Parragi <zsolt.parragi@percona.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-07-03T08:47:25Z
Lists: pgsql-hackers
Attachments
- v16-0001-Add-pg_get_table_ddl-to-reconstruct-CREATE-TABLE.patch (application/octet-stream) patch v16-0001
Thanks Zsolt for the review. I have tried to fix most of the *edge cases. *I
added 12 new test cases.
The v16 patch is ready for review.
*Note: Windows-MinGW-Meson *builds are failing but not because of this
patch.
On Fri, Jul 3, 2026 at 4:04 AM Zsolt Parragi <zsolt.parragi@percona.com>
wrote:
> Hello!
>
> I can confirm the previous issues fixed, however I also found one more
> with unique indexes on partitioned tables:
>
> CREATE SCHEMA s;
> CREATE TABLE s.p (id int, region text) PARTITION BY LIST (region);
> CREATE TABLE s.p_a PARTITION OF s.p FOR VALUES IN ('a');
> CREATE UNIQUE INDEX p_uidx ON s.p (id, region);
>
> SELECT pg_get_table_ddl('s.p', owner => false);
> -- CREATE TABLE s.p (id integer, region text) PARTITION BY LIST (region);
> -- CREATE UNIQUE INDEX p_uidx ON s.p USING btree (id, region);
> -- CREATE TABLE s.p_a PARTITION OF s.p FOR VALUES IN ('a');
> -- CREATE UNIQUE INDEX p_a_id_region_idx ON s.p_a USING btree (id,
> region); -- fails because index already exists
>
>
>