aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2017-11-02 20:46:34 +0100
committerMichael Meskes <meskes@postgresql.org>2017-11-02 20:51:00 +0100
commitee46980a73bf5b1b39c3a6be76dc01fa2a5819c7 (patch)
treec6ef46a68dac9e8a7917350f8e9cb6d7a8d03b5b /src
parent97ba7b8c87e13112fd31d936507e7d060a297aa4 (diff)
downloadpostgresql-ee46980a73bf5b1b39c3a6be76dc01fa2a5819c7.tar.gz
postgresql-ee46980a73bf5b1b39c3a6be76dc01fa2a5819c7.zip
Fix float parsing in ecpg INFORMIX mode.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/ecpglib/data.c5
1 files 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);