- Notifications
You must be signed in to change notification settings - Fork5
Commitedafb4f

Neil Conway
Index: src/pl/plpython/plpython.c
===================================================================RCS file: /Users/neilc/postgres/cvs_root/pgsql/src/pl/plpython/plpython.c,vretrieving revision 1.67diff -c -r1.67 plpython.c*** src/pl/plpython/plpython.c26 Dec 2005 04:28:48 -00001.67--- src/pl/plpython/plpython.c29 Dec 2005 16:54:57 -0000****************** 2,8 **** * plpython.c - python as a procedural language for PostgreSQL * * This software is copyright by Andrew Bosma! * but is really shameless cribbed from pltcl.c by Jan Weick, and * plperl.c by Mark Hollomon. * * The author hereby grants permission to use, copy, modify,--- 2,8 ---- * plpython.c - python as a procedural language for PostgreSQL * * This software is copyright by Andrew Bosma! * but is really shamelessly cribbed from pltcl.c by Jan Wieck, and * plperl.c by Mark Hollomon. * * The author hereby grants permission to use, copy, modify,****************** 1996,2002 **** inti, rv; PLyPlanObject *plan;- char *nulls; MemoryContext oldcontext; if (list != NULL)--- 1996,2001 ----****************** 2018,2024 **** if (nargs != plan->nargs) { char *sv;- PyObject *so = PyObject_Str(list); if (!so)--- 2017,2022 ----****************** 2036,2048 **** oldcontext = CurrentMemoryContext; PG_TRY(); {! nulls = palloc(nargs * sizeof(char)); for (i = 0; i < nargs; i++) { PyObject *elem, *so;- char *sv; elem = PySequence_GetItem(list, i); if (elem != Py_None)--- 2034,2045 ---- oldcontext = CurrentMemoryContext; PG_TRY(); {! char *nulls = palloc(nargs * sizeof(char)); for (i = 0; i < nargs; i++) { PyObject *elem, *so; elem = PySequence_GetItem(list, i); if (elem != Py_None)****************** 2051,2070 **** if (!so) PLy_elog(ERROR, "function \"%s\" could not execute plan", PLy_procedure_name(PLy_curr_procedure));! sv = PyString_AsString(so);! /*! * FIXME -- if this elogs, we have Python reference leak! */! plan->values[i] =! FunctionCall3(&(plan->args[i].out.d.typfunc),! CStringGetDatum(sv),! ObjectIdGetDatum(plan->args[i].out.d.typioparam),! Int32GetDatum(-1));! Py_DECREF(so);! Py_DECREF(elem); nulls[i] = ' '; } else--- 2048,2073 ---- if (!so) PLy_elog(ERROR, "function \"%s\" could not execute plan", PLy_procedure_name(PLy_curr_procedure));! Py_DECREF(elem);! PG_TRY();! {! char *sv = PyString_AsString(so);! plan->values[i] =! FunctionCall3(&(plan->args[i].out.d.typfunc),! CStringGetDatum(sv),! ObjectIdGetDatum(plan->args[i].out.d.typioparam),! Int32GetDatum(-1));! }! PG_CATCH();! {! Py_DECREF(so);! PG_RE_THROW();! }! PG_END_TRY();+ Py_DECREF(so); nulls[i] = ' '; } else1 parent195f164 commitedafb4f
1 file changed
+20
-17
lines changedLines changed: 20 additions & 17 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
5 |
| - | |
| 5 | + | |
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
| |||
29 | 29 |
| |
30 | 30 |
| |
31 | 31 |
| |
32 |
| - | |
| 32 | + | |
33 | 33 |
| |
34 | 34 |
| |
35 | 35 |
| |
| |||
1996 | 1996 |
| |
1997 | 1997 |
| |
1998 | 1998 |
| |
1999 |
| - | |
2000 | 1999 |
| |
2001 | 2000 |
| |
2002 | 2001 |
| |
| |||
2018 | 2017 |
| |
2019 | 2018 |
| |
2020 | 2019 |
| |
2021 |
| - | |
2022 | 2020 |
| |
2023 | 2021 |
| |
2024 | 2022 |
| |
| |||
2036 | 2034 |
| |
2037 | 2035 |
| |
2038 | 2036 |
| |
2039 |
| - | |
| 2037 | + | |
2040 | 2038 |
| |
2041 | 2039 |
| |
2042 | 2040 |
| |
2043 | 2041 |
| |
2044 | 2042 |
| |
2045 |
| - | |
2046 | 2043 |
| |
2047 | 2044 |
| |
2048 | 2045 |
| |
| |||
2051 | 2048 |
| |
2052 | 2049 |
| |
2053 | 2050 |
| |
2054 |
| - | |
| 2051 | + | |
2055 | 2052 |
| |
2056 |
| - | |
2057 |
| - | |
2058 |
| - | |
2059 |
| - | |
2060 |
| - | |
2061 |
| - | |
2062 |
| - | |
2063 |
| - | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
2064 | 2056 |
| |
2065 |
| - | |
2066 |
| - | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
2067 | 2069 |
| |
| 2070 | + | |
2068 | 2071 |
| |
2069 | 2072 |
| |
2070 | 2073 |
| |
|
0 commit comments
Comments
(0)