Commit 40703f28 authored by Bruce Momjian's avatar Bruce Momjian

There where a few more problems fixed by the patch below.

      o configure.in

Jan.
parent 14834564
...@@ -817,6 +817,11 @@ if test "$USE_TCL"; then ...@@ -817,6 +817,11 @@ if test "$USE_TCL"; then
fi fi
fi fi
done done
if test -z "$TCL_CONFIG_SH"; then
if test -d "$dir" -a -r "$dir/tclConfig.sh"; then
TCL_CONFIG_SH=$dir/tclConfig.sh
fi
fi
done done
if test -z "$TCL_CONFIG_SH"; then if test -z "$TCL_CONFIG_SH"; then
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# Makefile for the plpgsql shared object # Makefile for the plpgsql shared object
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/Makefile.in,v 1.4 1998/10/09 04:50:12 momjian Exp $ # $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/Makefile.in,v 1.5 1998/10/09 16:57:07 momjian Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -79,7 +79,9 @@ endif ...@@ -79,7 +79,9 @@ endif
# #
DLOBJ= plpgsql$(DLSUFFIX) DLOBJ= plpgsql$(DLSUFFIX)
OBJS= pl_parse.o pl_handler.o pl_comp.o pl_exec.o pl_funcs.o OBJS= plpgsql.o
PLOBJS= pl_parse.o pl_handler.o pl_comp.o pl_exec.o pl_funcs.o
ALL= $(DLOBJ) ALL= $(DLOBJ)
...@@ -88,6 +90,9 @@ ALL= $(DLOBJ) ...@@ -88,6 +90,9 @@ ALL= $(DLOBJ)
# #
all: $(ALL) all: $(ALL)
$(OBJS): $(PLOBJS)
$(LD) -r -o $(OBJS) $(PLOBJS)
$(DLOBJ): $(OBJS) $(DLOBJ): $(OBJS)
# #
......
...@@ -8,5 +8,8 @@ else ...@@ -8,5 +8,8 @@ else
exit 1 exit 1
fi fi
set | grep '^TCL' > Makefile.tcldefs for v in `set | grep '^TCL' | sed -e 's/=.*//'` ; do
echo $v = `eval "echo \\$$v"`
done >Makefile.tcldefs
exit 0 exit 0
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* procedural language (PL) * procedural language (PL)
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.6 1998/09/01 04:40:28 momjian Exp $ * $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.7 1998/10/09 16:57:10 momjian Exp $
* *
* This software is copyrighted by Jan Wieck - Hamburg. * This software is copyrighted by Jan Wieck - Hamburg.
* *
...@@ -417,12 +417,6 @@ pltcl_call_handler(FmgrInfo *proinfo, ...@@ -417,12 +417,6 @@ pltcl_call_handler(FmgrInfo *proinfo,
pltcl_call_level--; pltcl_call_level--;
/************************************************************
* Disconnect from SPI manager
************************************************************/
if (SPI_finish() != SPI_OK_FINISH)
elog(ERROR, "pltcl: SPI_finish() failed");
return retval; return retval;
} }
...@@ -731,6 +725,15 @@ pltcl_func_handler(FmgrInfo *proinfo, ...@@ -731,6 +725,15 @@ pltcl_func_handler(FmgrInfo *proinfo,
siglongjmp(Warn_restart, 1); siglongjmp(Warn_restart, 1);
} }
/************************************************************
* Disconnect from SPI manager and then create the return
* values datum (if the input function does a palloc for it
* this must not be allocated in the SPI memory context
* because SPI_finish would free it).
************************************************************/
if (SPI_finish() != SPI_OK_FINISH)
elog(ERROR, "pltcl: SPI_finish() failed");
retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func)) retval = (Datum) (*fmgr_faddr(&prodesc->result_in_func))
(pltcl_safe_interp->result, (pltcl_safe_interp->result,
prodesc->result_in_elem, prodesc->result_in_elem,
...@@ -1051,8 +1054,12 @@ pltcl_trigger_handler(FmgrInfo *proinfo) ...@@ -1051,8 +1054,12 @@ pltcl_trigger_handler(FmgrInfo *proinfo)
* The return value from the procedure might be one of * The return value from the procedure might be one of
* the magic strings OK or SKIP or a list from array get * the magic strings OK or SKIP or a list from array get
************************************************************/ ************************************************************/
if (strcmp(pltcl_safe_interp->result, "OK") == 0) if (SPI_finish() != SPI_OK_FINISH)
elog(ERROR, "pltcl: SPI_finish() failed");
if (strcmp(pltcl_safe_interp->result, "OK") == 0) {
return rettup; return rettup;
}
if (strcmp(pltcl_safe_interp->result, "SKIP") == 0) if (strcmp(pltcl_safe_interp->result, "SKIP") == 0)
{ {
return (HeapTuple) NULL;; return (HeapTuple) NULL;;
...@@ -1309,7 +1316,7 @@ pltcl_SPI_exec(ClientData cdata, Tcl_Interp * interp, ...@@ -1309,7 +1316,7 @@ pltcl_SPI_exec(ClientData cdata, Tcl_Interp * interp,
int loop_rc; int loop_rc;
int ntuples; int ntuples;
HeapTuple *tuples; HeapTuple *tuples;
TupleDesc tupdesc; TupleDesc tupdesc = NULL;
sigjmp_buf save_restart; sigjmp_buf save_restart;
char *usage = "syntax error - 'SPI_exec " char *usage = "syntax error - 'SPI_exec "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment