]> granicus.if.org Git - postgresql/commitdiff
PL/Python: Remove use of simple slicing API
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 29 Aug 2018 09:10:17 +0000 (11:10 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 5 Sep 2018 14:32:38 +0000 (16:32 +0200)
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.

src/pl/plpython/plpy_resultobject.c

index ca70e256892cf2ff7455bb1287f979ebcdabfefd..4064f6a7a264253fe0df37e99052795128dd0b9d 100644 (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)
 {