summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/lib/data.c
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2000-09-19 11:47:16 +0000
committerMichael Meskes <meskes@postgresql.org>2000-09-19 11:47:16 +0000
commite9c3f0255fb54600e1c03533cc2e72d78928634d (patch)
treee8bee36a63e6a5958cd6e08faa024b1065357aa7 /src/interfaces/ecpg/lib/data.c
parenta5a290cab923c8203ed01631989daa616003ebf8 (diff)
downloadpostgresql-e9c3f0255fb54600e1c03533cc2e72d78928634d.tar.gz
*** empty log message ***
Diffstat (limited to 'src/interfaces/ecpg/lib/data.c')
-rw-r--r--src/interfaces/ecpg/lib/data.c39
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)