Ah, thanks!
On Tue, Feb 16, 2016 at 7:54 PM, Peter Geoghegan wrote:
> On Tue, Feb 16, 2016 at 7:27 PM, Feng Tian wrote:
> > I run into the following. Seems this is a bug for -32768, which should
> be
> > a valid smallint value.
>
> This isn't a bug. You see the error only due to operator prec
On Tue, Feb 16, 2016 at 7:27 PM, Feng Tian wrote:
> I run into the following. Seems this is a bug for -32768, which should be
> a valid smallint value.
This isn't a bug. You see the error only due to operator precedence:
postgres=# select (-32768)::int2;
int2
─
-32,768
(1 row)
--
On Wed, Feb 17, 2016 at 12:27 PM, Feng Tian wrote:
> ftian=# select -32768::int2;
> ERROR: smallint out of range
But 32768 is not. You should just use parenthesis, a cast does not
take into account the minus sign here:
=# select (-32768)::int2;
int2
-32768
(1 row)
--
Michael
--
S
Feng Tian writes:
> I run into the following. Seems this is a bug for -32768, which should be
> a valid smallint value.
> ftian=# select -32768::int2;
> ERROR: smallint out of range
You have the wrong idea about the precedence of those operators.
"select (-32768)::int2" works.
I run into the following. Seems this is a bug for -32768, which should be
a valid smallint value.
Test was run on 9.4.5.
Thanks,
Feng
ftian=# select 32767::int2;
int2
---
32767
(1 row)
ftian=# select -32767::int2;
?column?
--
-32767
(1 row)
ftian=# select 32768::int2;
E