Test Case:
authorBruce Momjian
Thu, 8 Jul 1999 03:32:57 +0000 (03:32 +0000)
committerBruce Momjian
Thu, 8 Jul 1999 03:32:57 +0000 (03:32 +0000)
----------
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

Error Message: "i4toi2: '-600309759' causes int2 underflow"

Masaaki Sakaida

src/interfaces/ecpg/lib/ecpglib.c

index 0643571a0180785fabcd12bfeb3459555c56dc0a..aae621fed45c0df5411083defee161dfa8a82c53 100644 (file)
@@ -434,12 +434,20 @@ ECPGexecute(struct statement * stmt)
            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;