diff --git a/src/interfaces/python/pgmodule.c b/src/interfaces/python/pgmodule.c index d51f8c7b040ca8263c90b2b0fcb3adcfc90929ac..99911a97f6acbbe8e14a9f1ea76d9d3c761c1a84 100644 --- a/src/interfaces/python/pgmodule.c +++ b/src/interfaces/python/pgmodule.c @@ -27,6 +27,7 @@ */ #include <Python.h> +#include <postgres.h> #include <libpq-fe.h> #include <libpq/libpq-fs.h> #include <stdio.h> @@ -492,9 +493,9 @@ pgsource_oidstatus(pgsourceobject * self, PyObject * args) } /* retrieves oid status */ - oid = 0; - if ((status = PQoidStatus(self->last_result))) - oid = atol(status); + if ((oid = PQoidValue(self->last_result)) == InvalidOid) + oid = 0; + return PyInt_FromLong(oid); } @@ -2125,7 +2126,7 @@ pg_query(pgobject * self, PyObject * args) /* checks result status */ if ((status = PQresultStatus(result)) != PGRES_TUPLES_OK) { - const char *str; + Oid oid; PQclear(result); @@ -2140,14 +2141,14 @@ pg_query(pgobject * self, PyObject * args) PyErr_SetString(PGError, PQerrorMessage(self->cnx)); break; case PGRES_COMMAND_OK: /* could be an INSERT */ - if (*(str = PQoidStatus(result)) == 0) /* nope */ + if ((oid = PQoidValue(result)) == InvalidOid) /* nope */ { Py_INCREF(Py_None); return Py_None; } /* otherwise, return the oid */ - return PyInt_FromLong(strtol(str, NULL, 10)); + return PyInt_FromLong(oid); case PGRES_COPY_OUT: /* no data will be received */ case PGRES_COPY_IN: