]> granicus.if.org Git - postgresql/commitdiff
Back out /pl memory leak patch. Wait for new version.
authorBruce Momjian <bruce@momjian.us>
Thu, 26 Sep 2002 05:39:03 +0000 (05:39 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 26 Sep 2002 05:39:03 +0000 (05:39 +0000)
src/pl/plpython/feature.expected
src/pl/plpython/plpython.c
src/pl/plpython/plpython_schema.sql
src/pl/tcl/pltcl.c

index b689c1f6154994c1a667aab9a915f221d9205aac..9afd782e7d27644b62187d912707d590149f157c 100644 (file)
@@ -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
index 2192ede4c719b833e51e7c63f3eebbd008404aa6..86f39cd4d09b28633d21d87b3f74f4915e90fc93 100644 (file)
@@ -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();
        }
index 2f8766431fae803ff9c2b0a8ea491f75b832cb8c..28ceef55350ccfc7d63a199259df116bc8ae83b9 100644 (file)
@@ -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)
        ) ;
 
index 80ef2d90b1120eb7898783fd8f8cddb2b742b1a4..f404feae9b4c0e5be38bc015b0cf9106ac5415fb 100644 (file)
@@ -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
         ************************************************************/