diff options
-rw-r--r-- | doc/src/sgml/ref/create_function.sgml | 5 | ||||
-rw-r--r-- | doc/src/sgml/ref/load.sgml | 17 | ||||
-rw-r--r-- | doc/src/sgml/xfunc.sgml | 10 | ||||
-rw-r--r-- | src/backend/utils/fmgr/dfmgr.c | 10 |
4 files changed, 23 insertions, 19 deletions
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml index ca9eca5138d..0c35ded26c9 100644 --- a/doc/src/sgml/ref/create_function.sgml +++ b/doc/src/sgml/ref/create_function.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/create_function.sgml,v 1.84 2008/12/31 02:25:03 tgl Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/create_function.sgml,v 1.84.2.1 2009/09/03 22:11:13 tgl Exp $ --> <refentry id="SQL-CREATEFUNCTION"> @@ -528,8 +528,7 @@ CREATE FUNCTION foo(int, int default 42) ... When repeated <command>CREATE FUNCTION</command> calls refer to the same object file, the file is only loaded once per session. To unload and - reload the file (perhaps during development), use the <xref - linkend="sql-load" endterm="sql-load-title"> command. + reload the file (perhaps during development), start a new session. </para> <para> diff --git a/doc/src/sgml/ref/load.sgml b/doc/src/sgml/ref/load.sgml index fca434096bc..10cbcd54799 100644 --- a/doc/src/sgml/ref/load.sgml +++ b/doc/src/sgml/ref/load.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/load.sgml,v 1.25 2008/11/14 10:22:47 petere Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/load.sgml,v 1.25.2.1 2009/09/03 22:11:13 tgl Exp $ --> <refentry id="SQL-LOAD"> @@ -11,7 +11,7 @@ $PostgreSQL: pgsql/doc/src/sgml/ref/load.sgml,v 1.25 2008/11/14 10:22:47 petere <refnamediv> <refname>LOAD</refname> - <refpurpose>load or reload a shared library file</refpurpose> + <refpurpose>load a shared library file</refpurpose> </refnamediv> <indexterm zone="sql-load"> @@ -29,13 +29,12 @@ LOAD '<replaceable class="PARAMETER">filename</replaceable>' <para> This command loads a shared library file into the <productname>PostgreSQL</> - server's address space. If the file had been loaded previously, - it is first unloaded. This command is primarily useful to unload - and reload a shared library file that has been changed since the - server first loaded it. To make use of the shared library, - function(s) in it need to be declared using the <xref - linkend="sql-createfunction" endterm="sql-createfunction-title"> - command. + server's address space. If the file has been loaded already, + the command does nothing. Shared library files that contain C functions + are automatically loaded whenever one of their functions is called. + Therefore, an explicit <command>LOAD</> is usually only needed to + load a library that modifies the server's behavior through <quote>hooks</> + rather than providing a set of functions. </para> <para> diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index bb4fd68bb46..e1a9df50ec8 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.138 2009/05/27 01:18:06 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.138.2.1 2009/09/03 22:11:13 tgl Exp $ --> <sect1 id="xfunc"> <title>User-Defined Functions</title> @@ -1481,9 +1481,7 @@ PG_MODULE_MAGIC; file is retained in memory. Future calls in the same session to the function(s) in that file will only incur the small overhead of a symbol table lookup. If you need to force a reload of an object - file, for example after recompiling it, use the <xref - linkend="sql-load" endterm="sql-load-title"> command or begin a - fresh session. + file, for example after recompiling it, begin a fresh session. </para> <indexterm zone="xfunc-c-dynload"> @@ -1509,8 +1507,8 @@ PG_MODULE_MAGIC; unloading the file. Likewise, the function receives no parameters and should return void. Note that <function>_PG_fini</> will only be called during an unload of the file, not during process termination. - (Presently, an unload only happens in the context of re-loading - the file due to an explicit <command>LOAD</> command.) + (Presently, unloads are disabled and will never occur, but this may + change in the future.) </para> </sect2> diff --git a/src/backend/utils/fmgr/dfmgr.c b/src/backend/utils/fmgr/dfmgr.c index 8b819df279c..abe5a870c74 100644 --- a/src/backend/utils/fmgr/dfmgr.c +++ b/src/backend/utils/fmgr/dfmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.99 2009/06/11 14:49:05 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.99.2.1 2009/09/03 22:11:13 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -385,10 +385,17 @@ incompatible_module_error(const char *libname, * Unload the specified dynamic-link library file, if it is loaded. * * Note: libname is expected to be an exact name for the library file. + * + * XXX for the moment, this is disabled, resulting in LOAD of an already-loaded + * library always being a no-op. We might re-enable it someday if we can + * convince ourselves we have safe protocols for un-hooking from hook function + * pointers, releasing custom GUC variables, and perhaps other things that + * are definitely unsafe currently. */ static void internal_unload_library(const char *libname) { +#ifdef NOT_USED DynamicFileList *file_scanner, *prv, *nxt; @@ -436,6 +443,7 @@ internal_unload_library(const char *libname) else prv = file_scanner; } +#endif /* NOT_USED */ } static bool |