summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2002-09-26 05:39:03 +0000
committerBruce Momjian2002-09-26 05:39:03 +0000
commit72f8efdc986eb06b0d7498d90c4ba6c1a94abba8 (patch)
tree7e34d62ffe4610119a442b5029a7642a0b8e5b43
parentff5d4cbfca00da3be83268ae72c90da3b3055cf2 (diff)
Back out /pl memory leak patch. Wait for new version.
-rw-r--r--src/pl/plpython/feature.expected2
-rw-r--r--src/pl/plpython/plpython.c13
-rw-r--r--src/pl/plpython/plpython_schema.sql2
-rw-r--r--src/pl/tcl/pltcl.c12
4 files changed, 4 insertions, 25 deletions
diff --git a/src/pl/plpython/feature.expected b/src/pl/plpython/feature.expected
index b689c1f6154..9afd782e7d2 100644
--- a/src/pl/plpython/feature.expected
+++ b/src/pl/plpython/feature.expected
@@ -29,7 +29,7 @@ SELECT global_test_two();
(1 row)
SELECT import_fail();
-NOTICE: ('import socket failed -- untrusted dynamic module: _socket',)
+WARNING: ('import socket failed -- untrusted dynamic module: _socket',)
import_fail
--------------------
failed as expected
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 2192ede4c71..86f39cd4d09 100644
--- a/src/pl/plpython/plpython.c
+++ b/src/pl/plpython/plpython.c
@@ -29,7 +29,7 @@
* MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.23 2002/09/26 05:23:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.24 2002/09/26 05:39:03 momjian Exp $
*
*********************************************************************
*/
@@ -408,9 +408,7 @@ plpython_call_handler(PG_FUNCTION_ARGS)
else
PLy_restart_in_progress += 1;
if (proc)
- {
Py_DECREF(proc->me);
- }
RERAISE_EXC();
}
@@ -1843,14 +1841,7 @@ PLy_plan_dealloc(PyObject * arg)
*
* FIXME -- leaks saved plan on object destruction. can this be
* avoided?
- * I think so. A function prepares and then execp's a statement.
- * When we come to deallocate the 'statement' object we obviously
- * no long need the plan. Even if we did, without the object
- * we're never going to be able to use it again.
- * In the against arguments: SPI_saveplan has stuck this under
- * the top context so there must be a reason for doing that.
*/
- pfree(ob->plan);
}
if (ob->types)
PLy_free(ob->types);
@@ -2383,8 +2374,6 @@ PLy_spi_execute_fetch_result(SPITupleTable *tuptable, int rows, int status)
PyList_SetItem(result->rows, i, row);
}
PLy_typeinfo_dealloc(&args);
-
- SPI_freetuptable(tuptable);
}
RESTORE_EXC();
}
diff --git a/src/pl/plpython/plpython_schema.sql b/src/pl/plpython/plpython_schema.sql
index 2f8766431fa..28ceef55350 100644
--- a/src/pl/plpython/plpython_schema.sql
+++ b/src/pl/plpython/plpython_schema.sql
@@ -20,7 +20,7 @@ CREATE TABLE taxonomy (
CREATE TABLE entry (
accession text not null primary key,
- eid serial unique,
+ eid serial,
txid int2 not null references taxonomy(id)
) ;
diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c
index 80ef2d90b11..f404feae9b4 100644
--- a/src/pl/tcl/pltcl.c
+++ b/src/pl/tcl/pltcl.c
@@ -31,7 +31,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.63 2002/09/26 05:23:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.64 2002/09/26 05:39:03 momjian Exp $
*
**********************************************************************/
@@ -1647,7 +1647,6 @@ pltcl_SPI_exec(ClientData cdata, Tcl_Interp *interp,
pltcl_set_tuple_values(interp, arrayname, 0, tuples[0], tupdesc);
sprintf(buf, "%d", ntuples);
Tcl_SetResult(interp, buf, TCL_VOLATILE);
- SPI_freetuptable(SPI_tuptable);
memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
return TCL_OK;
}
@@ -1669,19 +1668,15 @@ pltcl_SPI_exec(ClientData cdata, Tcl_Interp *interp,
continue;
if (loop_rc == TCL_RETURN)
{
- SPI_freetuptable(SPI_tuptable);
memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
return TCL_RETURN;
}
if (loop_rc == TCL_BREAK)
break;
- SPI_freetuptable(SPI_tuptable);
memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
return TCL_ERROR;
}
- SPI_freetuptable(SPI_tuptable);
-
/************************************************************
* Finally return the number of tuples
************************************************************/
@@ -2212,7 +2207,6 @@ pltcl_SPI_execp(ClientData cdata, Tcl_Interp *interp,
{
if (ntuples > 0)
pltcl_set_tuple_values(interp, arrayname, 0, tuples[0], tupdesc);
- SPI_freetuptable(SPI_tuptable);
memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
sprintf(buf, "%d", ntuples);
Tcl_SetResult(interp, buf, TCL_VOLATILE);
@@ -2235,19 +2229,15 @@ pltcl_SPI_execp(ClientData cdata, Tcl_Interp *interp,
continue;
if (loop_rc == TCL_RETURN)
{
- SPI_freetuptable(SPI_tuptable);
memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
return TCL_RETURN;
}
if (loop_rc == TCL_BREAK)
break;
- SPI_freetuptable(SPI_tuptable);
memcpy(&Warn_restart, &save_restart, sizeof(Warn_restart));
return TCL_ERROR;
}
- SPI_freetuptable(SPI_tuptable);
-
/************************************************************
* Finally return the number of tuples
************************************************************/