]> granicus.if.org Git - postgresql/commitdiff
Test Case:
authorBruce Momjian <bruce@momjian.us>
Thu, 8 Jul 1999 03:32:57 +0000 (03:32 +0000)
committerBruce Momjian <bruce@momjian.us>
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;