Re: Adding SHOW CREATE TABLE
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Pavel Stehule <pavel.stehule@gmail.com>, Kirk Wolak <wolakk@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-05-22T11:52:24Z
Lists: pgsql-hackers, pgsql-general
On 2023-05-22 Mo 05:24, Pavel Stehule wrote: > > > po 22. 5. 2023 v 7:19 odesílatel Kirk Wolak <wolakk@gmail.com> napsal: > > On Fri, May 19, 2023 at 1:08 PM Andrew Dunstan > <andrew@dunslane.net> wrote: > > I think the ONLY place we should have this is in server side > functions. More than ten years ago I did some work in this > area (see below), but it's one of those things that have been > on my ever growing personal TODO list > > See <https://bitbucket.org/adunstan/retailddl/src/master/> > <https://bitbucket.org/adunstan/retailddl/src/master/> and > <https://www.youtube.com/watch?v=fBarFKOL3SI> > <https://www.youtube.com/watch?v=fBarFKOL3SI> > > Andrew, > Thanks for sharing that. I reviewed your code. 10yrs, clearly > it's not working (as-is, but close), something interesting about the > structure you ended up in. You check the type of the object and > redirect accordingly at the top level. Hmmm... > What I liked was that each type gets handled (I was focused on > "table"), but I realized similarities. > > I don't know what the group would think, but I like the thought > of calling this, and having it "Correct" to call the appropriate > function. > But not sure it will stand. It does make obvious that some of > these should be spun out as "pg_get_typedef".. > pg_get_typedef > pg_get_domaindef > pg_get_sequencedef > > Finally, since you started this a while back, part of me is > "leaning" towards a function: > pg_get_columndef > > Which returns a properly formatted column for a table, type, or > domain? (one of the reasons for this, is that this is > the function with the highest probability to change, and > potentially the easiest to share reusability). > > Finally, I am curious about your opinion. I noticed you used > the internal pg_ tables, versus the information_schema... > I am *thinking* that the information_schema will be more stable > over time... Thoughts? > > > I think inside the core, the information schema is never used. And > there was a performance issue (fixed in PostgreSQL 12), that blocked > index usage. > > A performant server side set of functions would be written in C and follow the patterns in ruleutils.c. cheers andrew -- Andrew Dunstan EDB:https://www.enterprisedb.com