Re: [HACKERS] Bug with int2

2016-02-16 Thread Feng Tian
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 precedence:
>
> postgres=# select (-32768)::int2;
>   int2
> ─
>  -32,768
> (1 row)
>
> --
> Peter Geoghegan
>


Re: [HACKERS] Bug with int2

2016-02-16 Thread Peter Geoghegan
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)

-- 
Peter Geoghegan


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Bug with int2

2016-02-16 Thread Michael Paquier
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


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Bug with int2

2016-02-16 Thread Tom Lane
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.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers