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

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
>
>
>