Thread: Re: [HACKERS] On improving OO support in posgresql and relaxing oid bottleneck at the same time

-----Original Message-----
From: Maurice Gittens <mgittens@gits.nl>
To: hackers@postgreSQL.org <hackers@postgreSQL.org>
Date: zondag 5 april 1998 21:47
Subject: [HACKERS] On improving OO support in posgresql and relaxing oid
bottleneck at the same time


>Hi,
>
>I'm currently under the impression that the following change in the
>postgresql system would benefict the overall performance and quality
>of the system.
>
>    Tuples for a class and all it's derived classes are stored in one file.
>
>Advantages:


 -- cut --
>
>
>Disadvantages
>- sequential heapscans for tables _with_ derived classes will be less
>efficient
>  in general,   because now some tuples may have to be skipped since they
>may
>  belong to the wrong class. This is easily solved using indices.
>
>- slight space overhead for tuple when not using inheritance.
>  The space is used to tag each tuple with the most derived class it
>  belongs to.
>

One extra disadvantage of this is that multiple inheritance is only
easily supported if bases classes being inherited from have a common
top most base class. In which all tuples are stored. Otherwise
we'll storagefile independant oid's will become necesary again.

So loosely speaking it still allows for multiple inheritance but only within
a common hierarchy.

With regards from Maurice.



Re: [HACKERS] On improving OO support in posgresql and relaxing oid bottleneck at the same time

From
dg@illustra.com (David Gould)
Date:
> -----Original Message-----
> From: Maurice Gittens <mgittens@gits.nl>
> To: hackers@postgreSQL.org <hackers@postgreSQL.org>
> Date: zondag 5 april 1998 21:47
> Subject: [HACKERS] On improving OO support in posgresql and relaxing oid
> bottleneck at the same time
>
> top most base class. In which all tuples are stored. Otherwise
> we'll storagefile independant oid's will become necesary again.
>
> So loosely speaking it still allows for multiple inheritance but only within
> a common hierarchy.

Just for everyones information. In Illustra, an oid is 64 bits. The low
order 32 bits are (approximately), the row identifier within a table. The
high order 32bits the table identifier (which then works out to be the
same as the oid of the row in the tables table for the table in question).

Oids are unique for the life of the system. Limits are 4G tables, 4G rows
per table.

I for some reason have never bothered to remember, but I think inheritance
is done via separate tables.

-dg

David Gould            dg@illustra.com           510.628.3783 or 510.305.9468
Informix Software  (No, really)         300 Lakeside Drive  Oakland, CA 94612
 - Linux. Not because it is free. Because it is better.