mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-01-31 17:34:08 +03:00
Fixes to let the dbapi20 test suite pass.
Submitted by James Henstridge in ticket #195.
This commit is contained in:
parent
75cb5d75d7
commit
fd1ee6fffc
|
@ -525,6 +525,7 @@ psyco_curs_executemany(cursorObject *self, PyObject *args, PyObject *kwargs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Py_XDECREF(iter);
|
Py_XDECREF(iter);
|
||||||
|
self->rowcount = -1;
|
||||||
|
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(Py_None);
|
||||||
return Py_None;
|
return Py_None;
|
||||||
|
@ -931,7 +932,7 @@ psyco_curs_callproc(cursorObject *self, PyObject *args, PyObject *kwargs)
|
||||||
char *procname = NULL, *sql = NULL;
|
char *procname = NULL, *sql = NULL;
|
||||||
long int async = 0;
|
long int async = 0;
|
||||||
Py_ssize_t procname_len, i, nparameters = 0, sl = 0;
|
Py_ssize_t procname_len, i, nparameters = 0, sl = 0;
|
||||||
PyObject *parameters = NULL;
|
PyObject *parameters = Py_None;
|
||||||
PyObject *operation = NULL;
|
PyObject *operation = NULL;
|
||||||
PyObject *res = NULL;
|
PyObject *res = NULL;
|
||||||
|
|
||||||
|
@ -948,9 +949,9 @@ psyco_curs_callproc(cursorObject *self, PyObject *args, PyObject *kwargs)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(parameters && parameters != Py_None) {
|
if(parameters != Py_None) {
|
||||||
nparameters = PyObject_Length(parameters);
|
nparameters = PyObject_Length(parameters);
|
||||||
if (nparameters < 0) nparameters = 0;
|
if (nparameters < 0) nparameters = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* allocate some memory, build the SQL and create a PyString from it */
|
/* allocate some memory, build the SQL and create a PyString from it */
|
||||||
|
@ -969,8 +970,8 @@ psyco_curs_callproc(cursorObject *self, PyObject *args, PyObject *kwargs)
|
||||||
PyMem_Free((void*)sql);
|
PyMem_Free((void*)sql);
|
||||||
|
|
||||||
if (_psyco_curs_execute(self, operation, parameters, async)) {
|
if (_psyco_curs_execute(self, operation, parameters, async)) {
|
||||||
Py_INCREF(Py_None);
|
Py_INCREF(parameters);
|
||||||
res = Py_None;
|
res = parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_DECREF(operation);
|
Py_DECREF(operation);
|
||||||
|
|
|
@ -844,6 +844,7 @@ int
|
||||||
pq_fetch(cursorObject *curs)
|
pq_fetch(cursorObject *curs)
|
||||||
{
|
{
|
||||||
int pgstatus, ex = -1;
|
int pgstatus, ex = -1;
|
||||||
|
const char *rowcount;
|
||||||
|
|
||||||
/* even if we fail, we remove any information about the previous query */
|
/* even if we fail, we remove any information about the previous query */
|
||||||
curs_reset(curs);
|
curs_reset(curs);
|
||||||
|
@ -920,7 +921,11 @@ pq_fetch(cursorObject *curs)
|
||||||
|
|
||||||
case PGRES_COMMAND_OK:
|
case PGRES_COMMAND_OK:
|
||||||
Dprintf("pq_fetch: command returned OK (no tuples)");
|
Dprintf("pq_fetch: command returned OK (no tuples)");
|
||||||
curs->rowcount = atoi(PQcmdTuples(curs->pgres));
|
rowcount = PQcmdTuples(curs->pgres);
|
||||||
|
if (!rowcount || !rowcount[0])
|
||||||
|
curs->rowcount = -1;
|
||||||
|
else
|
||||||
|
curs->rowcount = atoi(rowcount);
|
||||||
curs->lastoid = PQoidValue(curs->pgres);
|
curs->lastoid = PQoidValue(curs->pgres);
|
||||||
CLEARPGRES(curs->pgres);
|
CLEARPGRES(curs->pgres);
|
||||||
ex = 1;
|
ex = 1;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user