Re: Adding SHOW CREATE TABLE
Ron Johnson <ronljohnsonjr@gmail.com>
From: Ron <ronljohnsonjr@gmail.com>
To: pgsql-general@lists.postgresql.org
Date: 2023-05-13T18:28:11Z
Lists: pgsql-hackers, pgsql-general
On 5/13/23 02:25, Kirk Wolak wrote:
> On Sat, May 13, 2023 at 1:03 AM Ron <ronljohnsonjr@gmail.com> wrote:
>
> On 5/12/23 18:00, Kirk Wolak wrote:
> [snip]
>> Where do we draw the lines?
>
> At other tables.
>
>> Does Table DDL include all indexes?
>
> Absolutely!
>
>> It should include constraints, clearly. I would not think it should
>> have triggers.
>
> Definitely triggers. And foreign keys.
>
>> Literally everything within the <<CREATE TABLE X(...);>>. (ie, no
>> ALTER .. OWNER TO...)
>>
>
> ALTER statements, too. If CREATE TABLE ... LIKE ... { INCLUDING |
> EXCLUDING } { COMMENTS | COMPRESSION | CONSTRAINTS | DEFAULTS |
> GENERATED | IDENTITY | INDEXES | STATISTICS | STORAGE | ALL } can do
> it, then so should SHOW CREATE TABLE.
>
> --
> Born in Arizona, moved to Babylonia.
>
>
> I can see the ALTER statements now. Which is why I asked.
> I don't like the idea of including the trigger DDL, because that would
> never execute in a clean environment.
I would not be grumpy if trigger statements weren't included.
> (I've never used a tool that tried to do that when I've wanted the DDL)
> I can go either way on index creation.
>
> Does this imply SQL SYNTAX like:
>
> SHOW CREATE TABLE <table_name>
> [ INCLUDING { ALL | INDEXES | SEQUENCES | ??? }]
> [EXCLUDING { PK | FK | COMMENTS | STORAGE | } ]
> [FOR {V11 | V12 | V13 | V14 | V15 }] ??
> ?
"FOR {V...}" is a complication too far, IMO. No one expects "pg_dump
--schema-only" to have a --version= option, so one should not expect SHOW
CREATE TABLE to have a "FOR {V...}" clause.
> The goal for me is to open the discussion, and then CONSTRAIN the focus.
>
> Personally, the simple syntax:
> SHOW CREATE TABLE table1;
>
> Should give me a create table command with the table attributes and the
> column attributes, FKs, PKs, Defaults. Etc.
> But I would not expect it to generate index commands, etc.
--
Born in Arizona, moved to Babylonia.