From: | Jelte Fennema-Nio <postgres(at)jeltef(dot)nl> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Álvaro Herrera <alvherre(at)kurilemu(dot)de>, Kirill Reshke <reshkekirill(at)gmail(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Ziga <ziga(at)ljudmila(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org, Kirk Wolak <wolakk(at)gmail(dot)com> |
Subject: | Re: Retail DDL |
Date: | 2025-08-18 14:23:52 |
Message-ID: | CAGECzQQ0xMEu3G5mctrcoQkdfcWY3u4bn_SYjFSo9+8jyzjAfA@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, 18 Aug 2025 at 15:57, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> You haven't actually defined what "this" is. For starters, do you
> really want this output to be included in \d? Seems like one part
> or the other of such output would be clutter, so I'd be more minded
> to leave \d alone and invent some new command. (By analogy to \sf,
> maybe \st and so on?)
That makes sense, I don't think I had seen the \s ones before. IMO it
would be super useful to have a \s for every type of object that
currently has a \d (but those don't have to be all added in the same
patchset ofcours, starting with tables seems totally sensible)
> But the real issue is what to print.
I think you're making this sound much harder than it actually is. I
think it would be perfect if it had exactly the same info as \d but in
SQL form instead of some "easy to understand by humans form". So:
> should we also show its indexes?
Yes
> What about foreign keys to or from other
> tables?
Yes, both from and to
> If it's a partitioned table, what about the partitions?
Definitely not by default, way too much clutter.
I think having a DESCRIBE keyword is probably not what we want, but
adding a pg_get_tabledef function seems totally reasonable. I even
proposed that at some point[1], but apparently never followed up with
Kirk (cc-ed now). It could even have options for all the questions
that you're asking like, so we'd "just" need to decide on the
defaults:
SELECT pg_get_tabledef('my_table', include_indexes => true,
include_partitions => true)
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2025-08-18 14:32:38 | Re: Retail DDL |
Previous Message | Tom Lane | 2025-08-18 14:18:34 | Re: Plan caching and serialization for reuse across executions |