Thread: BUG #1526: SHRT_MIN out of range on explicit type conversion
The following bug has been logged online: Bug reference: 1526 Logged by: Kelly Burkhart Email address: pgkrb@kkcsm.net PostgreSQL version: 7.4.2 Operating system: SuSE Linux 9.1 i386 & x86-64 Description: SHRT_MIN out of range on explicit type conversion Details: An explicit type conversion of an integer constant representing the minimum value that type can hold results in an 'integer out of range' error. From psql, the following will fail: select -32768::int2; select -2147483648::int4; select -9223372036854775808::int8; If the constants are strings, there is no failure. For instance the following will succeed: select '-32768'::int2; select '-2147483648'::int4; select '-9223372036854775808'::int8; Also increasing the value by one does not result in failure. The following will succeed: select -32767::int2; select -2147483647::int4; select -9223372036854775807::int8;
"Kelly Burkhart" <pgkrb@kkcsm.net> writes: > From psql, the following will fail: > select -32768::int2; This is not a bug. The reason is that :: binds more tightly than -, so what you have written is equivalent to select -(32768::int2); which obviously *should* fail. Try it as select (-32768)::int2; regards, tom lane