Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit749167c

Browse files
committed
Allow PL/PythonU to compile on Python 2.5. Change needed because of API
changes in Python.Marko Kreen
1 parent9665dd9 commit749167c

File tree

1 file changed

+27
-19
lines changed

1 file changed

+27
-19
lines changed

‎src/pl/plpython/plpython.c

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**********************************************************************
22
* plpython.c - python as a procedural language for PostgreSQL
33
*
4-
*$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.97 2007/04/02 03:49:42 tgl Exp $
4+
*$PostgreSQL: pgsql/src/pl/plpython/plpython.c,v 1.98 2007/04/03 13:37:22 momjian Exp $
55
*
66
*********************************************************************
77
*/
@@ -23,6 +23,15 @@
2323
#include<Python.h>
2424
#endif
2525

26+
/*
27+
* Py_ssize_t compat for Python <= 2.4
28+
*/
29+
#ifPY_VERSION_HEX<0x02050000&& !defined(PY_SSIZE_T_MIN)
30+
typedefintPy_ssize_t;
31+
#definePY_SSIZE_T_MAX INT_MAX
32+
#definePY_SSIZE_T_MIN INT_MIN
33+
#endif
34+
2635
#include"postgres.h"
2736

2837
/* system stuff */
@@ -1953,11 +1962,11 @@ static void PLy_result_dealloc(PyObject *);
19531962
staticPyObject*PLy_result_getattr(PyObject*,char*);
19541963
staticPyObject*PLy_result_nrows(PyObject*,PyObject*);
19551964
staticPyObject*PLy_result_status(PyObject*,PyObject*);
1956-
staticintPLy_result_length(PyObject*);
1957-
staticPyObject*PLy_result_item(PyObject*,int);
1958-
staticPyObject*PLy_result_slice(PyObject*,int,int);
1959-
staticintPLy_result_ass_item(PyObject*,int,PyObject*);
1960-
staticintPLy_result_ass_slice(PyObject*,int,int,PyObject*);
1965+
staticPy_ssize_tPLy_result_length(PyObject*);
1966+
staticPyObject*PLy_result_item(PyObject*,Py_ssize_t);
1967+
staticPyObject*PLy_result_slice(PyObject*,Py_ssize_t,Py_ssize_t);
1968+
staticintPLy_result_ass_item(PyObject*,Py_ssize_t,PyObject*);
1969+
staticintPLy_result_ass_slice(PyObject*,Py_ssize_t,Py_ssize_t,PyObject*);
19611970

19621971

19631972
staticPyObject*PLy_spi_prepare(PyObject*,PyObject*);
@@ -2001,15 +2010,14 @@ static PyMethodDef PLy_plan_methods[] = {
20012010
{NULL,NULL,0,NULL}
20022011
};
20032012

2004-
20052013
staticPySequenceMethodsPLy_result_as_sequence= {
2006-
(inquiry)PLy_result_length,/* sq_length */
2007-
(binaryfunc)0,/* sq_concat */
2008-
(intargfunc)0,/* sq_repeat */
2009-
(intargfunc)PLy_result_item,/* sq_item */
2010-
(intintargfunc)PLy_result_slice,/* sq_slice */
2011-
(intobjargproc)PLy_result_ass_item,/* sq_ass_item */
2012-
(intintobjargproc)PLy_result_ass_slice,/* sq_ass_slice */
2014+
PLy_result_length,/* sq_length */
2015+
NULL,/* sq_concat */
2016+
NULL,/* sq_repeat */
2017+
PLy_result_item,/* sq_item */
2018+
PLy_result_slice,/* sq_slice */
2019+
PLy_result_ass_item,/* sq_ass_item */
2020+
PLy_result_ass_slice,/* sq_ass_slice */
20132021
};
20142022

20152023
staticPyTypeObjectPLy_ResultType= {
@@ -2190,7 +2198,7 @@ PLy_result_status(PyObject * self, PyObject * args)
21902198
returnob->status;
21912199
}
21922200

2193-
staticint
2201+
staticPy_ssize_t
21942202
PLy_result_length(PyObject*arg)
21952203
{
21962204
PLyResultObject*ob= (PLyResultObject*)arg;
@@ -2199,7 +2207,7 @@ PLy_result_length(PyObject * arg)
21992207
}
22002208

22012209
staticPyObject*
2202-
PLy_result_item(PyObject*arg,intidx)
2210+
PLy_result_item(PyObject*arg,Py_ssize_tidx)
22032211
{
22042212
PyObject*rv;
22052213
PLyResultObject*ob= (PLyResultObject*)arg;
@@ -2211,7 +2219,7 @@ PLy_result_item(PyObject * arg, int idx)
22112219
}
22122220

22132221
staticint
2214-
PLy_result_ass_item(PyObject*arg,intidx,PyObject*item)
2222+
PLy_result_ass_item(PyObject*arg,Py_ssize_tidx,PyObject*item)
22152223
{
22162224
intrv;
22172225
PLyResultObject*ob= (PLyResultObject*)arg;
@@ -2222,7 +2230,7 @@ PLy_result_ass_item(PyObject * arg, int idx, PyObject * item)
22222230
}
22232231

22242232
staticPyObject*
2225-
PLy_result_slice(PyObject*arg,intlidx,inthidx)
2233+
PLy_result_slice(PyObject*arg,Py_ssize_tlidx,Py_ssize_thidx)
22262234
{
22272235
PyObject*rv;
22282236
PLyResultObject*ob= (PLyResultObject*)arg;
@@ -2235,7 +2243,7 @@ PLy_result_slice(PyObject * arg, int lidx, int hidx)
22352243
}
22362244

22372245
staticint
2238-
PLy_result_ass_slice(PyObject*arg,intlidx,inthidx,PyObject*slice)
2246+
PLy_result_ass_slice(PyObject*arg,Py_ssize_tlidx,Py_ssize_thidx,PyObject*slice)
22392247
{
22402248
intrv;
22412249
PLyResultObject*ob= (PLyResultObject*)arg;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp