From ee46980a73bf5b1b39c3a6be76dc01fa2a5819c7 Mon Sep 17 00:00:00 2001
From: Michael Meskes <meskes@postgresql.org>
Date: Thu, 2 Nov 2017 20:46:34 +0100
Subject: [PATCH] Fix float parsing in ecpg INFORMIX mode.

---
 src/interfaces/ecpg/ecpglib/data.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/interfaces/ecpg/ecpglib/data.c b/src/interfaces/ecpg/ecpglib/data.c
index fd947b2bf17..b866b1ab5a9 100644
--- a/src/interfaces/ecpg/ecpglib/data.c
+++ b/src/interfaces/ecpg/ecpglib/data.c
@@ -57,7 +57,7 @@ garbage_left(enum ARRAY_TYPE isarray, char **scan_length, enum COMPAT_MODE compa
 			/* skip invalid characters */
 			do {
 				(*scan_length)++;
-			} while (**scan_length != ' ' && **scan_length != '\0' && isdigit(**scan_length));
+			} while (isdigit(**scan_length));
 			return false;
 		}
 
@@ -401,7 +401,8 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno,
 					if (isarray && *scan_length == '"')
 						scan_length++;
 
-					if (garbage_left(isarray, &scan_length, compat))
+					/* no special INFORMIX treatment for floats */
+					if (garbage_left(isarray, &scan_length, ECPG_COMPAT_PGSQL))
 					{
 						ecpg_raise(lineno, ECPG_FLOAT_FORMAT,
 								   ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
-- 
GitLab