Re: lower integer bound not supported
От | Sandro Santilli |
---|---|
Тема | Re: lower integer bound not supported |
Дата | |
Msg-id | 20160608164319.GA5590@localhost обсуждение исходный текст |
Ответ на | Re: lower integer bound not supported (Alvaro Herrera <alvherre@2ndquadrant.com>) |
Список | pgsql-bugs |
On Wed, Jun 08, 2016 at 12:37:59PM -0400, Alvaro Herrera wrote: > Sandro Santilli wrote: > > According to documentation (from 9.1 to 9.5) the supported > > integer ranges are these ones: > > > > smallint 2 bytes -32768 to +32767 > > integer 4 bytes -2147483648 to +2147483647 > > bigint 8 bytes -9223372036854775808 to +9223372036854775807 > > > > But the lowest bound is not really supported: > > > > # select -32768::int2; > > ERROR: smallint out of range > > # select -2147483648::int4; > > ERROR: integer out of range > > # select -9223372036854775808::int8; > > ERROR: bigint out of range > > This is reported every once in a while. It's not a bug, just an > operator precedence issue: the :: binds more tightly than the unary - so > the number is interpreted as a positive value first, which is indeed out > of range. Try "(-32768)::int2". That explains! > Maybe it would be clearer if the error message indicated what's the > value that's out of range, so that the lack of the minus might make the > problem more evident; and perhaps add a HINT suggesting to add the > parens? An HINT suggesting parens would be very very helpful. --strk;
В списке pgsql-bugs по дате отправления: