The following bug has been logged on the website:
Bug reference: 15458
Logged by: Elvis Pranskevichus
Email address: elprans(at)gmail(dot)com
PostgreSQL version: 11.0
Operating system: x86_64-pc-linux-gnu
Description:
There seems to be an inconsistency in how the parser and the integer input
functions interpret the integers at the negative limit (-2 ^ 31 and -2 ^
63):
SELECT pg_typeof(-2147483648);
pg_typeof
-----------
integer
(1 row)
But:
SELECT -2147483648::integer;
ERROR: integer out of range
The same issue applies to int8 as well.
PG_INT32_MIN is explicitly defined as -(2 ^ 31 - 1), and it seems
inconsistent that the parser does not respect that when determining the
type of numeric constants.