Thread: Reset oid , starting value=1

Reset oid , starting value=1

From
"Gellert, Andre"
Date:
Hello,
i have a bug in a php application based on postgres 7.2.2 , which cannot
handle oid's greater than
2147483647 .
So I have to reset the used oids to start from 1 again, so that we have more
time to correct this bug, I tried to delete dropdb, createdb and read back
the data, but the oids are not reseted , they start at the high values.
How can i reset this oid-starting from value ?
Are OIDs used once per postgres-installation (so they are unique over all
databases, seem to be that way) , or are they only counted up in the current
database ?
There must be a global value which sets the last oid, i need to set this to
"1" or to fill up from 1 , so i have no oids >= 2147483647 for the near
future.. how can i do this ? Fixing the mentioned above will take more time.

What i am looking for is a vacuumdb -a --forgetthoseoids ;-) , but I cannot
find infos about that.

bye,
Andre Gellert

Re: Reset oid , starting value=1

From
Martijn van Oosterhout
Date:
The only way to reset oids is to destroy the entire data directory and
initdb again. In recent versions you can create tables without oids, thus
reducing their usage.

Hope this helps,

On Tue, Dec 09, 2003 at 11:22:15AM +0100, Gellert, Andre wrote:
> Hello,
> i have a bug in a php application based on postgres 7.2.2 , which cannot
> handle oid's greater than
> 2147483647 .
> So I have to reset the used oids to start from 1 again, so that we have more
> time to correct this bug, I tried to delete dropdb, createdb and read back
> the data, but the oids are not reseted , they start at the high values.
> How can i reset this oid-starting from value ?
> Are OIDs used once per postgres-installation (so they are unique over all
> databases, seem to be that way) , or are they only counted up in the current
> database ?
> There must be a global value which sets the last oid, i need to set this to
> "1" or to fill up from 1 , so i have no oids >= 2147483647 for the near
> future.. how can i do this ? Fixing the mentioned above will take more time.
>
> What i am looking for is a vacuumdb -a --forgetthoseoids ;-) , but I cannot
> find infos about that.
>
> bye,
> Andre Gellert
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> (... have gone from d-i being barely usable even by its developers
> anywhere, to being about 20% done. Sweet. And the last 80% usually takes
> 20% of the time, too, right?) -- Anthony Towns, debian-devel-announce

Attachment

Re: Reset oid , starting value=1

From
"Gellert, Andre"
Date:
Hi Martijn,

> > There must be a global value which sets the last oid, i need to set this
to
> > "1" or to fill up from 1 , so i have no oids >= 2147483647 for the near
> > future.. how can i do this ? Fixing the mentioned above will take more
time.
>
> The only way to reset oids is to destroy the entire data directory and
> initdb again. In recent versions you can create tables
> without oids, thus
> reducing their usage.

So pg_dump all databases, initdb and playback ? This means a offline-time
for my
systems. Do i need to backup template1 , too ?

> Hope this helps,

To be honest :-) : Not what i was hoping for ...

thx, Andre