aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-07-08 03:32:57 +0000
committerBruce Momjian <bruce@momjian.us>1999-07-08 03:32:57 +0000
commit3acb7d1634d46538eac4dcd6cf2b14b78b5cbf00 (patch)
tree254a9763e794a4ba64028f8f342165574c587f8e /src
parent0343024a5c78c975a1c4e383e06455c05fbc0b95 (diff)
downloadpostgresql-3acb7d1634d46538eac4dcd6cf2b14b78b5cbf00.tar.gz
postgresql-3acb7d1634d46538eac4dcd6cf2b14b78b5cbf00.zip
Test Case:
---------- 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
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/lib/ecpglib.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c
index 0643571a018..aae621fed45 100644
--- a/src/interfaces/ecpg/lib/ecpglib.c
+++ b/src/interfaces/ecpg/lib/ecpglib.c
@@ -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;