BUG #14986: -2147483648 is minimum value of integer but-2147483648::integer fails (out of range).

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #14986: -2147483648 is minimum value of integer but-2147483648::integer fails (out of range).
Дата
Msg-id 20171220122032.25740.1219@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #14986: -2147483648 is minimum value of integer but-2147483648::integer fails (out of range).  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      14986
Logged by:          Indrek Loolaid
Email address:      binoternary@gmail.com
PostgreSQL version: 10.1
Operating system:   Ubuntu 16.04.3 LTS
Description:

Documentation in
https://www.postgresql.org/docs/current/static/datatype-numeric.html states
that the range for integer type is -2147483648 to +2147483647.

However casting the minimum value literal with :: syntax to integer fails
(ERROR:  integer out of range).

postgres=# select version();
                                                    version
                                   
----------------------------------------------------------------------------------------------------------------
 PostgreSQL 10.1 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu
5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609, 64-bit
(1 row)


postgres=# select -2147483648::integer;
ERROR:  integer out of range

postgres=# select cast(-2147483648 as integer);
    int4     
-------------
 -2147483648
(1 row)

postgres=# select (select -2147483648)::integer;
  ?column?   
-------------
 -2147483648
(1 row)


The expected outome is that the first query returns the same result as the
other two.
Bigint and smallint types have the same issue.


В списке pgsql-bugs по дате отправления:

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #14985: ExecCopySlotTuple not set "type id" and "type mod" whenfrom minial tuple"
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: BUG #14986: -2147483648 is minimum value of integer but-2147483648::integer fails (out of range).