Commit f5a6509b authored by Peter Eisentraut's avatar Peter Eisentraut

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.
parent dd6073f2
...@@ -20,8 +20,6 @@ static PyObject *PLy_result_nrows(PyObject *self, PyObject *args); ...@@ -20,8 +20,6 @@ static PyObject *PLy_result_nrows(PyObject *self, PyObject *args);
static PyObject *PLy_result_status(PyObject *self, PyObject *args); static PyObject *PLy_result_status(PyObject *self, PyObject *args);
static Py_ssize_t PLy_result_length(PyObject *arg); static Py_ssize_t PLy_result_length(PyObject *arg);
static PyObject *PLy_result_item(PyObject *arg, Py_ssize_t idx); 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_str(PyObject *arg);
static PyObject *PLy_result_subscript(PyObject *arg, PyObject *item); static PyObject *PLy_result_subscript(PyObject *arg, PyObject *item);
static int PLy_result_ass_subscript(PyObject *self, PyObject *item, PyObject *value); static int PLy_result_ass_subscript(PyObject *self, PyObject *item, PyObject *value);
...@@ -35,9 +33,9 @@ static PySequenceMethods PLy_result_as_sequence = { ...@@ -35,9 +33,9 @@ static PySequenceMethods PLy_result_as_sequence = {
NULL, /* sq_concat */ NULL, /* sq_concat */
NULL, /* sq_repeat */ NULL, /* sq_repeat */
PLy_result_item, /* sq_item */ PLy_result_item, /* sq_item */
PLy_result_slice, /* sq_slice */ NULL, /* sq_slice */
NULL, /* sq_ass_item */ NULL, /* sq_ass_item */
PLy_result_ass_slice, /* sq_ass_slice */ NULL, /* sq_ass_slice */
}; };
static PyMappingMethods PLy_result_as_mapping = { static PyMappingMethods PLy_result_as_mapping = {
...@@ -254,24 +252,6 @@ PLy_result_item(PyObject *arg, Py_ssize_t idx) ...@@ -254,24 +252,6 @@ PLy_result_item(PyObject *arg, Py_ssize_t idx)
return rv; 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 * static PyObject *
PLy_result_str(PyObject *arg) PLy_result_str(PyObject *arg)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment