Обсуждение: BUG #9366: Default MAXVALUE is incorrect for sequence object of serial type
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.
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