PL/Python: Remove use of simple slicing API

The simple slicing API (sq_slice, sq_ass_slice) has been deprecated
since Python 2.0 and has been removed altogether in Python 3, so remove
those functions from the PLyResult class.  Instead, the non-slice
mapping functions mp_subscript and mp_ass_subscript can take slice
objects as an index.  Since we just pass the index through to the
underlying list object, we already support that.  Test coverage was
already in place.
This commit is contained in:
Peter Eisentraut 2018-08-29 11:10:17 +02:00
parent dd6073f22a
commit f5a6509bb1
1 changed files with 2 additions and 22 deletions

View File

@ -20,8 +20,6 @@ static PyObject *PLy_result_nrows(PyObject *self, PyObject *args);
static PyObject *PLy_result_status(PyObject *self, PyObject *args);
static Py_ssize_t PLy_result_length(PyObject *arg);
static PyObject *PLy_result_item(PyObject *arg, Py_ssize_t idx);
static PyObject *PLy_result_slice(PyObject *arg, Py_ssize_t lidx, Py_ssize_t hidx);
static int PLy_result_ass_slice(PyObject *arg, Py_ssize_t lidx, Py_ssize_t hidx, PyObject *slice);
static PyObject *PLy_result_str(PyObject *arg);
static PyObject *PLy_result_subscript(PyObject *arg, PyObject *item);
static int PLy_result_ass_subscript(PyObject *self, PyObject *item, PyObject *value);
@ -35,9 +33,9 @@ static PySequenceMethods PLy_result_as_sequence = {
NULL, /* sq_concat */
NULL, /* sq_repeat */
PLy_result_item, /* sq_item */
PLy_result_slice, /* sq_slice */
NULL, /* sq_slice */
NULL, /* sq_ass_item */
PLy_result_ass_slice, /* sq_ass_slice */
NULL, /* sq_ass_slice */
};
static PyMappingMethods PLy_result_as_mapping = {
@ -254,24 +252,6 @@ PLy_result_item(PyObject *arg, Py_ssize_t idx)
return rv;
}
static PyObject *
PLy_result_slice(PyObject *arg, Py_ssize_t lidx, Py_ssize_t hidx)
{
PLyResultObject *ob = (PLyResultObject *) arg;
return PyList_GetSlice(ob->rows, lidx, hidx);
}
static int
PLy_result_ass_slice(PyObject *arg, Py_ssize_t lidx, Py_ssize_t hidx, PyObject *slice)
{
int rv;
PLyResultObject *ob = (PLyResultObject *) arg;
rv = PyList_SetSlice(ob->rows, lidx, hidx, slice);
return rv;
}
static PyObject *
PLy_result_str(PyObject *arg)
{