Re: OID's - Mailing list pgsql-ru-general

From Alexander M. Pravking
Subject Re: OID's
Date
Msg-id 20050121171200.GA75942@dyatel.antar.bryansk.ru
Whole thread Raw
In response to Re: OID's  (Mihail Nasedkin <m.nasedkin.perm@mail.ru>)
List pgsql-ru-general
On Fri, Jan 21, 2005 at 02:52:01PM +0500, Mihail Nasedkin wrote:
> NG> Хрянятся в таблице, как еще один столбец. Узнать перед вставкой -- вряд
> NG> ли, особенно в многопользовательской среде.
>
> Это понятно всем, но в какой системной таблице хранятся ВСЕ OID's, а
> не только этой таблицы. Есть таблица "pg_catalog.pg_attribute" с полем
> "attrelid", где хранятся все системные OID's, но нужны именно
> пользовательские OID's.

attrelid в данном случае - лишь ссылка на pg_catalog.pg_class.oid.
ВСЕ системные таблицы имеют столбец oid, и именно это его основное
назначение.

> NG> А зачем все это? Я вот с радостью отключил OID по дефолту в 8.0, ибо
> NG> надобность в них сомнительная.
> Мое мнение в том, что система уникальности записи в пределах всех баз
> данных конкретной инсталляции PostgreSQL независимо от принадлежности
> к конкретной таблице является интересным для нестандартных решений в
> приложениях. Конечно можно такую задачу решать каждому разработчику
> своими силами и это реализовано в других SQL-серверах.
> Однако, если уникальность уже реализована на системном уровне сервера - это большой
> плюс PostgreSQL. Я всегда использую OID's.

Чем не вариант - уникальность с помощью SEQUENCE, тоже на уровне сервера?
Конечно, между базами уникальности не получится, а вот между всеми
таблицами в базе - вполне. К тому же, если не ошибаюсь, oid - поле
32-битное, тогда как значение в SEQUENCE - 64-битное, что даёт бОльшую
гарантию, что значение не переполнится на больших объёмах данных.

И можно заранее достать значение, которое больше никем использовано не
будет.


--
Fduch M. Pravking

pgsql-ru-general by date:

Previous
From: Oleg Bartunov
Date:
Subject: pgsql-ru-general archive is available
Next
From: Nick Gazaloff
Date:
Subject: Re: pgsql-ru-general archive is available