Index: src/pl/plpython/plpython.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/pl/plpython/plpython.c,v retrieving revision 1.97 diff -p -u -c -r1.97 plpython.c *** src/pl/plpython/plpython.c 2 Apr 2007 03:49:42 -0000 1.97 --- src/pl/plpython/plpython.c 3 Apr 2007 10:24:55 -0000 *************** *** 23,28 **** --- 23,37 ---- #include #endif + /* + * Py_ssize_t compat for Python <= 2.4 + */ + #if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN) + typedef int Py_ssize_t; + #define PY_SSIZE_T_MAX INT_MAX + #define PY_SSIZE_T_MIN INT_MIN + #endif + #include "postgres.h" /* system stuff */ *************** static void PLy_result_dealloc(PyObject *** 1953,1963 **** static PyObject *PLy_result_getattr(PyObject *, char *); static PyObject *PLy_result_nrows(PyObject *, PyObject *); static PyObject *PLy_result_status(PyObject *, PyObject *); ! static int PLy_result_length(PyObject *); ! static PyObject *PLy_result_item(PyObject *, int); ! static PyObject *PLy_result_slice(PyObject *, int, int); ! static int PLy_result_ass_item(PyObject *, int, PyObject *); ! static int PLy_result_ass_slice(PyObject *, int, int, PyObject *); static PyObject *PLy_spi_prepare(PyObject *, PyObject *); --- 1962,1972 ---- static PyObject *PLy_result_getattr(PyObject *, char *); static PyObject *PLy_result_nrows(PyObject *, PyObject *); static PyObject *PLy_result_status(PyObject *, PyObject *); ! static Py_ssize_t PLy_result_length(PyObject *); ! static PyObject *PLy_result_item(PyObject *, Py_ssize_t); ! static PyObject *PLy_result_slice(PyObject *, Py_ssize_t, Py_ssize_t); ! static int PLy_result_ass_item(PyObject *, Py_ssize_t, PyObject *); ! static int PLy_result_ass_slice(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *); static PyObject *PLy_spi_prepare(PyObject *, PyObject *); *************** static PyMethodDef PLy_plan_methods[] = *** 2001,2015 **** {NULL, NULL, 0, NULL} }; - static PySequenceMethods PLy_result_as_sequence = { ! (inquiry) PLy_result_length, /* sq_length */ ! (binaryfunc) 0, /* sq_concat */ ! (intargfunc) 0, /* sq_repeat */ ! (intargfunc) PLy_result_item, /* sq_item */ ! (intintargfunc) PLy_result_slice, /* sq_slice */ ! (intobjargproc) PLy_result_ass_item, /* sq_ass_item */ ! (intintobjargproc) PLy_result_ass_slice, /* sq_ass_slice */ }; static PyTypeObject PLy_ResultType = { --- 2010,2023 ---- {NULL, NULL, 0, NULL} }; static PySequenceMethods PLy_result_as_sequence = { ! PLy_result_length, /* sq_length */ ! NULL, /* sq_concat */ ! NULL, /* sq_repeat */ ! PLy_result_item, /* sq_item */ ! PLy_result_slice, /* sq_slice */ ! PLy_result_ass_item, /* sq_ass_item */ ! PLy_result_ass_slice, /* sq_ass_slice */ }; static PyTypeObject PLy_ResultType = { *************** PLy_result_status(PyObject * self, PyObj *** 2190,2196 **** return ob->status; } ! static int PLy_result_length(PyObject * arg) { PLyResultObject *ob = (PLyResultObject *) arg; --- 2198,2204 ---- return ob->status; } ! static Py_ssize_t PLy_result_length(PyObject * arg) { PLyResultObject *ob = (PLyResultObject *) arg; *************** PLy_result_length(PyObject * arg) *** 2199,2205 **** } static PyObject * ! PLy_result_item(PyObject * arg, int idx) { PyObject *rv; PLyResultObject *ob = (PLyResultObject *) arg; --- 2207,2213 ---- } static PyObject * ! PLy_result_item(PyObject * arg, Py_ssize_t idx) { PyObject *rv; PLyResultObject *ob = (PLyResultObject *) arg; *************** PLy_result_item(PyObject * arg, int idx) *** 2211,2217 **** } static int ! PLy_result_ass_item(PyObject * arg, int idx, PyObject * item) { int rv; PLyResultObject *ob = (PLyResultObject *) arg; --- 2219,2225 ---- } static int ! PLy_result_ass_item(PyObject * arg, Py_ssize_t idx, PyObject * item) { int rv; PLyResultObject *ob = (PLyResultObject *) arg; *************** PLy_result_ass_item(PyObject * arg, int *** 2222,2228 **** } static PyObject * ! PLy_result_slice(PyObject * arg, int lidx, int hidx) { PyObject *rv; PLyResultObject *ob = (PLyResultObject *) arg; --- 2230,2236 ---- } static PyObject * ! PLy_result_slice(PyObject * arg, Py_ssize_t lidx, Py_ssize_t hidx) { PyObject *rv; PLyResultObject *ob = (PLyResultObject *) arg; *************** PLy_result_slice(PyObject * arg, int lid *** 2235,2241 **** } static int ! PLy_result_ass_slice(PyObject * arg, int lidx, int hidx, PyObject * slice) { int rv; PLyResultObject *ob = (PLyResultObject *) arg; --- 2243,2249 ---- } static int ! PLy_result_ass_slice(PyObject * arg, Py_ssize_t lidx, Py_ssize_t hidx, PyObject * slice) { int rv; PLyResultObject *ob = (PLyResultObject *) arg;