List:Commits« Previous MessageNext Message »
From:paul Date:January 10 2008 3:30pm
Subject:svn commit - mysqldoc@docsrva: r9547 - in trunk: . refman-4.1 refman-5.0 refman-5.1 refman-6.0
View as plain text  
Author: paul
Date: 2008-01-10 16:30:30 +0100 (Thu, 10 Jan 2008)
New Revision: 9547

Log:
 r28571@frost:  paul | 2008-01-10 09:02:29 -0600
 "Adding a new native function" modifications, part 1:
 General revisions that apply to all versions.
 (Bug#32480)


Modified:
   trunk/refman-4.1/extending-mysql.xml
   trunk/refman-5.0/extending-mysql.xml
   trunk/refman-5.1/extending-mysql.xml
   trunk/refman-6.0/extending-mysql.xml

Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:34807
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:28561
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:23202
   + 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:34807
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:28571
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:23202


Modified: trunk/refman-4.1/extending-mysql.xml
===================================================================
--- trunk/refman-4.1/extending-mysql.xml	2008-01-10 11:03:26 UTC (rev 9546)
+++ trunk/refman-4.1/extending-mysql.xml	2008-01-10 15:30:30 UTC (rev 9547)
Changed blocks: 6, Lines Added: 51, Lines Deleted: 49; 7621 bytes

@@ -1977,19 +1977,28 @@
       </indexterm>
 
       <para>
-        The procedure for adding a new native function is described
-        here. Note that you cannot add native functions to a binary
-        distribution because the procedure involves modifying MySQL
-        source code. You must compile MySQL yourself from a source
-        distribution. Also note that if you migrate to another version
-        of MySQL (for example, when a new version is released), you need
-        to repeat the procedure with the new version.
+        To add a new native MySQL function, use the procedure described
+        here, which requires that you use a source distribution. You
+        cannot add native functions to a binary distribution because it
+        is necessary to modify MySQL source code and compile MySQL from
+        the modified source. If you migrate to another version of MySQL
+        (for example, when a new version is released), you must repeat
+        the procedure with the new version.
       </para>
 
       <para>
-        To add a new native MySQL function, follow these steps:
+        If the new native function will be referred to in statements
+        that will be replicated to slave servers, you must ensure that
+        every slave server also has the function available. Otherwise,
+        replication will fail on the slaves when they attempt to invoke
+        the function.
       </para>
 
+      <para>
+        To add a new native function, follow these steps to modify
+        source files in the <filename>sql</filename> directory:
+      </para>
+
       <orderedlist>
 
         <listitem>

@@ -2003,30 +2012,31 @@
         <listitem>
           <para>
             If the function prototype is simple (just takes zero, one,
-            two or three arguments), you should in
-            <filename>lex.h</filename> specify
+            two, or three arguments), add a line to the
+            <literal>sql_functions[]</literal> array in
+            <filename>lex.h</filename> that specifies
             <literal>SYM(FUNC_ARG<replaceable>N</replaceable>)</literal>
-            (where <replaceable>N</replaceable> is the number of
-            arguments) as the second argument in the
-            <literal>sql_functions[]</literal> array and add a function
-            that creates a function object in
-            <filename>item_create.cc</filename>. Take a look at
-            <literal>"ABS"</literal> and
+            as the second argument (where <replaceable>N</replaceable>
+            is the number of arguments the function takes). Also, add a
+            function in <filename>item_create.cc</filename> that creates
+            a function object. Look at <literal>"ABS"</literal> and
             <literal>create_funcs_abs()</literal> for an example of
             this.
           </para>
 
           <para>
-            If the function prototype is complicated (for example, if it
-            takes a variable number of arguments), you should add two
-            lines to <filename>sql_yacc.yy</filename>. One indicates the
-            preprocessor symbol that <command>yacc</command> should
-            define (this should be added at the beginning of the file).
-            Then define the function parameters and add an
-            <quote>item</quote> with these parameters to the
-            <literal>simple_expr</literal> parsing rule. For an example,
-            check all occurrences of <literal>ATAN</literal> in
-            <filename>sql_yacc.yy</filename> to see how this is done.
+            If the function prototype is not simple (for example, if it
+            takes a variable number of arguments), you should make two
+            changes to <filename>sql_yacc.yy</filename>. One is a line
+            that indicates the preprocessor symbol that
+            <command>yacc</command> should define; this should be added
+            at the beginning of the file. The other is an
+            <quote>item</quote> to be added to the
+            <literal>simple_expr</literal> parsing rule that defines the
+            function parameters. You will need an item for each syntax
+            with which the function can be called. For an example that
+            shows how this this is done, check all occurrences of
+            <literal>ATAN</literal> in <filename>sql_yacc.yy</filename>.
           </para>
         </listitem>
 

@@ -2066,9 +2076,9 @@
 
         <listitem>
           <para>
-            If the function is non-deterministic, you should include the
-            following statement in the item constructor to indicate that
-            function results should not be cached:
+            If the function is non-deterministic, include the following
+            statement in the item constructor to indicate that function
+            results should not be cached:
           </para>
 
 <programlisting>

@@ -2101,29 +2111,29 @@
             function can't return a <literal>NULL</literal> value. The
             function can check whether any of the function arguments can
             return <literal>NULL</literal> by checking the arguments'
-            <literal>maybe_null</literal> variable. You can take a look
-            at <literal>Item_func_mod::fix_length_and_dec</literal> for
-            a typical example of how to do this.
+            <literal>maybe_null</literal> variable. Look at
+            <literal>Item_func_mod::fix_length_and_dec</literal> for a
+            typical example of how to do this.
           </para>
         </listitem>
 
       </orderedlist>
 
       <para>
-        All functions must be thread-safe. In other words, don't use any
-        global or static variables in the functions without protecting
-        them with mutexes)
+        All functions must be thread-safe. In other words, do not use
+        any global or static variables in the functions without
+        protecting them with mutexes.
       </para>
 
       <para>
-        If you want to return <literal>NULL</literal>, from
-        <literal>::val()</literal>, <literal>::val_int()</literal> or
-        <literal>::str()</literal> you should set
+        If you want to return <literal>NULL</literal> from
+        <literal>::val()</literal>, <literal>::val_int()</literal>, or
+        <literal>::str()</literal>, you should set
         <literal>null_value</literal> to 1 and return 0.
       </para>
 
       <para>
-        For <literal>::str()</literal> object functions, there are some
+        For <literal>::str()</literal> object functions, there are
         additional considerations to be aware of:
       </para>
 

@@ -2141,8 +2151,8 @@
         <listitem>
           <para>
             The <literal>::str()</literal> function should return the
-            string that holds the result or <literal>(char*) 0</literal>
-            if the result is <literal>NULL</literal>.
+            string that holds the result, or <literal>(char*)
+            0</literal> if the result is <literal>NULL</literal>.
           </para>
         </listitem>
 

@@ -2155,14 +2165,6 @@
 
       </itemizedlist>
 
-      <para>
-        If the new native function will be referred to in statements
-        that will be replicated to slave servers, you must ensure that
-        every slave server also has the function available. Otherwise,
-        replication will fail on the slaves when they attempt to invoke
-        the function.
-      </para>
-
     </section>
 
   </section>


Modified: trunk/refman-5.0/extending-mysql.xml
===================================================================
--- trunk/refman-5.0/extending-mysql.xml	2008-01-10 11:03:26 UTC (rev 9546)
+++ trunk/refman-5.0/extending-mysql.xml	2008-01-10 15:30:30 UTC (rev 9547)
Changed blocks: 6, Lines Added: 51, Lines Deleted: 49; 7621 bytes

@@ -2111,19 +2111,28 @@
       </indexterm>
 
       <para>
-        The procedure for adding a new native function is described
-        here. Note that you cannot add native functions to a binary
-        distribution because the procedure involves modifying MySQL
-        source code. You must compile MySQL yourself from a source
-        distribution. Also note that if you migrate to another version
-        of MySQL (for example, when a new version is released), you need
-        to repeat the procedure with the new version.
+        To add a new native MySQL function, use the procedure described
+        here, which requires that you use a source distribution. You
+        cannot add native functions to a binary distribution because it
+        is necessary to modify MySQL source code and compile MySQL from
+        the modified source. If you migrate to another version of MySQL
+        (for example, when a new version is released), you must repeat
+        the procedure with the new version.
       </para>
 
       <para>
-        To add a new native MySQL function, follow these steps:
+        If the new native function will be referred to in statements
+        that will be replicated to slave servers, you must ensure that
+        every slave server also has the function available. Otherwise,
+        replication will fail on the slaves when they attempt to invoke
+        the function.
       </para>
 
+      <para>
+        To add a new native function, follow these steps to modify
+        source files in the <filename>sql</filename> directory:
+      </para>
+
       <orderedlist>
 
         <listitem>

@@ -2137,30 +2146,31 @@
         <listitem>
           <para>
             If the function prototype is simple (just takes zero, one,
-            two or three arguments), you should in
-            <filename>lex.h</filename> specify
+            two, or three arguments), add a line to the
+            <literal>sql_functions[]</literal> array in
+            <filename>lex.h</filename> that specifies
             <literal>SYM(FUNC_ARG<replaceable>N</replaceable>)</literal>
-            (where <replaceable>N</replaceable> is the number of
-            arguments) as the second argument in the
-            <literal>sql_functions[]</literal> array and add a function
-            that creates a function object in
-            <filename>item_create.cc</filename>. Take a look at
-            <literal>"ABS"</literal> and
+            as the second argument (where <replaceable>N</replaceable>
+            is the number of arguments the function takes). Also, add a
+            function in <filename>item_create.cc</filename> that creates
+            a function object. Look at <literal>"ABS"</literal> and
             <literal>create_funcs_abs()</literal> for an example of
             this.
           </para>
 
           <para>
-            If the function prototype is complicated (for example, if it
-            takes a variable number of arguments), you should add two
-            lines to <filename>sql_yacc.yy</filename>. One indicates the
-            preprocessor symbol that <command>yacc</command> should
-            define (this should be added at the beginning of the file).
-            Then define the function parameters and add an
-            <quote>item</quote> with these parameters to the
-            <literal>simple_expr</literal> parsing rule. For an example,
-            check all occurrences of <literal>ATAN</literal> in
-            <filename>sql_yacc.yy</filename> to see how this is done.
+            If the function prototype is not simple (for example, if it
+            takes a variable number of arguments), you should make two
+            changes to <filename>sql_yacc.yy</filename>. One is a line
+            that indicates the preprocessor symbol that
+            <command>yacc</command> should define; this should be added
+            at the beginning of the file. The other is an
+            <quote>item</quote> to be added to the
+            <literal>simple_expr</literal> parsing rule that defines the
+            function parameters. You will need an item for each syntax
+            with which the function can be called. For an example that
+            shows how this this is done, check all occurrences of
+            <literal>ATAN</literal> in <filename>sql_yacc.yy</filename>.
           </para>
         </listitem>
 

@@ -2200,9 +2210,9 @@
 
         <listitem>
           <para>
-            If the function is non-deterministic, you should include the
-            following statement in the item constructor to indicate that
-            function results should not be cached:
+            If the function is non-deterministic, include the following
+            statement in the item constructor to indicate that function
+            results should not be cached:
           </para>
 
 <programlisting>

@@ -2235,29 +2245,29 @@
             function can't return a <literal>NULL</literal> value. The
             function can check whether any of the function arguments can
             return <literal>NULL</literal> by checking the arguments'
-            <literal>maybe_null</literal> variable. You can take a look
-            at <literal>Item_func_mod::fix_length_and_dec</literal> for
-            a typical example of how to do this.
+            <literal>maybe_null</literal> variable. Look at
+            <literal>Item_func_mod::fix_length_and_dec</literal> for a
+            typical example of how to do this.
           </para>
         </listitem>
 
       </orderedlist>
 
       <para>
-        All functions must be thread-safe. In other words, don't use any
-        global or static variables in the functions without protecting
-        them with mutexes)
+        All functions must be thread-safe. In other words, do not use
+        any global or static variables in the functions without
+        protecting them with mutexes.
       </para>
 
       <para>
-        If you want to return <literal>NULL</literal>, from
-        <literal>::val()</literal>, <literal>::val_int()</literal> or
-        <literal>::str()</literal> you should set
+        If you want to return <literal>NULL</literal> from
+        <literal>::val()</literal>, <literal>::val_int()</literal>, or
+        <literal>::str()</literal>, you should set
         <literal>null_value</literal> to 1 and return 0.
       </para>
 
       <para>
-        For <literal>::str()</literal> object functions, there are some
+        For <literal>::str()</literal> object functions, there are
         additional considerations to be aware of:
       </para>
 

@@ -2275,8 +2285,8 @@
         <listitem>
           <para>
             The <literal>::str()</literal> function should return the
-            string that holds the result or <literal>(char*) 0</literal>
-            if the result is <literal>NULL</literal>.
+            string that holds the result, or <literal>(char*)
+            0</literal> if the result is <literal>NULL</literal>.
           </para>
         </listitem>
 

@@ -2289,14 +2299,6 @@
 
       </itemizedlist>
 
-      <para>
-        If the new native function will be referred to in statements
-        that will be replicated to slave servers, you must ensure that
-        every slave server also has the function available. Otherwise,
-        replication will fail on the slaves when they attempt to invoke
-        the function.
-      </para>
-
     </section>
 
   </section>


Modified: trunk/refman-5.1/extending-mysql.xml
===================================================================
--- trunk/refman-5.1/extending-mysql.xml	2008-01-10 11:03:26 UTC (rev 9546)
+++ trunk/refman-5.1/extending-mysql.xml	2008-01-10 15:30:30 UTC (rev 9547)
Changed blocks: 6, Lines Added: 51, Lines Deleted: 49; 7621 bytes

@@ -4409,19 +4409,28 @@
       </indexterm>
 
       <para>
-        The procedure for adding a new native function is described
-        here. Note that you cannot add native functions to a binary
-        distribution because the procedure involves modifying MySQL
-        source code. You must compile MySQL yourself from a source
-        distribution. Also note that if you migrate to another version
-        of MySQL (for example, when a new version is released), you need
-        to repeat the procedure with the new version.
+        To add a new native MySQL function, use the procedure described
+        here, which requires that you use a source distribution. You
+        cannot add native functions to a binary distribution because it
+        is necessary to modify MySQL source code and compile MySQL from
+        the modified source. If you migrate to another version of MySQL
+        (for example, when a new version is released), you must repeat
+        the procedure with the new version.
       </para>
 
       <para>
-        To add a new native MySQL function, follow these steps:
+        If the new native function will be referred to in statements
+        that will be replicated to slave servers, you must ensure that
+        every slave server also has the function available. Otherwise,
+        replication will fail on the slaves when they attempt to invoke
+        the function.
       </para>
 
+      <para>
+        To add a new native function, follow these steps to modify
+        source files in the <filename>sql</filename> directory:
+      </para>
+
       <orderedlist>
 
         <listitem>

@@ -4435,30 +4444,31 @@
         <listitem>
           <para>
             If the function prototype is simple (just takes zero, one,
-            two or three arguments), you should in
-            <filename>lex.h</filename> specify
+            two, or three arguments), add a line to the
+            <literal>sql_functions[]</literal> array in
+            <filename>lex.h</filename> that specifies
             <literal>SYM(FUNC_ARG<replaceable>N</replaceable>)</literal>
-            (where <replaceable>N</replaceable> is the number of
-            arguments) as the second argument in the
-            <literal>sql_functions[]</literal> array and add a function
-            that creates a function object in
-            <filename>item_create.cc</filename>. Take a look at
-            <literal>"ABS"</literal> and
+            as the second argument (where <replaceable>N</replaceable>
+            is the number of arguments the function takes). Also, add a
+            function in <filename>item_create.cc</filename> that creates
+            a function object. Look at <literal>"ABS"</literal> and
             <literal>create_funcs_abs()</literal> for an example of
             this.
           </para>
 
           <para>
-            If the function prototype is complicated (for example, if it
-            takes a variable number of arguments), you should add two
-            lines to <filename>sql_yacc.yy</filename>. One indicates the
-            preprocessor symbol that <command>yacc</command> should
-            define (this should be added at the beginning of the file).
-            Then define the function parameters and add an
-            <quote>item</quote> with these parameters to the
-            <literal>simple_expr</literal> parsing rule. For an example,
-            check all occurrences of <literal>ATAN</literal> in
-            <filename>sql_yacc.yy</filename> to see how this is done.
+            If the function prototype is not simple (for example, if it
+            takes a variable number of arguments), you should make two
+            changes to <filename>sql_yacc.yy</filename>. One is a line
+            that indicates the preprocessor symbol that
+            <command>yacc</command> should define; this should be added
+            at the beginning of the file. The other is an
+            <quote>item</quote> to be added to the
+            <literal>simple_expr</literal> parsing rule that defines the
+            function parameters. You will need an item for each syntax
+            with which the function can be called. For an example that
+            shows how this this is done, check all occurrences of
+            <literal>ATAN</literal> in <filename>sql_yacc.yy</filename>.
           </para>
         </listitem>
 

@@ -4498,9 +4508,9 @@
 
         <listitem>
           <para>
-            If the function is non-deterministic, you should include the
-            following statement in the item constructor to indicate that
-            function results should not be cached:
+            If the function is non-deterministic, include the following
+            statement in the item constructor to indicate that function
+            results should not be cached:
           </para>
 
 <programlisting>

@@ -4533,29 +4543,29 @@
             function can't return a <literal>NULL</literal> value. The
             function can check whether any of the function arguments can
             return <literal>NULL</literal> by checking the arguments'
-            <literal>maybe_null</literal> variable. You can take a look
-            at <literal>Item_func_mod::fix_length_and_dec</literal> for
-            a typical example of how to do this.
+            <literal>maybe_null</literal> variable. Look at
+            <literal>Item_func_mod::fix_length_and_dec</literal> for a
+            typical example of how to do this.
           </para>
         </listitem>
 
       </orderedlist>
 
       <para>
-        All functions must be thread-safe. In other words, don't use any
-        global or static variables in the functions without protecting
-        them with mutexes)
+        All functions must be thread-safe. In other words, do not use
+        any global or static variables in the functions without
+        protecting them with mutexes.
       </para>
 
       <para>
-        If you want to return <literal>NULL</literal>, from
-        <literal>::val()</literal>, <literal>::val_int()</literal> or
-        <literal>::str()</literal> you should set
+        If you want to return <literal>NULL</literal> from
+        <literal>::val()</literal>, <literal>::val_int()</literal>, or
+        <literal>::str()</literal>, you should set
         <literal>null_value</literal> to 1 and return 0.
       </para>
 
       <para>
-        For <literal>::str()</literal> object functions, there are some
+        For <literal>::str()</literal> object functions, there are
         additional considerations to be aware of:
       </para>
 

@@ -4573,8 +4583,8 @@
         <listitem>
           <para>
             The <literal>::str()</literal> function should return the
-            string that holds the result or <literal>(char*) 0</literal>
-            if the result is <literal>NULL</literal>.
+            string that holds the result, or <literal>(char*)
+            0</literal> if the result is <literal>NULL</literal>.
           </para>
         </listitem>
 

@@ -4587,14 +4597,6 @@
 
       </itemizedlist>
 
-      <para>
-        If the new native function will be referred to in statements
-        that will be replicated to slave servers, you must ensure that
-        every slave server also has the function available. Otherwise,
-        replication will fail on the slaves when they attempt to invoke
-        the function.
-      </para>
-
     </section>
 
   </section>


Modified: trunk/refman-6.0/extending-mysql.xml
===================================================================
--- trunk/refman-6.0/extending-mysql.xml	2008-01-10 11:03:26 UTC (rev 9546)
+++ trunk/refman-6.0/extending-mysql.xml	2008-01-10 15:30:30 UTC (rev 9547)
Changed blocks: 6, Lines Added: 51, Lines Deleted: 49; 7621 bytes

@@ -4384,19 +4384,28 @@
       </indexterm>
 
       <para>
-        The procedure for adding a new native function is described
-        here. Note that you cannot add native functions to a binary
-        distribution because the procedure involves modifying MySQL
-        source code. You must compile MySQL yourself from a source
-        distribution. Also note that if you migrate to another version
-        of MySQL (for example, when a new version is released), you need
-        to repeat the procedure with the new version.
+        To add a new native MySQL function, use the procedure described
+        here, which requires that you use a source distribution. You
+        cannot add native functions to a binary distribution because it
+        is necessary to modify MySQL source code and compile MySQL from
+        the modified source. If you migrate to another version of MySQL
+        (for example, when a new version is released), you must repeat
+        the procedure with the new version.
       </para>
 
       <para>
-        To add a new native MySQL function, follow these steps:
+        If the new native function will be referred to in statements
+        that will be replicated to slave servers, you must ensure that
+        every slave server also has the function available. Otherwise,
+        replication will fail on the slaves when they attempt to invoke
+        the function.
       </para>
 
+      <para>
+        To add a new native function, follow these steps to modify
+        source files in the <filename>sql</filename> directory:
+      </para>
+
       <orderedlist>
 
         <listitem>

@@ -4410,30 +4419,31 @@
         <listitem>
           <para>
             If the function prototype is simple (just takes zero, one,
-            two or three arguments), you should in
-            <filename>lex.h</filename> specify
+            two, or three arguments), add a line to the
+            <literal>sql_functions[]</literal> array in
+            <filename>lex.h</filename> that specifies
             <literal>SYM(FUNC_ARG<replaceable>N</replaceable>)</literal>
-            (where <replaceable>N</replaceable> is the number of
-            arguments) as the second argument in the
-            <literal>sql_functions[]</literal> array and add a function
-            that creates a function object in
-            <filename>item_create.cc</filename>. Take a look at
-            <literal>"ABS"</literal> and
+            as the second argument (where <replaceable>N</replaceable>
+            is the number of arguments the function takes). Also, add a
+            function in <filename>item_create.cc</filename> that creates
+            a function object. Look at <literal>"ABS"</literal> and
             <literal>create_funcs_abs()</literal> for an example of
             this.
           </para>
 
           <para>
-            If the function prototype is complicated (for example, if it
-            takes a variable number of arguments), you should add two
-            lines to <filename>sql_yacc.yy</filename>. One indicates the
-            preprocessor symbol that <command>yacc</command> should
-            define (this should be added at the beginning of the file).
-            Then define the function parameters and add an
-            <quote>item</quote> with these parameters to the
-            <literal>simple_expr</literal> parsing rule. For an example,
-            check all occurrences of <literal>ATAN</literal> in
-            <filename>sql_yacc.yy</filename> to see how this is done.
+            If the function prototype is not simple (for example, if it
+            takes a variable number of arguments), you should make two
+            changes to <filename>sql_yacc.yy</filename>. One is a line
+            that indicates the preprocessor symbol that
+            <command>yacc</command> should define; this should be added
+            at the beginning of the file. The other is an
+            <quote>item</quote> to be added to the
+            <literal>simple_expr</literal> parsing rule that defines the
+            function parameters. You will need an item for each syntax
+            with which the function can be called. For an example that
+            shows how this this is done, check all occurrences of
+            <literal>ATAN</literal> in <filename>sql_yacc.yy</filename>.
           </para>
         </listitem>
 

@@ -4473,9 +4483,9 @@
 
         <listitem>
           <para>
-            If the function is non-deterministic, you should include the
-            following statement in the item constructor to indicate that
-            function results should not be cached:
+            If the function is non-deterministic, include the following
+            statement in the item constructor to indicate that function
+            results should not be cached:
           </para>
 
 <programlisting>

@@ -4508,29 +4518,29 @@
             function can't return a <literal>NULL</literal> value. The
             function can check whether any of the function arguments can
             return <literal>NULL</literal> by checking the arguments'
-            <literal>maybe_null</literal> variable. You can take a look
-            at <literal>Item_func_mod::fix_length_and_dec</literal> for
-            a typical example of how to do this.
+            <literal>maybe_null</literal> variable. Look at
+            <literal>Item_func_mod::fix_length_and_dec</literal> for a
+            typical example of how to do this.
           </para>
         </listitem>
 
       </orderedlist>
 
       <para>
-        All functions must be thread-safe. In other words, don't use any
-        global or static variables in the functions without protecting
-        them with mutexes)
+        All functions must be thread-safe. In other words, do not use
+        any global or static variables in the functions without
+        protecting them with mutexes.
       </para>
 
       <para>
-        If you want to return <literal>NULL</literal>, from
-        <literal>::val()</literal>, <literal>::val_int()</literal> or
-        <literal>::str()</literal> you should set
+        If you want to return <literal>NULL</literal> from
+        <literal>::val()</literal>, <literal>::val_int()</literal>, or
+        <literal>::str()</literal>, you should set
         <literal>null_value</literal> to 1 and return 0.
       </para>
 
       <para>
-        For <literal>::str()</literal> object functions, there are some
+        For <literal>::str()</literal> object functions, there are
         additional considerations to be aware of:
       </para>
 

@@ -4548,8 +4558,8 @@
         <listitem>
           <para>
             The <literal>::str()</literal> function should return the
-            string that holds the result or <literal>(char*) 0</literal>
-            if the result is <literal>NULL</literal>.
+            string that holds the result, or <literal>(char*)
+            0</literal> if the result is <literal>NULL</literal>.
           </para>
         </listitem>
 

@@ -4562,14 +4572,6 @@
 
       </itemizedlist>
 
-      <para>
-        If the new native function will be referred to in statements
-        that will be replicated to slave servers, you must ensure that
-        every slave server also has the function available. Otherwise,
-        replication will fail on the slaves when they attempt to invoke
-        the function.
-      </para>
-
     </section>
 
   </section>


Thread
svn commit - mysqldoc@docsrva: r9547 - in trunk: . refman-4.1 refman-5.0 refman-5.1 refman-6.0paul10 Jan