summaryrefslogtreecommitdiff
path: root/ext/pgsql/pgsql.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pgsql/pgsql.c')
-rw-r--r--ext/pgsql/pgsql.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index e8f546768b..0a533c8a77 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -1127,6 +1127,7 @@ PHP_FUNCTION(pg_getlastoid)
RETURN_FALSE;
}
pgsql_result = pg_result->result;
+#ifndef HAVE_PQOIDVALUE
return_value->value.str.val = (char *) PQoidStatus(pgsql_result);
if (return_value->value.str.val) {
return_value->value.str.len = strlen(return_value->value.str.val);
@@ -1134,7 +1135,15 @@ PHP_FUNCTION(pg_getlastoid)
return_value->type = IS_STRING;
} else {
return_value->value.str.val = empty_string;
- }
+ }
+#else
+ return_value->value.lval = (int) PQoidValue(pgsql_result);
+ if (return_value->value.lval == InvalidOid) {
+ RETURN_FALSE;
+ } else {
+ return_value->type = IS_LONG;
+ }
+#endif
}
/* }}} */