From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Ziga <ziga(at)ljudmila(dot)org> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Retail DDL |
Date: | 2025-08-14 18:29:53 |
Message-ID: | c8c2f834-5d0f-431b-90f7-3600af154c23@dunslane.net |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2025-08-13 We 10:29 PM, Ziga wrote:
> Hi Andrew,
>
> On 24/07/2025 22:26, Andrew Dunstan wrote:
>> Some years ago I gave a talk about $subject, but somehow it dropped
>> off my radar. Now I'm looking at it again. The idea is to have a
>> function (or set of functions) that would allow the user to get the
>> DDL for any database object. Obviously we already have some functions
>> for things like views and triggers, but most notably we don't have
>> one for tables, something users have long complained about. I have
>> been trying to think of a reasonable interface for a single function,
>> where we would pass in, say, a catalog oid plus an object oid, and
>> maybe some optional extra arguments. That seems a bit fragile,
>> though. The alternative is that we have a separate function for each
>> object type, e.g. pg_get_{objecttype}_ddl. I'm kinda leaning that
>> way, but I'd like some sort of consensus before any work gets done.
>
> $subject has been appearing on the lists every now and then, without
> much great success so far.
>
> I have endeavored to implement such a thing as ddlx postgres
> extension, https://github.com/lacanoid/pgddl
>
> The endeavor is somewhat far gone now already. Apparently the
> extension is used by some people. It probably has some interesting
> features. It needs wider and more testing. I use it a lot. It tries to
> address some of the issues on $subject expressed on the lists.
>
> It is implemented as plain SQL functions. There are currently 89
> functions with obvious names, one for each postgres object type, as
> well as functions to assemble smaller pieces together and such. I
> think it implements a rather nice SQL API, also handling some of the
> things discussed here.
>
> Of particular note is using oids only (no classid) to specify objects.
> I used believe that oid are unique across a postgres database for
> catalog objects, but since postgres 14 this no longer the case, see:
> https://github.com/lacanoid/pgddl/issues/25 . I don't know if this is
> intentional or not. In practice, it does not hinder usage.
Interesting. I think there are good reasons to have this as builtin
functions, though, not least that it would allow us to base some psql
meta-commands on it, or possibly an SQL command (DESCRIBE ?). Builtin
functions are also likely to be faster.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Corey Huinker | 2025-08-14 18:34:43 | Re: Import Statistics in postgres_fdw before resorting to sampling. |
Previous Message | Peter Geoghegan | 2025-08-14 17:57:42 | Re: index prefetching |