public inbox for [email protected]  
help / color / mirror / Atom feed
From: Žiga Kranjec <[email protected]>
To: Brice Maron <[email protected]>
Cc: Stephen Frost <[email protected]>
Cc: Damien Clochard <[email protected]>
Cc: Christoph Berg <[email protected]>
Cc: [email protected]
Subject: Re: Export the CREATE TABLE command in pure SQL
Date: Wed, 20 Mar 2019 18:58:13 +0100
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAHBQ7mcz7LO6t3FhJtxpj6Af2_yEiOGcXcWixK+TOhT8cnkoMA@mail.gmail.com>
References: <[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<CAHBQ7mcz7LO6t3FhJtxpj6Af2_yEiOGcXcWixK+TOhT8cnkoMA@mail.gmail.com>

I am working on an extension for this.
See here: https://github.com/lacanoid/pgddl <https://github.com/lacanoid/pgddl;

Thanks
Žiga

> On 19 Mar 2019, at 08:35, Brice Maron <[email protected]> wrote:
> 
> Hi, 
> i've tried a few time to implement this feature and look how other clients do but it often (always?) ends up beeing completely buggy or incomplete which of course 
> defeat the purpose ... 
> if we can come up with something as easy as show create table , if would be very nice ( can even be usefull for psql users , in combination with other \... commands)
> 
> 
> 
> On Tue, Mar 19, 2019 at 4:00 AM Stephen Frost <[email protected] <mailto:[email protected]>> wrote:
> Greetings,
> 
> * Damien Clochard ([email protected] <mailto:[email protected]>) wrote:
> > Le 18.03.2019 16:10, Christoph Berg a écrit :
> > >Re: Damien Clochard 2019-03-17
> > ><[email protected] <mailto:[email protected]>>
> > >>How do you guys deal with this ? It seems that a lot of GUI tools are
> > >>able
> > >>to "export the table structure".... Is there an extension somewhere to
> > >>do
> > >>that ? Is it possible to write i in pure SQL ? If yes, there anybody
> > >>here
> > >>interested in joining forces to build a shared export function ?
> > >
> > >IMHO the cleanest way would be to move all of that into the server.
> > >There are already functions like pg_getindexdef() which pg_dump can
> > >(could?) use. But of course that won't fix the problem for existing PG
> > >versions.
> > 
> > This was also my first thought. MySQL has a nice "SHOW CREATE TABLE" command
> > and it seems to me that putting this code on the server would be a benefit
> > for any GUI tools that tries to export tables structure and probably also
> > for schema versionning tools.
> > 
> > https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html <https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html;
> > 
> > I looked at the pg_dump code and tried to build a C extension that would
> > include the dumputils.h header file. But pg_dump is a client-side tool, so
> > parts of this code would have to be moved to the server-side. I don't have
> > the time and knowledge to propose a patch like that by myself. But if
> > someone is interested, I can help...
> 
> I think the right answer here would be to try and move the code for this
> into the libpgcommon library but I'm not sure how easy that would be..
> 
> > >For a medium-term solution, a plpgsql extension (or the client-side
> > >equivalent) seems like the best way.
> > 
> > Agreed.
> 
> I'm a bit concerned that we'd end up with differences between pg_dump
> and this extension eventually...  I guess my thought would be to try and
> build something into the server for this and use that for future PG
> versions, and then back-port things into another library for older
> versions or something.
> 
> Thanks!
> 
> Stephen



view thread (8+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Export the CREATE TABLE command in pure SQL
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox