pyrecoll: get fetchmany to raise an exception if there is no result set (PEP 249 database API)

This commit is contained in:
Jean-Francois Dockes 2018-06-06 08:13:11 +02:00
parent 4f4e8ff8f8
commit e2bd66d56f

View File

@ -1128,16 +1128,19 @@ Query_fetchmany(recoll_QueryObject* self, PyObject *args, PyObject *kwargs)
return 0;
}
int cnt = self->query->getResCnt();
PyObject *reslist = PyList_New(0);
if (cnt <= 0 || self->next < 0) {
return (PyObject *)reslist;
# PEP 249 says to raise exception if no result set
PyErr_SetString(PyExc_AttributeError, "query");
return 0;
}
PyObject *reslist = PyList_New(0);
for (int i = 0; i < size; i++) {
recoll_DocObject *docobj = (recoll_DocObject *)
PyObject_CallObject((PyObject *)&recoll_DocType, 0);
if (!docobj) {
PyErr_SetString(PyExc_EnvironmentError, "doc create failed");
Py_DECREF(reslist);
return 0;
}
if (!self->query->getDoc(self->next, *docobj->doc, self->fetchtext)) {