Author: paul
Date: 2005-12-16 01:02:11 +0100 (Fri, 16 Dec 2005)
New Revision: 571
Log:
r4806@frost: paul | 2005-12-15 16:06:57 -0600
UDFs in 5.1 must be in the plugin directory.
Note some restrictions on uninstalling plugins.
Modified:
trunk/
trunk/refman-5.1/extending-mysql.xml
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:4780
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:1671
+ b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:4806
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:1671
Modified: trunk/refman-5.1/extending-mysql.xml
===================================================================
--- trunk/refman-5.1/extending-mysql.xml 2005-12-16 00:01:23 UTC (rev 570)
+++ trunk/refman-5.1/extending-mysql.xml 2005-12-16 00:02:11 UTC (rev 571)
@@ -496,10 +496,15 @@
<para>
MySQL 5.1 and up provides a plugin interface that can be used to
- add new functions to the server. This interface is the successor
- to the older user-defined function (UDF) interface. (Eventually,
- the older interface will be phased out and replaced by a plugin
- interface for UDFs.)
+ add new functions to the server. This interface is intended to be
+ the successor to the older user-defined function (UDF) interface.
+ The plugin interface eventually will include an API for creating
+ UDFs, and it is intended this plugin UDF API will replace the
+ older non-plugin UDF API. After that point, it will be possible
+ for UDFs to be revised for use as plugin UDFs so that they can
+ take advantage of the better security and versioning capabilities
+ of the plugin API. Eventually, support for the older UDF API will
+ be phased out.
</para>
<para>
@@ -634,10 +639,9 @@
</para>
<para>
- When the server shuts down, it executes the termination
- (<literal>deinit()</literal>) function for each plugin that is
- loaded so that the plugin has a change to perform any final
- cleanup.
+ When the server shuts down, it executes the deinitialization
+ function for each plugin that is loaded so that the plugin has a
+ change to perform any final cleanup.
</para>
<para>
@@ -683,7 +687,8 @@
<remark role="help-description-begin"/>
<para>
- This statement removes an installed plugin.
+ This statement removes an installed plugin. You cannot uninstall
+ a plugin if any table that uses it is open.
</para>
<para>
@@ -706,6 +711,25 @@
<remark role="help-description-end"/>
+ <para>
+ Plugin removal has implications for the use of associated
+ tables. For example, if a full-text parser plugin is associated
+ with a <literal>FULLTEXT</literal> index on the table,
+ uninstalling the plugin makes the table unusable. The table
+ cannot be opened, so you cannot drop the index for which the
+ plugin is used. This means that uninstalling a plugin is
+ something to do with care unless you do not care about the table
+ contents. If you are uninstalling a plugin with no intention of
+ reinstalling it later (for example, to update it with a new
+ version), and you care about the table contents, you should dump
+ the table with <command>mysqldump</command> and remove the
+ <literal>WITH PARSER</literal> clause from the dumped
+ <literal>CREATE TABLE</literal> statement so that you can reload
+ the table later. If you do not care about the table,
+ <literal>DROP TABLE</literal> can be used even if plugins
+ associated with the table are missing.
+ </para>
+
</section>
</section>
@@ -957,8 +981,9 @@
This directory is given by the value of the
<literal>plugin_dir</literal> system variable.
(<emphasis role="bold">Note:</emphasis> This a change in MySQL
- 5.1. For earlier versions of MySQL, the file can be located in
- any directory that is searched by your system's dynamic linker.)
+ 5.1. For earlier versions of MySQL, the shared object can be
+ located in any directory that is searched by your system's
+ dynamic linker.)
</para>
<para>
@@ -2082,34 +2107,15 @@
from <filename>udf_example.cc</filename> produces a file named
something like <filename>udf_example.so</filename> (the exact
name may vary from platform to platform). Copy this file to
- some directory such as <filename>/usr/lib</filename> that
- searched by your system's dynamic (runtime) linker, or add the
- directory in which you placed the shared object to the linker
- configuration file (for example,
- <filename>/etc/ld.so.conf</filename>).
+ the server's plugin directory. This directory is given by the
+ value of the <literal>plugin_dir</literal> system variable.
+ (<emphasis role="bold">Note:</emphasis> This a change in MySQL
+ 5.1. For earlier versions of MySQL, the shared object can be
+ located in any directory that is searched by your system's
+ dynamic linker.)
</para>
<para>
- The dynamic linker name is system-specific (for example,
- <command>ld-elf.so.1</command> on FreeBSD,
- <command>ld.so</command> on Linux, or <command>dyld</command>
- on Mac OS X). Consult your system documentation for
- information about the linker name and how to configure it.
- </para>
-
- <para>
- On many systems, you can also set the
- <literal>LD_LIBRARY</literal> or
- <literal>LD_LIBRARY_PATH</literal> environment variable to
- point at the directory where you have the files for your UDF.
- The <literal>dlopen</literal> manual page tells you which
- variable you should use on your system. You should set this in
- <command>mysql.server</command> or
- <command>mysqld_safe</command> startup scripts and restart
- <command>mysqld</command>.
- </para>
-
- <para>
On some systems, the <command>ldconfig</command> program that
configures the dynamic linker does not recognize a shared
object unless its name begins with <literal>lib</literal>. In
@@ -2272,18 +2278,13 @@
<para>
UDF object files cannot be placed in arbitrary directories.
- They must be located in some system directory that the dynamic
- linker is configured to search. To enforce this restriction
- and prevent attempts at specifying pathnames outside of
- directories searched by the dynamic linker, MySQL checks the
- shared object file name specified in <literal>CREATE
- FUNCTION</literal> as well as for pathname delimiters in
- filenames stored in the <literal>mysql.func</literal> table
- when it loads functions. This prevents attempts at specifying
- illegitimate pathnames through direct manipulation of the
- <literal>mysql.func</literal> table. For information about
- UDFs and the runtime linker, see
- <xref linkend="udf-compiling"/>.
+ They must be located in the server's plugin directory. This
+ directory is given by the value of the
+ <literal>plugin_dir</literal> system variable.
+ (<emphasis role="bold">Note:</emphasis> This a change in MySQL
+ 5.1. For earlier versions of MySQL, the shared object can be
+ located in any directory that is searched by your system's
+ dynamic linker.)
</para>
</section>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r571 - in trunk: . refman-5.1 | paul | 16 Dec |