Re: [HACKERS] ODMG interface

Поиск
Список
Период
Сортировка
От Hannu Krosing
Тема Re: [HACKERS] ODMG interface
Дата
Msg-id 373569D8.5C399293@trust.ee
обсуждение исходный текст
Ответ на Re: [HACKERS] ODMG interface  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> 
> Chris Bitmead <chris.bitmead@bigfoot.com> writes:
> > Q1. I need to have a virtual field which describes the class membership.
> 
> > So I want to be able to find the class name of various objects by doing
> > something like
> > SELECT relname FROM person*, pg_class where person.classoid =
> > pg_class.oid;
> 
> I am not sure what you mean by "class membership" here.  There is type
> information for each column of every relation in pg_attribute and
> pg_type.  There is also a pg_type entry for each relation, which can be
> thought of as the type of the rows of the relation.  The query you show
> above looks like maybe what you really want to get at is the inheritance
> hierarchy between relations --- if so see pg_inherits.
> 
> I suspect that whatever you are looking for is already available in the
> system tables, but I'm not quite certain about what semantics you want.

There is currently no (fast) way to go from oid to the relation
containing 
that oid.

the only way seems to find all relations that inherit from the base and
do

select * from base_or_derived_relation where oid=the_oid_i_search_for;

until you get back the row.

I would propose a pseudo column (or funtion) so that one could do:

select rowrelname() as class_name, * from person*;

and then work from there on.
Unfortunately I am too ignorant on the internals to implement it ;(

-------------
Hannu


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Johannes.Weitzel@t-online.de (Johannes Weitzel)
Дата:
Сообщение: Re: Frage!
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [SQL] Re: [HACKERS] Re: INSERT/UPDATE waiting (another example)