mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Attached patch for unconditional enabling of pltcl-unknown support.
Enabling this feature adds very light overhead of 1 select from pg_class on first using of pl/tcl in backend if unknown suppport is really unused. But pl/tcl with this support has very improved functionality. Patch includes changes to documentation.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Makefile for the pltcl shared object
|
||||
#
|
||||
# $Header: /cvsroot/pgsql/src/pl/tcl/Makefile,v 1.34 2001/09/16 16:11:11 petere Exp $
|
||||
# $Header: /cvsroot/pgsql/src/pl/tcl/Makefile,v 1.35 2001/10/13 04:23:50 momjian Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@@ -86,29 +86,21 @@ endif
|
||||
ifeq ($(TCL_SHARED_BUILD), 1)
|
||||
|
||||
all: $(INFILES)
|
||||
ifeq ($(enable_pltcl_unknown), yes)
|
||||
$(MAKE) -C modules $@
|
||||
endif
|
||||
|
||||
pltcl$(DLSUFFIX): pltcl.o
|
||||
|
||||
install: all installdirs
|
||||
$(INSTALL_SHLIB) $(DLOBJS) $(DESTDIR)$(pkglibdir)/$(DLOBJS)
|
||||
ifeq ($(enable_pltcl_unknown), yes)
|
||||
$(MAKE) -C modules $@
|
||||
endif
|
||||
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(pkglibdir)
|
||||
ifeq ($(enable_pltcl_unknown), yes)
|
||||
$(MAKE) -C modules $@
|
||||
endif
|
||||
|
||||
uninstall:
|
||||
rm -f $(DESTDIR)$(pkglibdir)/$(DLOBJS)
|
||||
ifeq ($(enable_pltcl_unknown), yes)
|
||||
$(MAKE) -C modules $@
|
||||
endif
|
||||
|
||||
else # TCL_SHARED_BUILD = 0
|
||||
|
||||
@@ -124,6 +116,4 @@ Makefile.tcldefs: mkMakefile.tcldefs.sh
|
||||
|
||||
clean distclean maintainer-clean:
|
||||
rm -f $(INFILES) pltcl.o Makefile.tcldefs
|
||||
ifeq ($(enable_pltcl_unknown), yes)
|
||||
$(MAKE) -C modules $@
|
||||
endif
|
||||
|
@@ -31,7 +31,7 @@
|
||||
* ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.43 2001/10/06 23:21:45 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/pl/tcl/pltcl.c,v 1.44 2001/10/13 04:23:50 momjian Exp $
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
@@ -146,9 +146,7 @@ static FunctionCallInfo pltcl_current_fcinfo = NULL;
|
||||
static void pltcl_init_all(void);
|
||||
static void pltcl_init_interp(Tcl_Interp *interp);
|
||||
|
||||
#ifdef ENABLE_PLTCL_UNKNOWN
|
||||
static void pltcl_init_load_unknown(Tcl_Interp *interp);
|
||||
#endif
|
||||
|
||||
Datum pltcl_call_handler(PG_FUNCTION_ARGS);
|
||||
Datum pltclu_call_handler(PG_FUNCTION_ARGS);
|
||||
@@ -293,7 +291,6 @@ pltcl_init_interp(Tcl_Interp *interp)
|
||||
Tcl_CreateCommand(interp, "spi_lastoid",
|
||||
pltcl_SPI_lastoid, NULL, NULL);
|
||||
|
||||
#ifdef ENABLE_PLTCL_UNKNOWN
|
||||
/************************************************************
|
||||
* Try to load the unknown procedure from pltcl_modules
|
||||
************************************************************/
|
||||
@@ -302,12 +299,9 @@ pltcl_init_interp(Tcl_Interp *interp)
|
||||
pltcl_init_load_unknown(interp);
|
||||
if (SPI_finish() != SPI_OK_FINISH)
|
||||
elog(ERROR, "pltcl_init_interp(): SPI_finish failed");
|
||||
#endif /* ENABLE_PLTCL_UNKNOWN */
|
||||
}
|
||||
|
||||
|
||||
#ifdef ENABLE_PLTCL_UNKNOWN
|
||||
|
||||
/**********************************************************************
|
||||
* pltcl_init_load_unknown() - Load the unknown procedure from
|
||||
* table pltcl_modules (if it exists)
|
||||
@@ -380,8 +374,6 @@ pltcl_init_load_unknown(Tcl_Interp *interp)
|
||||
Tcl_DStringFree(&unknown_src);
|
||||
}
|
||||
|
||||
#endif /* ENABLE_PLTCL_UNKNOWN */
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* pltcl_call_handler - This is the only visible function
|
||||
|
Reference in New Issue
Block a user