List:Commits« Previous MessageNext Message »
From:paul Date:December 16 2005 12:02am
Subject:svn commit - mysqldoc@docsrva: r571 - in trunk: . refman-5.1
View as plain text  
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.1paul16 Dec