Index: src/pl/tcl/pltcl.c =================================================================== RCS file: /projects/cvsroot/pgsql-server/src/pl/tcl/pltcl.c,v retrieving revision 1.61 diff -c -r1.61 pltcl.c *** src/pl/tcl/pltcl.c 2002/09/04 20:31:48 1.61 --- src/pl/tcl/pltcl.c 2002/09/20 11:23:54 *************** *** 1648,1653 **** --- 1648,1654 ---- 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,1683 **** --- 1670,1688 ---- 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 ************************************************************/ *************** *** 2208,2213 **** --- 2213,2219 ---- { 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); *************** *** 2230,2243 **** --- 2236,2253 ---- 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