MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:paul.dubois Date:October 13 2009 5:27pm
Subject:svn commit - mysqldoc@docsrva: r17114 - in trunk: . dynamic-docs/changelog refman-5.0 refman-5.1 refman-5.4
View as plain text  
Author: paul
Date: 2009-10-13 19:27:24 +0200 (Tue, 13 Oct 2009)
New Revision: 17114

Log:
 r45469@frost:  paul | 2009-10-13 12:25:08 -0500
 5.4 does not have OUT parameters for prepared statements


Modified:
   trunk/dynamic-docs/changelog/mysqld-1.xml
   trunk/refman-5.0/apis-c.xml
   trunk/refman-5.0/information-schema.xml
   trunk/refman-5.0/restrictions.xml
   trunk/refman-5.0/sql-syntax-compound-statements.xml
   trunk/refman-5.0/stored-routines.xml
   trunk/refman-5.1/apis-c.xml
   trunk/refman-5.1/information-schema.xml
   trunk/refman-5.1/restrictions.xml
   trunk/refman-5.1/sql-syntax-compound-statements.xml
   trunk/refman-5.1/sql-syntax-replication.xml
   trunk/refman-5.1/stored-routines.xml
   trunk/refman-5.4/Notes
   trunk/refman-5.4/apis-c.xml
   trunk/refman-5.4/information-schema.xml
   trunk/refman-5.4/restrictions.xml
   trunk/refman-5.4/sql-syntax-replication.xml
   trunk/refman-5.4/stored-routines.xml

Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/mysqldoc/trunk:27075
07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/trunk:25547
4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:43968
4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/trunk:44480
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:45466
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:39036
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/trunk:39546
   + 07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/mysqldoc/trunk:27075
07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/trunk:25547
4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:43968
4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/trunk:44480
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:45469
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:39036
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/trunk:39546


Modified: trunk/dynamic-docs/changelog/mysqld-1.xml
===================================================================
--- trunk/dynamic-docs/changelog/mysqld-1.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/dynamic-docs/changelog/mysqld-1.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 436 bytes

@@ -55218,7 +55218,7 @@
     </bugs>
 
     <versions>
-      <version ver="5.4.4"/>
+<!--<version ver="5.4.4"/>-->
       <version ver="6.0.8"/>
     </versions>
 


Modified: trunk/refman-5.0/apis-c.xml
===================================================================
--- trunk/refman-5.0/apis-c.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.0/apis-c.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 2, Lines Added: 2, Lines Deleted: 2; 982 bytes

@@ -14013,7 +14013,7 @@
           result sets. Nor can the calling application access a stored
           procedure's <literal>OUT</literal> or <literal>INOUT</literal>
           parameters when the procedure returns. These capabilities are
-          supported beginning with MySQL 5.4.
+          supported beginning with MySQL 5.5.
         </para>
       </listitem>
 

@@ -14172,7 +14172,7 @@
     </para>
 
     <para>
-      MySQL 5.4 expands prepared <literal role="stmt">CALL</literal>
+      MySQL 5.5 expands prepared <literal role="stmt">CALL</literal>
       statement support for stored procedures that produce multiple
       result sets and to provide placeholder access to
       <literal>OUT</literal> and <literal>INOUT</literal> parameters.


Modified: trunk/refman-5.0/information-schema.xml
===================================================================
--- trunk/refman-5.0/information-schema.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.0/information-schema.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 551 bytes

@@ -3691,7 +3691,7 @@
       <literal>REFERENTIAL_CONSTRAINTS</literal> tables.
       (<literal>REFERENTIAL_CONSTRAINTS</literal> is implemented in
       MySQL 5.1, and <literal>PARAMETERS</literal> is implemented in
-      MySQL 5.4.)
+      MySQL 5.5.)
     </para>
 
   </section>


Modified: trunk/refman-5.0/restrictions.xml
===================================================================
--- trunk/refman-5.0/restrictions.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.0/restrictions.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 664 bytes

@@ -298,7 +298,7 @@
 
     <para>
       <literal>INFORMATION_SCHEMA</literal> does not have a
-      <literal>PARAMETERS</literal> table until MySQL 5.4, so
+      <literal>PARAMETERS</literal> table until MySQL 5.5, so
       applications that need to acquire routine parameter information at
       runtime must use workarounds such as parsing the output of
       <literal>SHOW CREATE</literal> statements or the


Modified: trunk/refman-5.0/sql-syntax-compound-statements.xml
===================================================================
--- trunk/refman-5.0/sql-syntax-compound-statements.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.0/sql-syntax-compound-statements.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 547 bytes

@@ -147,7 +147,7 @@
     <para>
       The <literal role="stmt">SIGNAL</literal> and
       <literal role="stmt">RESIGNAL</literal> statements are not
-      supported until MySQL 5.4.
+      supported until MySQL 5.5.
     </para>
 
     <para>


Modified: trunk/refman-5.0/stored-routines.xml
===================================================================
--- trunk/refman-5.0/stored-routines.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.0/stored-routines.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 717 bytes

@@ -387,7 +387,7 @@
       <listitem>
         <para>
           <literal>INFORMATION_SCHEMA</literal> does not have a
-          <literal>PARAMETERS</literal> table until MySQL 5.4, so
+          <literal>PARAMETERS</literal> table until MySQL 5.5, so
           applications that need to acquire routine parameter
           information at runtime must use workarounds such as parsing
           the output of <literal>SHOW CREATE</literal> statements or the


Modified: trunk/refman-5.1/apis-c.xml
===================================================================
--- trunk/refman-5.1/apis-c.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.1/apis-c.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 2, Lines Added: 2, Lines Deleted: 2; 982 bytes

@@ -14083,7 +14083,7 @@
           result sets. Nor can the calling application access a stored
           procedure's <literal>OUT</literal> or <literal>INOUT</literal>
           parameters when the procedure returns. These capabilities are
-          supported beginning with MySQL 5.4.
+          supported beginning with MySQL 5.5.
         </para>
       </listitem>
 

@@ -14242,7 +14242,7 @@
     </para>
 
     <para>
-      MySQL 5.4 expands prepared <literal role="stmt">CALL</literal>
+      MySQL 5.5 expands prepared <literal role="stmt">CALL</literal>
       statement support for stored procedures that produce multiple
       result sets and to provide placeholder access to
       <literal>OUT</literal> and <literal>INOUT</literal> parameters.


Modified: trunk/refman-5.1/information-schema.xml
===================================================================
--- trunk/refman-5.1/information-schema.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.1/information-schema.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 637 bytes

@@ -6238,7 +6238,7 @@
       We intend to implement additional
       <literal>INFORMATION_SCHEMA</literal> tables. In particular, we
       acknowledge the need for the <literal>PARAMETERS</literal> table.
-      (<literal>PARAMETERS</literal> is implemented in MySQL 5.4.)
+      (<literal>PARAMETERS</literal> is implemented in MySQL 5.5.)
     </para>
 
   </section>


Modified: trunk/refman-5.1/restrictions.xml
===================================================================
--- trunk/refman-5.1/restrictions.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.1/restrictions.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 664 bytes

@@ -293,7 +293,7 @@
 
     <para>
       <literal>INFORMATION_SCHEMA</literal> does not have a
-      <literal>PARAMETERS</literal> table until MySQL 5.4, so
+      <literal>PARAMETERS</literal> table until MySQL 5.5, so
       applications that need to acquire routine parameter information at
       runtime must use workarounds such as parsing the output of
       <literal>SHOW CREATE</literal> statements or the


Modified: trunk/refman-5.1/sql-syntax-compound-statements.xml
===================================================================
--- trunk/refman-5.1/sql-syntax-compound-statements.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.1/sql-syntax-compound-statements.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 547 bytes

@@ -147,7 +147,7 @@
     <para>
       The <literal role="stmt">SIGNAL</literal> and
       <literal role="stmt">RESIGNAL</literal> statements are not
-      supported until MySQL 5.4.
+      supported until MySQL 5.5.
     </para>
 
     <para>


Modified: trunk/refman-5.1/sql-syntax-replication.xml
===================================================================
--- trunk/refman-5.1/sql-syntax-replication.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.1/sql-syntax-replication.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 644 bytes

@@ -624,7 +624,7 @@
         <emphasis>not</emphasis> the same as not setting it at all.
         Setting this option to an empty string causes
         <literal role="stmt">START SLAVE</literal> subsequently to fail.
-        This issue is addressed in MySQL 5.4. (Bug#28796)
+        This issue is addressed in MySQL 5.5. (Bug#28796)
       </para>
 
       <para>


Modified: trunk/refman-5.1/stored-routines.xml
===================================================================
--- trunk/refman-5.1/stored-routines.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.1/stored-routines.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 1, Lines Deleted: 1; 717 bytes

@@ -378,7 +378,7 @@
       <listitem>
         <para>
           <literal>INFORMATION_SCHEMA</literal> does not have a
-          <literal>PARAMETERS</literal> table until MySQL 5.4, so
+          <literal>PARAMETERS</literal> table until MySQL 5.5, so
           applications that need to acquire routine parameter
           information at runtime must use workarounds such as parsing
           the output of <literal>SHOW CREATE</literal> statements or the


Modified: trunk/refman-5.4/Notes
===================================================================
--- trunk/refman-5.4/Notes	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.4/Notes	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 2, Lines Added: 4, Lines Deleted: 1; 813 bytes

@@ -56,9 +56,11 @@
 Falcon in 6.0. But 5.4 has neither NDB nor Falcon, so what is the table
 for in 5.4?
 
-The 5.1 manual has some references to 5.4 and needs updating, such as:
+The 5.1 manual (and sometimes earlier) has some references to 5.4
+and needs updating, such as:
 * mysql-next-series-plans
 * stored-routines-metadata
+* GET_LOCK()
 
 Need to remove:
 * Lots of differences for optimization.xml, e.g., index condition pushdown

@@ -79,3 +81,4 @@
 * MRR optimization
 * BKA optimization
 * DEBUG_SYNC: --enable-debug-sync, --debug-sync-timeout, debug_sync
+* OUT parameters in prepared statements


Modified: trunk/refman-5.4/apis-c.xml
===================================================================
--- trunk/refman-5.4/apis-c.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.4/apis-c.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 12, Lines Added: 19, Lines Deleted: 566; 22117 bytes

@@ -263,16 +263,7 @@
 
     <para>
       The <literal>MYSQL_FIELD</literal> structure contains the members
-      described in the following list. The definitions apply primarily
-      for columns of result sets such as those produced by
-      <literal role="stmt">SELECT</literal> statements. As of MySQL
-      5.4.4, <literal>MYSQL_FIELD</literal> structures are also used to
-      provide metadata for <literal>OUT</literal> and
-      <literal>INOUT</literal> parameters returned from stored
-      procedures executed via prepared
-      <literal role="stmt">CALL</literal> statements. For such
-      parameters, some of the structure members have a meaning different
-      from the meaning for column values.
+      described in the following list:
     </para>
 
     <itemizedlist>

@@ -285,8 +276,7 @@
         <para>
           The name of the field, as a null-terminated string. If the
           field was given an alias with an <literal>AS</literal> clause,
-          the value of <literal>name</literal> is the alias. For a
-          procedure parameter, the parameter name.
+          the value of <literal>name</literal> is the alias.
         </para>
       </listitem>
 

@@ -297,7 +287,7 @@
 
         <para>
           The name of the field, as a null-terminated string. Aliases
-          are ignored. For a procedure parameter, the parameter name.
+          are ignored.
         </para>
       </listitem>
 

@@ -315,7 +305,7 @@
           <literal>AS</literal> clause, the value of
           <literal>table</literal> is the alias. For a
           <literal role="stmt">UNION</literal>, the value is the empty
-          string. For a procedure parameter, the procedure name.
+          string.
         </para>
       </listitem>
 

@@ -329,7 +319,7 @@
           are ignored. If the column is selected from a view,
           <literal>org_table</literal> names the underlying table. For a
           <literal role="stmt">UNION</literal>, the value is the empty
-          string. For a procedure parameter, the procedure name.
+          string.
         </para>
       </listitem>
 

@@ -343,8 +333,7 @@
           null-terminated string. If the field is a calculated field,
           <literal>db</literal> is an empty string. For a
           <literal role="stmt">UNION</literal>, the value is the empty
-          string. For a procedure parameter, the name of the database
-          containing the procedure.
+          string.
         </para>
       </listitem>
 

@@ -5104,9 +5093,7 @@
         either explicitly by passing the
         <literal>CLIENT_MULTI_RESULTS</literal> flag itself, or
         implicitly by passing <literal>CLIENT_MULTI_STATEMENTS</literal>
-        (which also enables <literal>CLIENT_MULTI_RESULTS</literal>). As
-        of MySQL 5.4.4, <literal>CLIENT_MULTI_RESULTS</literal> is
-        enabled by default.
+        (which also enables <literal>CLIENT_MULTI_RESULTS</literal>).
       </para>
 
       <para>

@@ -6435,9 +6422,7 @@
         either explicitly by passing the
         <literal>CLIENT_MULTI_RESULTS</literal> flag itself, or
         implicitly by passing <literal>CLIENT_MULTI_STATEMENTS</literal>
-        (which also enables <literal>CLIENT_MULTI_RESULTS</literal>). As
-        of MySQL 5.4.4, <literal>CLIENT_MULTI_RESULTS</literal> is
-        enabled by default.
+        (which also enables <literal>CLIENT_MULTI_RESULTS</literal>).
       </para>
 
       <para>

@@ -9782,10 +9767,6 @@
               by prepared statement</entry>
           </row>
           <row>
-            <entry><literal role="cfunc">mysql_stmt_next_result()</literal></entry>
-            <entry>Returns/initiates the next result in multiple-result executions</entry>
-          </row>
-          <row>
             <entry><literal role="cfunc">mysql_stmt_num_rows()</literal></entry>
             <entry>Returns total row count from the buffered statement result set</entry>
           </row>

@@ -11986,162 +11967,6 @@
 
     </section>
 
-    <section id="mysql-stmt-next-result">
-
-      <title><literal role="cfunc">mysql_stmt_next_result()</literal></title>
-
-      <indexterm>
-        <primary>mysql_stmt_next_result()</primary>
-      </indexterm>
-
-      <para>
-        <literal>int mysql_stmt_next_result(MYSQL *mysql)</literal>
-      </para>
-
-      <para>
-        <emphasis role="bold">Description</emphasis>
-      </para>
-
-      <para>
-        This function is used when you use prepared
-        <literal role="stmt">CALL</literal> statements to execute stored
-        procedures, which can return multiple result sets. Use a loop
-        that calls
-        <literal role="cfunc">mysql_stmt_next_result()</literal> to
-        determine whether there are more results. If a procedure has
-        <literal>OUT</literal> or <literal>INOUT</literal> parameters,
-        their values will be returned as a single-row result set
-        following any other result sets. The values will appear in the
-        order in which they are declared in the procedure parameter
-        list.
-      </para>
-
-      <para>
-        <literal role="cfunc">mysql_stmt_next_result()</literal> returns
-        a status to indicate whether more results exist. If
-        <literal role="cfunc">mysql_stmt_next_result()</literal> returns
-        an error, there are no more results.
-      </para>
-
-      <para>
-        Before each call to
-        <literal role="cfunc">mysql_stmt_next_result()</literal>, you
-        must call
-        <literal role="cfunc">mysql_stmt_free_result()</literal> for the
-        current result if it produced a result set (rather than just a
-        result status).
-      </para>
-
-      <para>
-        After calling
-        <literal role="cfunc">mysql_stmt_next_result()</literal> the
-        state of the connection is as if you had called
-        <literal role="cfunc">mysql_stmt_execute()</literal>. This means
-        that you can call
-        <literal role="cfunc">mysql_stmt_bind_result()</literal>,
-        <literal role="cfunc">mysql_stmt_affected_rows()</literal>, and
-        so forth.
-      </para>
-
-      <para>
-        It is also possible to test whether there are more results by
-        calling <literal role="cfunc">mysql_more_results()</literal>.
-        However, this function does not change the connection state, so
-        if it returns true, you must still call
-        <literal role="cfunc">mysql_stmt_next_result()</literal> to
-        advance to the next result.
-      </para>
-
-      <para>
-        For an example that shows how to use
-        <literal role="cfunc">mysql_stmt_next_result()</literal>, see
-        <xref linkend="c-api-prepared-call-statements"/>.
-      </para>
-
-      <para>
-        <literal role="cfunc">mysql_stmt_next_result()</literal> was
-        added in MySQL 5.4.4.
-      </para>
-
-      <para>
-        <emphasis role="bold">Return Values</emphasis>
-      </para>
-
-      <informaltable>
-        <tgroup cols="2">
-          <colspec colwidth="35*"/>
-          <colspec colwidth="65*"/>
-          <tbody>
-            <row>
-              <entry><emphasis role="bold">Return Value</emphasis></entry>
-              <entry><emphasis role="bold">Description</emphasis></entry>
-            </row>
-            <row>
-              <entry>0</entry>
-              <entry>Successful and there are more results</entry>
-            </row>
-            <row>
-              <entry>-1</entry>
-              <entry>Successful and there are no more results</entry>
-            </row>
-            <row>
-              <entry>&gt;0</entry>
-              <entry>An error occurred</entry>
-            </row>
-          </tbody>
-        </tgroup>
-      </informaltable>
-
-      <para>
-        <emphasis role="bold">Errors</emphasis>
-      </para>
-
-      <itemizedlist>
-
-        <listitem>
-          <para>
-            <literal role="error">CR_COMMANDS_OUT_OF_SYNC</literal>
-          </para>
-
-          <para>
-            Commands were executed in an improper order.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            <literal role="error">CR_SERVER_GONE_ERROR</literal>
-          </para>
-
-          <para>
-            The MySQL server has gone away.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            <literal role="error">CR_SERVER_LOST</literal>
-          </para>
-
-          <para>
-            The connection to the server was lost during the query.
-          </para>
-        </listitem>
-
-        <listitem>
-          <para>
-            <literal role="error">CR_UNKNOWN_ERROR</literal>
-          </para>
-
-          <para>
-            An unknown error occurred.
-          </para>
-        </listitem>
-
-      </itemizedlist>
-
-    </section>
-
     <section id="mysql-stmt-num-rows">
 
       <title><literal role="cfunc">mysql_stmt_num_rows()</literal></title>

@@ -14225,14 +14050,13 @@
 
       <listitem>
         <para>
-          Before MySQL 5.4.4, prepared <literal>CALL</literal>
+          In MySQL &current-series;, prepared <literal>CALL</literal>
           statements cannot invoke stored procedures that return result
           sets because prepared statements do not support multiple
           result sets. Nor can the calling application access a stored
           procedure's <literal>OUT</literal> or <literal>INOUT</literal>
-          parameters when the procedure returns. As of MySQL 5.4.4,
-          these capabilities are supported as described in
-          <xref linkend="c-api-prepared-call-statements"/>.
+          parameters when the procedure returns. These capabilities are
+          supported beginning with MySQL 5.5.
         </para>
       </listitem>
 

@@ -14383,391 +14207,20 @@
       Statements</title>
 
     <para>
-      This section describes prepared-statement support in the C API for
-      stored procedures executed via <literal role="stmt">CALL</literal>
-      statements:
+      In MySQL &current-series;, prepared
+      <literal role="stmt">CALL</literal> statements can be used only
+      for stored procedures that produce at most one result set. Nor can
+      the calling application use placeholders for
+      <literal>OUT</literal> or <literal>INOUT</literal> parameters.
     </para>
 
     <para>
-      Prior to MySQL 5.4.4, prepared <literal role="stmt">CALL</literal>
-      statements can be used only for stored procedures that produce at
-      most one result set. Nor can the calling application use
-      placeholders for <literal>OUT</literal> or
-      <literal>INOUT</literal> parameters.
-    </para>
-
-    <para>
-      MySQL 5.4.4 expands support for stored procedures executed via
-      prepared <literal role="stmt">CALL</literal> statements in the
-      following ways:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          A stored procedure can produce any number of result sets. The
-          number of columns and the data types of the columns need not
-          be the same for all result sets.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          The final values of <literal>OUT</literal> and
-          <literal>INOUT</literal> parameters are available to the
-          calling application after the procedure returns. These
-          parameters are returned as an extra single-row result set
-          following any result sets produced by the procedure itself.
-          The row contains the values of the <literal>OUT</literal> and
-          <literal>INOUT</literal> parameters in the order in which they
-          are declared in the procedure parameter list.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
-      The following discussion shows how to use these capabilities via
-      the C API for prepared statements. To use prepared
-      <literal role="stmt">CALL</literal> statements via the
-      <literal role="stmt">PREPARE</literal> and
-      <literal role="stmt">EXECUTE</literal> statements, see
-      <xref linkend="call"/>.
-    </para>
-
-    <para>
-      If an application might be compiled or executed in a context where
-      a version of MySQL older than 5.4.4 is used, prepared
-      <literal role="stmt">CALL</literal> capabilities for multiple
-      result sets and <literal>OUT</literal> or <literal>INOUT</literal>
-      parameters might not be available:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          For the client side, the application will not compile unless
-          the libraries are from MySQL 5.4.4 or higher (the API function
-          and symbols introduced in that version will not be present).
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          To verify at runtime that the server is recent enough, a
-          client can use this test:
-        </para>
-
-<programlisting>
-if (mysql_get_server_version(mysql) &lt; 60008)
-{
-  fprintf(stderr,
-          "Server does not support required CALL capabilities\n");
-  mysql_close(mysql);
-  exit (1);
-}
-</programlisting>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
-      An application that executes a prepared
-      <literal role="stmt">CALL</literal> statement should use a loop
-      that fetches a result and then invokes
-      <literal role="cfunc">mysql_stmt_next_result()</literal> to
-      determine whether there are more results. The results consist of
-      any result sets produced by the stored procedure followed by a
-      final status value that indicates whether the procedure terminated
-      successfully.
-    </para>
-
-    <para>
-      If the procedure has <literal>OUT</literal> or
-      <literal>INOUT</literal> parameters, the result set preceding the
-      final status value contains their values. To determine whether a
-      result set contains parameter values, test whether the
-      <literal>SERVER_PS_OUT_PARAMS</literal> bit is set in the
-      <literal>server_status</literal> member of the
-      <literal>MYSQL</literal> connection handler:
-    </para>
-
-<programlisting>
-mysql-&gt;server_status &amp; SERVER_PS_OUT_PARAMS
-</programlisting>
-
-    <para>
-      The following example uses a prepared
-      <literal role="stmt">CALL</literal> statement to execute a stored
-      procedure that produces multiple result sets and that provides
-      parameter values back to the caller by means of
+      MySQL 5.5 expands prepared <literal role="stmt">CALL</literal>
+      statement support for stored procedures that produce multiple
+      result sets and to provide placeholder access to
       <literal>OUT</literal> and <literal>INOUT</literal> parameters.
-      The procedure takes parameters of all three types
-      (<literal>IN</literal>, <literal>OUT</literal>,
-      <literal>INOUT</literal>), displays their initial values, assigns
-      new values, displays the updated values, and returns. The expected
-      return information from the procedure therefore consists of
-      multiple result sets and a final status:
     </para>
 
-    <itemizedlist>
-
-      <listitem>
-        <para>
-          One result set containing the initial parameter values:
-          <literal>10</literal>, <literal>NULL</literal>,
-          <literal>30</literal>. (The <literal>OUT</literal> parameter
-          is assigned a value by the caller, but this assignment is
-          expected to be ineffective: <literal>OUT</literal> parameters
-          are seen as <literal>NULL</literal> within a procedure until
-          assigned a value within the procedure.)
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          One result set containing the modified parameter values:
-          <literal>100</literal>, <literal>200</literal>,
-          <literal>300</literal>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          One result set containing the final <literal>OUT</literal> and
-          <literal>INOUT</literal> parameter values:
-          <literal>200</literal>, <literal>300</literal>.
-        </para>
-      </listitem>
-
-      <listitem>
-        <para>
-          A final status packet.
-        </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
-      The code to execute the procedure:
-    </para>
-
-<programlisting>
-MYSQL_STMT *stmt;
-MYSQL_BIND ps_params[3];  /* input parameter buffers */
-int        int_data[3];   /* input parameter values */
-my_bool    is_null[3];    /* input parameter nullability */
-int        status;
-
-/* set up stored procedure */
-status = mysql_query(mysql, "DROP PROCEDURE IF EXISTS p1");
-test_error(mysql, status);
-
-status = mysql_query(mysql,
-  "CREATE PROCEDURE p1("
-  "  IN p_in INT, "
-  "  OUT p_out INT, "
-  "  INOUT p_inout INT) "
-  "BEGIN "
-  "  SELECT p_in, p_out, p_inout; "
-  "  SET p_in = 100, p_out = 200, p_inout = 300; "
-  "  SELECT p_in, p_out, p_inout; "
-  "END");
-test_error(mysql, status);
-
-/* initialize and prepare CALL statement with parameter placeholders */
-stmt = mysql_stmt_init(mysql);
-if (!stmt)
-{
-  printf("Could not initialize statement\n");
-  exit(1);
-}
-status = mysql_stmt_prepare(stmt, "CALL p1(?, ?, ?)", 16);
-test_stmt_error(stmt, status);
-
-/* initialize parameters: p_in, p_out, p_inout (all INT) */
-memset(ps_params, 0, sizeof (ps_params));
-
-ps_params[0].buffer_type = MYSQL_TYPE_LONG;
-ps_params[0].buffer = (char *) &amp;int_data[0];
-ps_params[0].length = 0;
-ps_params[0].is_null = 0;
-
-ps_params[1].buffer_type = MYSQL_TYPE_LONG;
-ps_params[1].buffer = (char *) &amp;int_data[1];
-ps_params[1].length = 0;
-ps_params[1].is_null = 0;
-
-ps_params[2].buffer_type = MYSQL_TYPE_LONG;
-ps_params[2].buffer = (char *) &amp;int_data[2];
-ps_params[2].length = 0;
-ps_params[2].is_null = 0;
-
-/* bind parameters */
-status = mysql_stmt_bind_param(stmt, ps_params);
-test_stmt_error(stmt, status);
-
-/* assign values to parameters and execute statement */
-int_data[0]= 10;  /* p_in */
-int_data[1]= 20;  /* p_inout */
-int_data[2]= 30;  /* p_inout */
-
-status = mysql_stmt_execute(stmt);
-test_stmt_error(stmt, status);
-
-/* process results until there are no more */
-do {
-  int i;
-  int num_fields;       /* number of columns in result */
-  MYSQL_FIELD *fields;  /* for result set metadata */
-  MYSQL_BIND *rs_bind;  /* for output buffers */
-
-  /* the column count is &gt; 0 if there is a result set */
-  /* 0 if the result is only the final status packet */
-  num_fields = mysql_stmt_field_count(stmt);
-
-  if (num_fields &gt; 0)
-  {
-    /* there is a result set to fetch */
-    printf("Number of columns in result: %d\n", (int) num_fields);
-
-    /* what kind of result set is this? */
-    printf("Data: ");
-    if(mysql-&gt;server_status &amp; SERVER_PS_OUT_PARAMS)
-      printf("this result set contains OUT/INOUT parameters\n");
-    else
-      printf("this result set is produced by the procedure\n");
-
-    MYSQL_RES *rs_metadata = mysql_stmt_result_metadata(stmt);
-    test_stmt_error(stmt, rs_metadata == NULL);
-
-    fields = mysql_fetch_fields(rs_metadata);
-
-    rs_bind = (MYSQL_BIND *) malloc(sizeof (MYSQL_BIND) * num_fields);
-    if (!rs_bind)
-    {
-      printf("Cannot allocate output buffers\n");
-      exit(1);
-    }
-    memset(rs_bind, 0, sizeof (MYSQL_BIND) * num_fields);
-
-    /* set up and bind result set output buffers */
-    for (i = 0; i &lt; num_fields; ++i)
-    {
-      rs_bind[i].buffer_type = fields[i].type;
-      rs_bind[i].is_null = &amp;is_null[i];
-
-      switch (fields[i].type)
-      {
-        case MYSQL_TYPE_LONG:
-          rs_bind[i].buffer = (char *) &amp;(int_data[i]);
-          rs_bind[i].buffer_length = sizeof (int_data);
-          break;
-
-        default:
-          fprintf(stderr, "ERROR: unexpected type: %d.\n", fields[i].type);
-          exit(1);
-      }
-    }
-
-    status = mysql_stmt_bind_result(stmt, rs_bind);
-    test_stmt_error(stmt, status);
-
-    /* fetch and display result set rows */
-    while (1)
-    {
-      status = mysql_stmt_fetch(stmt);
-
-      if (status == 1 || status == MYSQL_NO_DATA)
-        break;
-
-      for (i = 0; i &lt; num_fields; ++i)
-      {
-        switch (rs_bind[i].buffer_type)
-        {
-          case MYSQL_TYPE_LONG:
-            if (*rs_bind[i].is_null)
-              printf(" val[%d] = NULL;", i);
-            else
-              printf(" val[%d] = %ld;",
-                     i, (long) *((int *) rs_bind[i].buffer));
-            break;
-
-          default:
-            printf("  unexpected type (%d)\n",
-              rs_bind[i].buffer_type);
-        }
-      }
-      printf("\n");
-    }
-
-    mysql_free_result(rs_metadata); /* free metadata */
-    free(rs_bind);                  /* free output buffers */
-  }
-  else
-  {
-    /* no columns = final status packet */
-    printf("End of procedure output\n");
-  }
-
-  /* more results? -1 = no, &gt;0 = error, 0 = yes (keep looking) */
-  status = mysql_stmt_next_result(stmt);
-  if (status &gt; 0)
-    test_stmt_error(stmt, status);
-} while (status == 0);
-
-mysql_stmt_close(stmt);
-</programlisting>
-
-    <para>
-      Execution of the procedure should produce the following output:
-    </para>
-
-<programlisting>
-Number of columns in result: 3
-Data: this result set is produced by the procedure
- val[0] = 10; val[1] = NULL; val[2] = 30;
-Number of columns in result: 3
-Data: this result set is produced by the procedure
- val[0] = 100; val[1] = 200; val[2] = 300;
-Number of columns in result: 2
-Data: this result set contains OUT/INOUT parameters
- val[0] = 200; val[1] = 300;
-End of procedure output
-</programlisting>
-
-    <para>
-      The code uses two utility routines,
-      <literal>test_error()</literal>
-      <literal>test_stmt_error()</literal>, to check for errors and
-      terminate after printing diagnostic information if an error
-      occurred:
-    </para>
-
-<programlisting>
-static void test_error(MYSQL *mysql, int status)
-{
-  if (status)
-  {
-    printf("Error: %s (errno: %d)\n",
-           mysql_error(mysql), mysql_errno(mysql));
-    exit(1);
-  }
-}
-
-static void test_stmt_error(MYSQL_STMT *stmt, int status)
-{
-  if (status)
-  {
-    printf("Error: %s (errno: %d)\n",
-           mysql_stmt_error(stmt), mysql_stmt_errno(stmt));
-    exit(1);
-  }
-}
-</programlisting>
-
   </section>
 
   <section id="building-clients">


Modified: trunk/refman-5.4/information-schema.xml
===================================================================
--- trunk/refman-5.4/information-schema.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.4/information-schema.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 3, Lines Deleted: 1; 634 bytes

@@ -5825,7 +5825,9 @@
 
     <para>
       We intend to implement additional
-      <literal>INFORMATION_SCHEMA</literal> tables.
+      <literal>INFORMATION_SCHEMA</literal> tables. In particular, we
+      acknowledge the need for the <literal>PARAMETERS</literal> table.
+      (<literal>PARAMETERS</literal> is implemented in MySQL 5.5.)
     </para>
 
   </section>


Modified: trunk/refman-5.4/restrictions.xml
===================================================================
--- trunk/refman-5.4/restrictions.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.4/restrictions.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 12, Lines Deleted: 0; 959 bytes

@@ -290,6 +290,18 @@
     </para>
 
     <para>
+      <literal>INFORMATION_SCHEMA</literal> does not have a
+      <literal>PARAMETERS</literal> table until MySQL 5.5, so
+      applications that need to acquire routine parameter information at
+      runtime must use workarounds such as parsing the output of
+      <literal>SHOW CREATE</literal> statements or the
+      <literal>param_list</literal> column of the
+      <literal>mysql.proc</literal> table. <literal>param_list</literal>
+      contents can be processed from within a stored routine, unlike the
+      output from <literal role="stmt">SHOW</literal>.
+    </para>
+
+    <para>
       There are no stored routine debugging facilities.
     </para>
 


Modified: trunk/refman-5.4/sql-syntax-replication.xml
===================================================================
--- trunk/refman-5.4/sql-syntax-replication.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.4/sql-syntax-replication.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 3, Lines Deleted: 6; 1073 bytes

@@ -618,13 +618,10 @@
       <para>
         Setting <literal>MASTER_HOST=''</literal> &mdash; that is,
         setting its value explicitly to an empty string &mdash; is
-        <emphasis>not</emphasis> the same as not setting
-        <literal>MASTER_HOST</literal> at all. Previously, setting
-        <literal>MASTER_HOST</literal> to an empty string caused
+        <emphasis>not</emphasis> the same as not setting it at all.
+        Setting this option to an empty string causes
         <literal role="stmt">START SLAVE</literal> subsequently to fail.
-        Beginning with MySQL 5.4.4, trying to set
-        <literal>MASTER_HOST</literal> to an empty string fails with an
-        error. (Bug#28796)
+        This issue is addressed in MySQL 5.5. (Bug#28796)
       </para>
 
       <para>


Modified: trunk/refman-5.4/stored-routines.xml
===================================================================
--- trunk/refman-5.4/stored-routines.xml	2009-10-13 16:34:32 UTC (rev 17113)
+++ trunk/refman-5.4/stored-routines.xml	2009-10-13 17:27:24 UTC (rev 17114)
Changed blocks: 1, Lines Added: 15, Lines Deleted: 0; 1033 bytes

@@ -375,6 +375,21 @@
         </para>
       </listitem>
 
+      <listitem>
+        <para>
+          <literal>INFORMATION_SCHEMA</literal> does not have a
+          <literal>PARAMETERS</literal> table until MySQL 5.5, so
+          applications that need to acquire routine parameter
+          information at runtime must use workarounds such as parsing
+          the output of <literal>SHOW CREATE</literal> statements or the
+          <literal>param_list</literal> column of the
+          <literal>mysql.proc</literal> table.
+          <literal>param_list</literal> contents can be processed from
+          within a stored routine, unlike the output from
+          <literal role="stmt">SHOW</literal>.
+        </para>
+      </listitem>
+
     </itemizedlist>
 
   </section>


Thread
svn commit - mysqldoc@docsrva: r17114 - in trunk: . dynamic-docs/changelog refman-5.0 refman-5.1 refman-5.4paul.dubois13 Oct