Обсуждение: BUG #1626: Minimum documented values aren't accepted for all basic integer types

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

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

От
"Dennis Vshivkov"
Дата:
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.

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

От
Tom Lane
Дата:
"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