Обсуждение: BUG #9366: Default MAXVALUE is incorrect for sequence object of serial type

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

BUG #9366: Default MAXVALUE is incorrect for sequence object of serial type

От
kashi@fhpg.net
Дата:
The following bug has been logged on the website:

Bug reference:      9366
Logged by:          KASHI, Yukihito
Email address:      kashi@fhpg.net
PostgreSQL version: 9.1.6
Operating system:   Windows7 / Linux version 2.6.18
Description:

When I create the new table as serial type column , I found a strange
condition on sequence parameter.
It could be specified as integer, but MAXVALUE of sequence is set as
Bigint.

ex)
CREATE TABLE test_int (seq_int serial, test_int integer);
At that case, MAXVALUE of test_int_seq_int_seq is "9223372036854775807". As
the result, if the current value is 2147483647, next insert operation could
be failed as "ERROR: integer out of range".

I briefly check the release note, but I couldn't find any changes related
with serial between 9.1.7 - 9.1.12.

Thank you.

Re: BUG #9366: Default MAXVALUE is incorrect for sequence object of serial type

От
Tom Lane
Дата:
kashi@fhpg.net writes:
> When I create the new table as serial type column , I found a strange
> condition on sequence parameter.
> It could be specified as integer, but MAXVALUE of sequence is set as
> Bigint.

This is not a bug, but intentional behavior.  See

http://www.postgresql.org/message-id/flat/E1VeK8A-0006V4-EX@wrigleys.postgresql.org#E1VeK8A-0006V4-EX@wrigleys.postgresql.org

> At that case, MAXVALUE of test_int_seq_int_seq is "9223372036854775807". As
> the result, if the current value is 2147483647, next insert operation could
> be failed as "ERROR: integer out of range".

So?  If we set the sequence limit differently, the case would still fail,
just with a different error message.  And you'd then have two things to
fix, not only one, to get your database back in working order.

            regards, tom lane