Re: Adding SHOW CREATE TABLE

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Adding SHOW CREATE TABLE
Date: 2023-05-13 18:28:11
Message-ID: fac9def3-57f6-980a-48c3-2d57b0890ede@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On 5/13/23 02:25, Kirk Wolak wrote:
> On Sat, May 13, 2023 at 1:03 AM Ron <ronljohnsonjr(at)gmail(dot)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.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jeremy Smith 2023-05-13 19:34:44 Re: Adding SHOW CREATE TABLE
Previous Message postmaster 2023-05-13 17:06:11 Re: Window function for get the last value to extend missing rows

Browse pgsql-hackers by date

  From Date Subject
Next Message Jeremy Smith 2023-05-13 19:34:44 Re: Adding SHOW CREATE TABLE
Previous Message Tom Lane 2023-05-13 13:45:41 Re: Should CSV parsing be stricter about mid-field quotes?