Re: Inverse of pg_get_serial_sequence?
От | Andres Freund |
---|---|
Тема | Re: Inverse of pg_get_serial_sequence? |
Дата | |
Msg-id | 20140903144457.GB4298@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: Inverse of pg_get_serial_sequence? (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: Inverse of pg_get_serial_sequence?
|
Список | pgsql-hackers |
On 2014-09-03 09:31:50 -0400, Robert Haas wrote: > On Fri, Aug 29, 2014 at 1:26 PM, Andres Freund <andres@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_dependd 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" "\nAND d.refclassid='pg_catalog.pg_class'::pg_catalog.regclass" "\n AND d.objid=%s" "\n AND d.deptype='a'", oid); Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: