INSERT VALUES error in ecpg.
От | SAKAIDA |
---|---|
Тема | INSERT VALUES error in ecpg. |
Дата | |
Msg-id | 3771F2DD258.68B0SAKAIDA@smtp.psn.ne.jp обсуждение исходный текст |
Ответы |
Re: [HACKERS] INSERT VALUES error in ecpg.
Re: [HACKERS] INSERT VALUES error in ecpg. |
Список | 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 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;
В списке pgsql-hackers по дате отправления: