Sizes of sequences and serials (fwd)

Started by Elein Mustainover 23 years ago3 messagesgeneral
Jump to latest
#1Elein Mustain
elein@tulip.norcov.com

According to the documentation, it looks like sequences
are always stored as bigints (if the platform supports them).

Serials, though, seem to be able to be declared as serial
with integer storage or serial8 for bigint storage.

Is the storage for ordinary serials really an int and not
a big int? Is there a way to create a sequence stored
as an int instead of a big int? For example by setting
the maximun size?

thanks,
elein@norcov.com

#2elein
elein@sbcglobal.net
In reply to: Elein Mustain (#1)
Fwd: Sizes of sequences and serials

I'm sorry if this gets posted more than once. My ISP smtp servers
have gone whacky on me.

elein

---------- Forwarded Message ----------

Subject: Sizes of sequences and serials
Date: Thu, 26 Sep 2002 16:44:45 -0700
From: elein <elein@sbcglobal.net>
To: pgsql-general@postgresql.org
Cc: elein <elein@norcov.com>

According to the documentation, it looks like sequences
are always stored as bigints (if the platform supports them).

Serials, though, seem to be able to be declared as serial
with integer storage or serial8 for bigint storage.

Is the storage for ordinary serials really an int and not
a big int? Is there a way to create a sequence stored
as an int instead of a big int? For example by setting
the maximun size?

thanks,
elein@norcov.com

-------------------------------------------------------

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: elein (#2)
Re: Fwd: Sizes of sequences and serials

elein <elein@sbcglobal.net> writes:

According to the documentation, it looks like sequences
are always stored as bigints (if the platform supports them).

Correct.

Serials, though, seem to be able to be declared as serial
with integer storage or serial8 for bigint storage.

Is the storage for ordinary serials really an int and not
a big int?

If you declare a serial (aka serial4) column, you get an int4 column
that's driven by a bigint sequence. No problem except for a runtime
conversion from int8 to int4, which is really pretty negligible in
comparison to the cost of nextval().

Is there a way to create a sequence stored as an int instead of a big
int?

No; it wouldn't save anything anyway, seeing that each sequence is
stored as a separate table and so must occupy one disk block.

regards, tom lane