Bug in Create sequence parsing?

Started by postgresover 26 years ago3 messagesbugs
Jump to latest
#1postgres
postgres@euclid.ihug.co.nz

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Adam Boileau
Your email address : metlstrm@ihug.co.nz
postgres@euclid.ihug.co.nz

System Configuration
---------------------
Architecture (example: Intel Pentium) : Dual Intel P2

Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.10

PostgreSQL version (example: PostgreSQL-6.5.3): PostgreSQL-6.5.3

Compiler used (example: gcc 2.8.0) : gcc 2.95.1

Please enter a FULL description of your problem:
------------------------------------------------

Creating a sequence whose maxvalue is > signed-4-byte-int-max generates a parse error.
Inserting the same value into an int8 field works, however.
Conclusion: create sequence doesnt parse > int4, but insert does.

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

euclid=> create table test (Im_big int8);
CREATE

--Insert int4-max + 1
euclid=> insert into test values (2147483648);
INSERT 192329 1

--Create a sequence whose maxval is int4-max
euclid=> create sequence im_big_seq maxvalue 2147483647;
CREATE

--Hmm, works great.
euclid=> drop sequence im_big_seq;
DROP

--Create a sequence whose maxval is int4-max + 1
euclid=> create sequence im_big_seq maxvalue 2147483648;
ERROR: parser: parse error at or near "2147483648"
ERROR: parser: parse error at or near "2147483648"

--No sir, I dont like it.

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

#2Bruce Momjian
bruce@momjian.us
In reply to: postgres (#1)
Re: Bug in Create sequence parsing?

Seems we don't support int8 sequences. Should we? I don't see a good
use for them.

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Adam Boileau
Your email address : metlstrm@ihug.co.nz
postgres@euclid.ihug.co.nz

System Configuration
---------------------
Architecture (example: Intel Pentium) : Dual Intel P2

Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.10

PostgreSQL version (example: PostgreSQL-6.5.3): PostgreSQL-6.5.3

Compiler used (example: gcc 2.8.0) : gcc 2.95.1

Please enter a FULL description of your problem:
------------------------------------------------

Creating a sequence whose maxvalue is > signed-4-byte-int-max generates a parse error.
Inserting the same value into an int8 field works, however.
Conclusion: create sequence doesnt parse > int4, but insert does.

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

euclid=> create table test (Im_big int8);
CREATE

--Insert int4-max + 1
euclid=> insert into test values (2147483648);
INSERT 192329 1

--Create a sequence whose maxval is int4-max
euclid=> create sequence im_big_seq maxvalue 2147483647;
CREATE

--Hmm, works great.
euclid=> drop sequence im_big_seq;
DROP

--Create a sequence whose maxval is int4-max + 1
euclid=> create sequence im_big_seq maxvalue 2147483648;
ERROR: parser: parse error at or near "2147483648"
ERROR: parser: parse error at or near "2147483648"

--No sir, I dont like it.

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

************

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#2)
Re: Bug in Create sequence parsing?

Bruce Momjian <pgman@candle.pha.pa.us> writes:

Seems we don't support int8 sequences. Should we? I don't see a good
use for them.

Sooner or later we'll probably want to offer an option to make OID be
8 bytes. I could see switching sequences to int8 as well when we
do that. Of course it would not work on platforms without compiler
support for 64-bit integers...

regards, tom lane