diff options
| author | Michael Meskes <meskes@postgresql.org> | 2000-09-19 11:47:16 +0000 |
|---|---|---|
| committer | Michael Meskes <meskes@postgresql.org> | 2000-09-19 11:47:16 +0000 |
| commit | e9c3f0255fb54600e1c03533cc2e72d78928634d (patch) | |
| tree | e8bee36a63e6a5958cd6e08faa024b1065357aa7 /src/interfaces/ecpg/lib/data.c | |
| parent | a5a290cab923c8203ed01631989daa616003ebf8 (diff) | |
| download | postgresql-e9c3f0255fb54600e1c03533cc2e72d78928634d.tar.gz | |
*** empty log message ***
Diffstat (limited to 'src/interfaces/ecpg/lib/data.c')
| -rw-r--r-- | src/interfaces/ecpg/lib/data.c | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/src/interfaces/ecpg/lib/data.c b/src/interfaces/ecpg/lib/data.c index 054966f9cf..1c85de0350 100644 --- a/src/interfaces/ecpg/lib/data.c +++ b/src/interfaces/ecpg/lib/data.c @@ -60,6 +60,12 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno, case ECPGt_unsigned_long: ((long *) ind)[act_tuple] = -PQgetisnull(results, act_tuple, act_field); break; + case ECPGt_long_long: + ((long long int*) ind)[act_tuple] = -PQgetisnull(results, act_tuple, act_field); + break; + case ECPGt_unsigned_long_long: + ((unsigned long long int*) ind)[act_tuple] = -PQgetisnull(results, act_tuple, act_field); + break; case ECPGt_NO_INDICATOR: if (PQgetisnull(results, act_tuple, act_field)) { @@ -93,7 +99,6 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno, { ECPGraise(lineno, ECPG_INT_FORMAT, pval); return (false); - res = 0L; } } else @@ -127,7 +132,6 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno, { ECPGraise(lineno, ECPG_UINT_FORMAT, pval); return (false); - ures = 0L; } } else @@ -150,7 +154,38 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno, } break; + case ECPGt_long_long: + if (pval) + { + ((long long int *) var)[act_tuple] = strtoull(pval, &scan_length, 10); + if ((isarray && *scan_length != ',' && *scan_length != '}') + || (!isarray && *scan_length != '\0')) /* Garbage left */ + { + ECPGraise(lineno, ECPG_INT_FORMAT, pval); + return (false); + } + } + else + ((long long int *) var)[act_tuple] = 0LL; + + break; + case ECPGt_unsigned_long_long: + if (pval) + { + ((unsigned long long int *) var)[act_tuple] = strtoull(pval, &scan_length, 10); + if ((isarray && *scan_length != ',' && *scan_length != '}') + || (!isarray && *scan_length != '\0')) /* Garbage left */ + { + ECPGraise(lineno, ECPG_UINT_FORMAT, pval); + return (false); + } + } + else + ((unsigned long long int *) var)[act_tuple] = 0LL; + + break; + case ECPGt_float: case ECPGt_double: if (pval) |
