Re: Using oids - Mailing list pgsql-general
From | Shridhar Daithankar |
---|---|
Subject | Re: Using oids |
Date | |
Msg-id | 3F5603E7.6708.543528D@localhost Whole thread Raw |
In response to | Re: Using oids (Bo Lorentsen <bl@netgroup.dk>) |
Responses |
Re: Using oids
|
List | pgsql-general |
On 3 Sep 2003 at 11:28, Bo Lorentsen wrote: > On Wed, 2003-09-03 at 11:10, Shridhar Daithankar wrote: > > > Yes. It is correct. As of 7.3.x and onwards oids are optional at table creation > > times. They default to be available for new objects but that is for backwards > > compatibility I believe. In future, they would default to be not available for > > a particular object(hopefully). Right now you need to explicitly specify no > > oids while creating tables etc. > I do understand the limitation of the oid as implimented now, but why > remove the possibility to make unique row references (like after an > insert), instead of extenting the oid ? > > I don't care if they wrap, or is a unique string or anything else, as > long as I can use it to refetch a row after an insert, without keeping > track of app. implimentation specific SERIAL fields. Well, what I do is, declare a serate sequence, retrive next available value and explicitly insert it into a integer field. That avoids having to retrieve the latest value again. I don't know if this is a widespread practice but I find it useful for more than one way in the environment in which I program. > > > About oids not being unique, oids can assume 4 billion different values. If you > > have more than those many rows in a table, oids will wrap around and will no > > longer be unique in that object. > I see that this is a problem, and 4 billion is not alot, but why not > make another format like in oracle, so that it still is possible to > refere to a row using a unique --- thing. There must be an internal oid > somewhere, what we may be able to use. I understand. With growing use of 64 bit hardware, 4 billion will be history pretty soon. However historically oids were assumed to be 32 bit. There could be places which unintentionally assumed it as such. Cleaning all those places is pretty difficult given the big code base postgresql has. If you compile postgresql with Oid as 64 bit integer, that will work in most cases probably. However it does not guarantee that it will always work. There always could be some places which assumed 32 bit data types. That is one of the problem as I understand. (Gathered and extended from one of Tom's post. correct me if I am wrong) > > About oids being eliminated, I am sure it would happen some time in the future, > > looking at the development on this issue. Core team could elaborate more on > > this. > Sounds like a sad thing, if this is not replaced by something simular, > but more fit to a large DB. You can request this to be a TODO to hackers. They will decide if this is worth having it. Personally I support it the way it is. Optionally available. For large table containing billions of rows, Oids add to tuple size and overall IO. If you are not using Oids, they become overhead. Ability to turn them off is certainly nice.. Bye Shridhar -- Unfair animal names:-- tsetse fly -- bullhead-- booby -- duck-billed platypus-- sapsucker -- Clarence -- Gary Larson
pgsql-general by date: