On Wed, Sep 3, 2014 at 10:44 AM, Andres Freund <and...@2ndquadrant.com> wrote: > On 2014-09-03 09:31:50 -0400, Robert Haas wrote: >> On Fri, Aug 29, 2014 at 1:26 PM, Andres Freund <and...@2ndquadrant.com> >> wrote: >> > We have pg_get_serial_sequence() mapping (relation, colum) to the >> > sequence. What I'm missing right now is the inverse. I.e. given a >> > sequence tell me the owner. >> > describe.c has a query for that, and it's not too hard to write, but it >> > still seems 'unfriendly' not to provide it. >> > >> > Does anybody dislike adding a function for that? >> >> I'll go out on a limb and say that it sounds like pointless catalog >> bloat to me. I am all in favor of adding things like this where the >> SQL query is painful to write (e.g. things involving pg_depend) but if >> it's a simple SELECT query then, eh, not really excited about it. > > There's not really a simple select for it, is there? psql uses: > > /* Get the column that owns this sequence */ > printfPQExpBuffer(&buf, "SELECT > pg_catalog.quote_ident(nspname) || '.' ||" > "\n > pg_catalog.quote_ident(relname) || '.' ||" > "\n > pg_catalog.quote_ident(attname)" > "\nFROM pg_catalog.pg_class > c" > "\nINNER JOIN pg_catalog.pg_depend d > ON c.oid=d.refobjid" > "\nINNER JOIN pg_catalog.pg_namespace n ON > n.oid=c.relnamespace" > "\nINNER JOIN > pg_catalog.pg_attribute a ON (" > "\n a.attrelid=c.oid AND" > "\n a.attnum=d.refobjsubid)" > "\nWHERE > d.classid='pg_catalog.pg_class'::pg_catalog.regclass" > "\n AND > d.refclassid='pg_catalog.pg_class'::pg_catalog.regclass" > "\n AND d.objid=%s" > "\n AND d.deptype='a'", > oid);
Oh, OK. Yeah, that's kind of hairy. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers