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 prec

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) --

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 -- S

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.

[HACKERS] Bug with int2

2016-02-16 Thread Feng Tian
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