INSERT VALUES error in ecpg.

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;

Responses

Browse pgsql-hackers by date

  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