Re: pg_get__*_ddl consolidation

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Andres Freund <andres@anarazel.de>
Cc: "David G. Johnston" <david.g.johnston@gmail.com>, Japin Li <japinli@hotmail.com>, Zsolt Parragi <zsolt.parragi@percona.com>, Euler Taveira <euler@eulerto.com>, Álvaro Herrera <alvherre@kurilemu.de>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-26T14:07:55Z
Lists: pgsql-hackers

Attachments

On 2026-04-06 Mo 7:39 AM, Andrew Dunstan wrote:
>
> On 2026-04-05 Su 4:03 PM, Andres Freund wrote:
>
>
>>> But do we really have to create a new database and a new tablespace 
>>> for these?
>>> Database and tablespace creations are quite heavyweight operations.
>>>
>>> We already have an existing tablespace and an existing database as 
>>> part of the
>>> regression tests. Couldn't you make do with those?
>> Didn't do anything about that.
>>
>
> Well, the trouble is that the database test runs a bunch of alter and 
> revoke statements on the created database, that we probably don't want 
> to persist on the existing regression database. I could see an 
> argument for converting this to a TAP test that would only be run 
> once, given our current very profligate running of the core regression 
> suite. That goes doubly for the tablespace test, which could also 
> probably use ALTER TABLESPACE instead of creating a bunch of 
> tablespaces and then dropping them.
>
>
>

Here's a patch that converts all these into a single TAP test, and 
reduces the number of tablespace creations.


cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Use named boolean parameters for pg_get_*_ddl option arguments

  2. Convert ddlutils regression tests to TAP tests.

  3. Fix pfree crash in pg_get_role_ddl() and pg_get_database_ddl().

  4. Fixups for a4f774cf1c7

  5. Add infrastructure for pg_get_*_ddl functions

  6. Add pg_get_database_ddl() function

  7. Add pg_get_role_ddl() function

  8. Add pg_get_tablespace_ddl() function