Hi,
In ecpg, the error occurs in value lists of the INSERT statement,
when 'short' or 'unsigned short' host variables are used.
1. Program sample
exec sql begin declare section; short s ; unsigned short us; exec sql end declare section; exec sql
createtable test(s smallint, us smallint); exec sql commit; s = 1; us =32000; exec sql insert into test values( :s,
:us) ; <== error
2. Error messege
Following error message are output. "i4toi2: '-600309759' causes int2 underflow"
3. Patch
The error does not occur, when following patches were applied.
Is this patch right? please confirm it.
--
Regards.
SAKAIDA Masaaki <sakaida@psn.co.jp>
Personal Software, Inc. Osaka Japan
*** postgresql-6.5/src/interfaces/ecpg/lib/ecpglib.c.orig Wed Jun 24 15:21:30 1999
--- postgresql-6.5/src/interfaces/ecpg/lib/ecpglib.c Wed Jun 24 15:31:57
1999
***************
*** 469,480 ****
--- 469,488 ---- switch (var->type) { case ECPGt_short:
+ sprintf(buff, "%d", *(short *) var->value);
+ tobeinserted = buff;
+ break;
+ case ECPGt_int: sprintf(buff, "%d", *(int *) var->value);
tobeinserted= buff; break; case ECPGt_unsigned_short:
+ sprintf(buff, "%d", *(unsigned short *) var->value);
+ tobeinserted = buff;
+ break;
+ case ECPGt_unsigned_int: sprintf(buff, "%d", *(unsigned int *) var->value);
tobeinserted = buff;