BUG #1626: Minimum documented values aren't accepted for all basic integer types

Started by Dennis Vshivkovalmost 21 years ago2 messagesbugs
Jump to latest
#1Dennis Vshivkov
walrus@amur.ru

The following bug has been logged online:

Bug reference: 1626
Logged by: Dennis Vshivkov
Email address: walrus@amur.ru
PostgreSQL version: 7.4.6, 8.0.2
Operating system: Debian GNU/Linux sarge, kernel 2.4.x
Description: Minimum documented values aren't accepted for all basic
integer types
Details:

8.0 documentation states:

Table 8-2. Numeric Types
Name Range
smallint -32768 to +32767
integer -2147483648 to +2147483647
bigint -9223372036854775808 to 9223372036854775807

However,

# SELECT -32768::SMALLINT;
ERROR: smallint out of range
# SELECT -2147483648::INTEGER;
ERROR: integer out of range
# SELECT -9223372036854775808::BIGINT;
ERROR: bigint out of range

# SELECT version();
PostgreSQL 8.0.2 on i386-pc-linux-gnu, compiled by GCC cc (GCC) 3.3.5
(Debian 1:3.3.5-5)

7.4.6 also produces errors, albeit the message is
invariably `integer out of range' in all three cases.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dennis Vshivkov (#1)
Re: BUG #1626: Minimum documented values aren't accepted for all basic integer types

"Dennis Vshivkov" <walrus@amur.ru> writes:

# SELECT -32768::SMALLINT;
ERROR: smallint out of range

Not a bug, because that is read as "-(32768::SMALLINT)", per the
documented operator precedence. Try (-32768)::SMALLINT.

regards, tom lane