From: | SAKAIDA <sakaida(at)psn(dot)co(dot)jp> |
---|---|
To: | pgsql-hackers(at)PostgreSQL(dot)org |
Subject: | INSERT VALUES error in ecpg. |
Date: | 1999-06-24 08:57:01 |
Message-ID: | 3771F2DD258.68B0SAKAIDA@smtp.psn.ne.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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 create table 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(at)psn(dot)co(dot)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;
From | Date | Subject | |
---|---|---|---|
Next Message | Sam O'Connor | 1999-06-24 09:38:57 | Postgres on NT freezing |
Previous Message | Hub.Org News Admin | 1999-06-24 08:55:48 |