Re: pgsql oid question

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pgsql oid question
Дата
Msg-id 7020.1041748936@sss.pgh.pa.us
обсуждение исходный текст
Ответ на pgsql oid question  ("Reggie Burnett" <rykr@bellsouth.net>)
Ответы Re: pgsql oid question  ("Reggie Burnett" <rykr@bellsouth.net>)
Список pgsql-hackers
"Reggie Burnett" <rykr@bellsouth.net> writes:
> I have started experimenting with an access layer for pgsql and have a
> question.  I had someone on this list tell me that the oid values that
> come back from the server are tag identifiers for that row/column
> combination and are not type indicators.

I think your someone is confused. There are no identifiers associated
with row/column combinations.

> Yet, when I create multiple
> tables/columns each having the same type (int32), the same oid keeps
> being returned.

The OIDs returned in RowDescription messages uniquely identify datatypes
(more specifically, pg_type rows).  They will be stable short of DROP
TYPE/CREATE TYPE shenanigans.  (However, user-defined types might not
get the same OIDs assigned after a dump/reload cycle.  It's probably
reasonable to treat type OIDs as stable for the life of a connection,
but not as constants of nature.)

OIDs are also used for other purposes, so your confusion may stem from
confusing pg_type OIDs with other OIDs.  In the current system
implementation, OIDs are unique row identifiers only within individual
tables --- perhaps not even then, if the table doesn't have a unique
index on its OID field.  Thus, a pg_type OID uniquely identifies a
datatype, but that doesn't mean that the same OID number could not
appear in pg_class, pg_rewrite, or other system or user tables.
        regards, tom lane


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

Предыдущее
От: "Reggie Burnett"
Дата:
Сообщение: pgsql oid question
Следующее
От: "Reggie Burnett"
Дата:
Сообщение: Re: pgsql oid question