Re: pg_get__*_ddl consolidation
Zsolt Parragi <zsolt.parragi@percona.com>
From: Zsolt Parragi <zsolt.parragi@percona.com>
To: Euler Taveira <euler@eulerto.com>
Cc: Andrew Dunstan <andrew@dunslane.net>, Álvaro Herrera <alvherre@kurilemu.de>, Japin Li <japinli@hotmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-24T21:56:56Z
Lists: pgsql-hackers
v2 is definitely better, I can confirm the improvements.
> including all suggested changes in this thread
But I want to point out that the permission check question, and the
role membership question is still open.
For the membership question
> I'm not opposed
> to your idea but IMO it should be an option.
I'm also fine with leaving it out, but then it should be a mentioned limitation.
For v2:
Shouldn't the tablespace function also support an owner option
similarly to the database function?
A pfree(nulls) and pfree(spcname) seem to be missing, all other
variables are freed properly.
+
+ /*
+ * Variables that are marked GUC_LIST_QUOTE were already fully
+ * quoted before they were put into the setconfig array. Break
+ * the list value apart and then quote the elements as string
+ * literals.
+ */
+ if (GetConfigOptionFlags(s, true) & GUC_LIST_QUOTE)
+ {
This part seems to be duplicated between the two functions, maybe
could be a helper?
+ALTER ROLE regress_role_ddl_test4 SET search_path TO 'myschema, public';
Maybe it would be useful to also test the "SET search_path TO
myschema, public" variant, without quotes?
I also want to go back to the datestyle question one more time:
> The non-fixed DateStyle is by design. It mimics pg_dumpall.
Isn't pg_dump and pg_dumpall inconsistent in this? pg_dump sets it to
ISO, pg_dumpall uses DateStyle. So I'm not that sure about the
"pg_dumpall works this way" argument because pg_dump works
differently. Maybe either of those tools should also be fixed?
The pg_dump behavior is actually a bugfix in cf4cee1b, which was never
applied to pg_dumpall, so it seems like an oversight to me?
> At present, dates are put into a dump in the format specified by the
> default datestyle. This is not portable between installations.
>
> This patch sets DATESTYLE to ISO at the start of a pg_dump, so that the
> dates written into the dump will be restorable onto any database,
> regardless of how its default datestyle is set.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Use named boolean parameters for pg_get_*_ddl option arguments
- d6ed87d19890 19 (unreleased) landed
-
Convert ddlutils regression tests to TAP tests.
- c529ee38b9eb 19 (unreleased) landed
-
Fix pfree crash in pg_get_role_ddl() and pg_get_database_ddl().
- 1f108fc02ece 19 (unreleased) landed
-
Fixups for a4f774cf1c7
- 6c7bce28c83f 19 (unreleased) landed
-
Add infrastructure for pg_get_*_ddl functions
- 4881981f9202 19 (unreleased) landed
-
Add pg_get_database_ddl() function
- a4f774cf1c7e 19 (unreleased) landed
-
Add pg_get_role_ddl() function
- 76e514ebb4b5 19 (unreleased) landed
-
Add pg_get_tablespace_ddl() function
- b99fd9fd7f36 19 (unreleased) landed