Обсуждение: question regarding pg_database.h and DatabaseRelationId

Поиск
Список
Период
Сортировка

question regarding pg_database.h and DatabaseRelationId

От
Gevik Babakhani
Дата:
Hello all,

Could someone explain the numbering logic in naming the relations? Why
#define DatabaseRelationId 1262.

I guess not being involved from the beginning has its disadvantages. but
it is very exiting and fun trying to learn the internals by gdb and
asking lots of questions :)

Regards,
Gevik.



Re: question regarding pg_database.h and DatabaseRelationId

От
Peter Eisentraut
Дата:
Gevik Babakhani wrote:
> Could someone explain the numbering logic in naming the relations?

There is none.  The numbers are presumably assigned in some 
lowest-available manner, but over the years it has become pretty 
random.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


Re: question regarding pg_database.h and DatabaseRelationId

От
Martijn van Oosterhout
Дата:
On Tue, Apr 18, 2006 at 12:45:27AM +0200, Peter Eisentraut wrote:
> Gevik Babakhani wrote:
> > Could someone explain the numbering logic in naming the relations?
>
> There is none.  The numbers are presumably assigned in some
> lowest-available manner, but over the years it has become pretty
> random.

In the src/include/catalog directory there are two scripts, unused_oids
and duplicate_oids. When you need a new oid you run the unused_oids and
pick one somewhere near the rows with similar meaning. The numbers are
so all over the place that you may as well consider them random...

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.