Re: inherited type
От | Michael Fuhr |
---|---|
Тема | Re: inherited type |
Дата | |
Msg-id | 20050401154216.GA59714@winnie.fuhr.org обсуждение исходный текст |
Ответ на | inherited type (Miguel Angel Tribaldos Hervas <mitriher@teleco.upv.es>) |
Список | pgsql-general |
On Fri, Apr 01, 2005 at 12:42:19PM +0200, Miguel Angel Tribaldos Hervas wrote: > > I am working with inheritance in postgresql 7.4. If I create a table named A, > and another named B that inherits from A, if I perform a query such a > "SELECT * FROM A" (without ONLY clause), > how can I get the type (identifier from pg_type) of the returned records?? You can look at the tableoid system column to get the oid from pg_class: CREATE TABLE parent (pid integer); CREATE TABLE child (cid integer) INHERITS (parent); INSERT INTO parent (pid) VALUES (1); INSERT INTO child (pid, cid) VALUES (2, 3); SELECT tableoid, tableoid::regclass, * FROM parent; tableoid | tableoid | pid ----------+----------+----- 39455 | parent | 1 39457 | child | 2 (2 rows) If necessary, you could join tableoid against pg_type.typrelid or pg_class.oid: SELECT t.typname, p.* FROM parent AS p JOIN pg_type AS t ON t.typrelid = p.tableoid; typname | pid ---------+----- parent | 1 child | 2 (2 rows) SELECT c.relname, p.* FROM parent AS p JOIN pg_class AS c ON c.oid = p.tableoid; relname | pid ---------+----- parent | 1 child | 2 (2 rows) -- Michael Fuhr http://www.fuhr.org/~mfuhr/
В списке pgsql-general по дате отправления: