BUG #16247: Cast error on integer - Mailing list pgsql-bugs

From PG Bug reporting form
Subject BUG #16247: Cast error on integer
Date
Msg-id 16247-0a907e8fd6fda1e1@postgresql.org
Whole thread Raw
Responses Re: BUG #16247: Cast error on integer  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: BUG #16247: Cast error on integer  (Andres Freund <andres@anarazel.de>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      16247
Logged by:          Dilip Tripathy
Email address:      ddtripathy@yahoo.com
PostgreSQL version: 12.1
Operating system:   Windows 7 professional
Description:

I have defined a procedure with the following signature:

create or replace procedure eventattributes_getadd(
   _cust varchar(128),
   _site varchar(128),
   _devctrluid int,
   _dateid int,
   _fiveminprdid smallint,
   _metric varchar(128),
   _sd varchar(256),
   _value varchar(32))
language 'plpgsql'


When I execute the following call it succeeds.
   call eventattributes_getadd(
    _cust => 'cust'::varchar(128),
    _site => 'site'::varchar(128),
    _devctrluid => cast (-2147483648 as integer),
    _dateid => 20200206::int,
    _fiveminprdid => 1700::smallint,
    _metric => 'somebogusmetric'::varchar(128),
    _sd =>
'>>>ST<<<=mc4;>>>DLN<<<=scanner_1;>>>DG<<<=scanner_1;>>>DGT<<<=scanner;>>>DT<<<=scanner'::varchar(256),
    _value => '28'::varchar(32));

However, when I execute the following call I get: ERROR:  integer out of
range  SQL state: 22003 
   call eventattributes_getadd(
    _cust => 'cust'::varchar(128),
    _site => 'site'::varchar(128),
    _devctrluid => -2147483648::int,
    _dateid => 20200206::int,
    _fiveminprdid => 1700::smallint,
    _metric => 'somebogusmetric'::varchar(128),
    _sd =>
'>>>ST<<<=mc4;>>>DLN<<<=scanner_1;>>>DG<<<=scanner_1;>>>DGT<<<=scanner;>>>DT<<<=scanner'::varchar(256),
    _value => '28'::varchar(32));

The only difference between the two calls is how I'm casting the integer.
The second call is choking on "_devctrluid => -2147483648::int".  But, if I
change that value to "-2147483647"  the second call succeeds.


pgsql-bugs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: FK violation in partitioned table after truncating a referencedpartition
Next
From: "David G. Johnston"
Date:
Subject: Re: BUG #16247: Cast error on integer