From 3acb7d1634d46538eac4dcd6cf2b14b78b5cbf00 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Thu, 8 Jul 1999 03:32:57 +0000
Subject: [PATCH] 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
---
 src/interfaces/ecpg/lib/ecpglib.c | 8 ++++++++
 1 file changed, 8 insertions(+)

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;
-- 
GitLab