Re: lower integer bound not supported
От | Alvaro Herrera |
---|---|
Тема | Re: lower integer bound not supported |
Дата | |
Msg-id | 20160608163759.GA9544@alvherre.pgsql обсуждение исходный текст |
Ответ на | lower integer bound not supported (Sandro Santilli <strk@kbt.io>) |
Ответы |
Re: lower integer bound not supported
|
Список | pgsql-bugs |
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". 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? -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-bugs по дате отправления: