summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/ref/create_function.sgml8
-rw-r--r--doc/src/sgml/ref/load.sgml17
-rw-r--r--doc/src/sgml/xfunc.sgml10
-rw-r--r--src/backend/utils/fmgr/dfmgr.c10
4 files changed, 25 insertions, 20 deletions
diff --git a/doc/src/sgml/ref/create_function.sgml b/doc/src/sgml/ref/create_function.sgml
index 20fc0bc8988..56719b44d18 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.70.2.2 2007/04/23 16:52:56 neilc Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/create_function.sgml,v 1.70.2.3 2009/09/03 22:11:30 tgl Exp $
-->
<refentry id="SQL-CREATEFUNCTION">
@@ -400,9 +400,9 @@ CREATE FUNCTION foo(int, out text) ...
<para>
When repeated <command>CREATE FUNCTION</command> calls refer to
- the same object file, the file is only loaded once. To unload and
- reload the file (perhaps during development), use the <xref
- linkend="sql-load" endterm="sql-load-title"> command.
+ the same object file, the file is only loaded once per session.
+ To unload and
+ 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 5fc5817e5f2..92d06e8fb22 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.23 2006/09/16 00:30:19 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/load.sgml,v 1.23.2.1 2009/09/03 22:11:30 tgl Exp $
-->
<refentry id="SQL-LOAD">
@@ -10,7 +10,7 @@ $PostgreSQL: pgsql/doc/src/sgml/ref/load.sgml,v 1.23 2006/09/16 00:30:19 momjian
<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">
@@ -28,13 +28,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 6cac5ec3fb7..9741cfddeec 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.120.2.1 2007/01/30 22:29:40 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.120.2.2 2009/09/03 22:11:30 tgl Exp $ -->
<sect1 id="xfunc">
<title>User-Defined Functions</title>
@@ -1213,9 +1213,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">
@@ -1241,8 +1239,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 ceefe444978..a74d3e5351c 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.92 2006/10/06 17:13:59 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/fmgr/dfmgr.c,v 1.92.2.1 2009/09/03 22:11:30 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -310,10 +310,17 @@ internal_load_library(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;
@@ -361,6 +368,7 @@ internal_unload_library(const char *libname)
else
prv = file_scanner;
}
+#endif /* NOT_USED */
}
static bool