<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h3 class="title">
      <a name="function-resolution">
      </a>
      11.2.5 Function Name Parsing and Resolution
     </h3>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045219705072">
  </a>
  <a class="indexterm" name="idm46045219703616">
  </a>
  <p>
   MySQL supports built-in (native) functions, loadable functions,
        and stored functions. This section describes how the server
        recognizes whether the name of a built-in function is used as a
        function call or as an identifier, and how the server determines
        which function to use in cases when functions of different types
        exist with a given name.
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <a class="xref" href="function-resolution.html#function-name-parsing" title="Built-In Function Name Parsing">
       Built-In Function Name Parsing
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="function-resolution.html#function-name-resolution" title="Function Name Resolution">
       Function Name Resolution
      </a>
     </p>
    </li>
   </ul>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h4 class="title">
       <a name="function-name-parsing">
       </a>
       Built-In Function Name Parsing
      </h4>
     </div>
    </div>
   </div>
   <p>
    The parser uses default rules for parsing names of built-in
          functions. These rules can be changed by enabling the
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    SQL mode.
   </p>
   <p>
    When the parser encounters a word that is the name of a
          built-in function, it must determine whether the name
          signifies a function call or is instead a nonexpression
          reference to an identifier such as a table or column name. For
          example, in the following statements, the first reference to
    <code class="literal">
     count
    </code>
    is a function call, whereas the
          second reference is a table name:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa13537488"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SELECT</span> <span class="token function">COUNT</span><span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span> <span class="token keyword">FROM</span> mytable<span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
   </div>
   <p>
    The parser should recognize the name of a built-in function as
          indicating a function call only when parsing what is expected
          to be an expression. That is, in nonexpression context,
          function names are permitted as identifiers.
   </p>
   <p>
    However, some built-in functions have special parsing or
          implementation considerations, so the parser uses the
          following rules by default to distinguish whether their names
          are being used as function calls or as identifiers in
          nonexpression context:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       To use the name as a function call in an expression, there
              must be no whitespace between the name and the following
       <code class="literal">
        (
       </code>
       parenthesis character.
      </p>
     </li>
     <li class="listitem">
      <p>
       Conversely, to use the function name as an identifier, it
              must not be followed immediately by a parenthesis.
      </p>
     </li>
    </ul>
   </div>
   <p>
    The requirement that function calls be written with no
          whitespace between the name and the parenthesis applies only
          to the built-in functions that have special considerations.
    <code class="literal">
     COUNT
    </code>
    is one such name. The
    <code class="filename">
     sql/lex.h
    </code>
    source file lists the names of
          these special functions for which following whitespace
          determines their interpretation: names defined by the
    <code class="literal">
     SYM_FN()
    </code>
    macro in the
    <code class="literal">
     symbols[]
    </code>
    array.
   </p>
   <p>
    The following list names the functions in MySQL
          8.4 that are affected by the
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    setting and
          listed as special in the
    <code class="filename">
     sql/lex.h
    </code>
    source
          file. You may find it easiest to treat the no-whitespace
          requirement as applying to all function calls.
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <code class="literal">
        ADDDATE
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        BIT_AND
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        BIT_OR
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        BIT_XOR
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        CAST
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        COUNT
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        CURDATE
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        CURTIME
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        DATE_ADD
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        DATE_SUB
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        EXTRACT
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        GROUP_CONCAT
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        MAX
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        MID
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        MIN
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        NOW
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        POSITION
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SESSION_USER
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        STD
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        STDDEV
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        STDDEV_POP
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        STDDEV_SAMP
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SUBDATE
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SUBSTR
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SUBSTRING
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SUM
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SYSDATE
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        SYSTEM_USER
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        TRIM
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        VARIANCE
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        VAR_POP
       </code>
      </p>
     </li>
     <li class="listitem">
      <p>
       <code class="literal">
        VAR_SAMP
       </code>
      </p>
     </li>
    </ul>
   </div>
   <p>
    For functions not listed as special in
    <code class="filename">
     sql/lex.h
    </code>
    , whitespace does not matter.
          They are interpreted as function calls only when used in
          expression context and may be used freely as identifiers
          otherwise.
    <code class="literal">
     ASCII
    </code>
    is one such name. However,
          for these nonaffected function names, interpretation may vary
          in expression context:
    <code class="literal">
     <em class="replaceable">
      <code>
       func_name
      </code>
     </em>
     ()
    </code>
    is
          interpreted as a built-in function if there is one with the
          given name; if not,
    <code class="literal">
     <em class="replaceable">
      <code>
       func_name
      </code>
     </em>
     ()
    </code>
    is
          interpreted as a loadable function or stored function if one
          exists with that name.
   </p>
   <p>
    The
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    SQL mode
          can be used to modify how the parser treats function names
          that are whitespace-sensitive:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       With
       <a class="link" href="sql-mode.html#sqlmode_ignore_space">
        <code class="literal">
         IGNORE_SPACE
        </code>
       </a>
       disabled, the parser interprets the name as a function
              call when there is no whitespace between the name and the
              following parenthesis. This occurs even when the function
              name is used in nonexpression context:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa81957347"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span><span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token output">ERROR 1064 (42000)<span class="token punctuation">:</span> You have an error in your SQL syntax ...
near 'count(i INT)'</span></code></pre>
      </div>
      <p>
       To eliminate the error and cause the name to be treated as
              an identifier, either use whitespace following the name or
              write it as a quoted identifier (or both):
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa7110845"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token punctuation">`</span>count<span class="token punctuation">`</span><span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token punctuation">`</span>count<span class="token punctuation">`</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
      </div>
     </li>
     <li class="listitem">
      <p>
       With
       <a class="link" href="sql-mode.html#sqlmode_ignore_space">
        <code class="literal">
         IGNORE_SPACE
        </code>
       </a>
       enabled, the parser loosens the requirement that there be
              no whitespace between the function name and the following
              parenthesis. This provides more flexibility in writing
              function calls. For example, either of the following
              function calls are legal:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa2022324"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SELECT</span> <span class="token function">COUNT</span><span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span> <span class="token keyword">FROM</span> mytable<span class="token punctuation">;</span>
<span class="token keyword">SELECT</span> <span class="token function">COUNT</span> <span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span> <span class="token keyword">FROM</span> mytable<span class="token punctuation">;</span></code></pre>
      </div>
      <p>
       However, enabling
       <a class="link" href="sql-mode.html#sqlmode_ignore_space">
        <code class="literal">
         IGNORE_SPACE
        </code>
       </a>
       also has
              the side effect that the parser treats the affected
              function names as reserved words (see
       <a class="xref" href="keywords.html" title="11.3 Keywords and Reserved Words">
        Section 11.3, “Keywords and Reserved Words”
       </a>
       ). This means that a space
              following the name no longer signifies its use as an
              identifier. The name can be used in function calls with or
              without following whitespace, but causes a syntax error in
              nonexpression context unless it is quoted. For example,
              with
       <a class="link" href="sql-mode.html#sqlmode_ignore_space">
        <code class="literal">
         IGNORE_SPACE
        </code>
       </a>
       enabled, both of the following statements fail with a
              syntax error because the parser interprets
       <code class="literal">
        count
       </code>
       as a reserved word:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa46795349"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span><span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
      </div>
      <p>
       To use the function name in nonexpression context, write
              it as a quoted identifier:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa86385223"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token punctuation">`</span>count<span class="token punctuation">`</span><span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token punctuation">`</span>count<span class="token punctuation">`</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
      </div>
     </li>
    </ul>
   </div>
   <p>
    To enable the
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    SQL mode, use this statement:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting one-line language-sql"><div class="docs-select-all right" id="sa55254509"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SET</span> sql_mode <span class="token operator">=</span> <span class="token string">'IGNORE_SPACE'</span><span class="token punctuation">;</span></code></pre>
   </div>
   <p>
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    is also enabled
          by certain other composite modes such as
    <a class="link" href="sql-mode.html#sqlmode_ansi">
     <code class="literal">
      ANSI
     </code>
    </a>
    that include it in
          their value:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting one-line language-sql"><div class="docs-select-all right" id="sa74763131"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SET</span> sql_mode <span class="token operator">=</span> <span class="token string">'ANSI'</span><span class="token punctuation">;</span></code></pre>
   </div>
   <p>
    Check
    <a class="xref" href="sql-mode.html" title="7.1.11 Server SQL Modes">
     Section 7.1.11, “Server SQL Modes”
    </a>
    , to see which composite modes
          enable
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    .
   </p>
   <p>
    To minimize the dependency of SQL code on the
    <a class="link" href="sql-mode.html#sqlmode_ignore_space">
     <code class="literal">
      IGNORE_SPACE
     </code>
    </a>
    setting, use
          these guidelines:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       Avoid creating loadable functions or stored functions that
              have the same name as a built-in function.
      </p>
     </li>
     <li class="listitem">
      <p>
       Avoid using function names in nonexpression context. For
              example, these statements use
       <code class="literal">
        count
       </code>
       (one of the affected function names affected by
       <a class="link" href="sql-mode.html#sqlmode_ignore_space">
        <code class="literal">
         IGNORE_SPACE
        </code>
       </a>
       ), so they
              fail with or without whitespace following the name if
       <a class="link" href="sql-mode.html#sqlmode_ignore_space">
        <code class="literal">
         IGNORE_SPACE
        </code>
       </a>
       is enabled:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa85283696"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span><span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token function">count</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
      </div>
      <p>
       If you must use a function name in nonexpression context,
              write it as a quoted identifier:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa75043031"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token punctuation">`</span>count<span class="token punctuation">`</span><span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token punctuation">`</span>count<span class="token punctuation">`</span> <span class="token punctuation">(</span>i <span class="token datatype">INT</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
      </div>
     </li>
    </ul>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h4 class="title">
       <a name="function-name-resolution">
       </a>
       Function Name Resolution
      </h4>
     </div>
    </div>
   </div>
   <p>
    The following rules describe how the server resolves
          references to function names for function creation and
          invocation:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       Built-in functions and loadable functions
      </p>
      <p>
       An error occurs if you try to create a loadable function
              with the same name as a built-in function.
      </p>
      <p>
       <code class="literal">
        IF NOT EXISTS
       </code>
       has no effect in such
              cases. See
       <a class="xref" href="create-function-loadable.html" title="15.7.4.1 CREATE FUNCTION Statement for Loadable Functions">
        Section 15.7.4.1, “CREATE FUNCTION Statement for Loadable Functions”
       </a>
       , for
              more information.
      </p>
     </li>
     <li class="listitem">
      <p>
       Built-in functions and stored functions
      </p>
      <p>
       It is possible to create a stored function with the same
              name as a built-in function, but to invoke the stored
              function it is necessary to qualify it with a schema name.
              For example, if you create a stored function named
       <code class="literal">
        PI
       </code>
       in the
       <code class="literal">
        test
       </code>
       schema, invoke it as
       <code class="literal">
        test.PI()
       </code>
       because
              the server resolves
       <a class="link" href="mathematical-functions.html#function_pi">
        <code class="literal">
         PI()
        </code>
       </a>
       without a qualifier as a reference to the built-in
              function. The server generates a warning if the stored
              function name collides with a built-in function name. The
              warning can be displayed with
       <a class="link" href="show-warnings.html" title="15.7.7.42 SHOW WARNINGS Statement">
        <code class="literal">
         SHOW
              WARNINGS
        </code>
       </a>
       .
      </p>
      <p>
       <code class="literal">
        IF NOT EXISTS
       </code>
       has no effect in such
              cases; see
       <a class="xref" href="create-procedure.html" title="15.1.17 CREATE PROCEDURE and CREATE FUNCTION Statements">
        Section 15.1.17, “CREATE PROCEDURE and CREATE FUNCTION Statements”
       </a>
       .
      </p>
     </li>
     <li class="listitem">
      <p>
       Loadable functions and stored functions
      </p>
      <p>
       It is possible to create a stored function with the same
              name as an existing loadable function, or the other way
              around. The server generates a warning if a proposed
              stored function name collides with an existing loadable
              function name, or if a proposed loadable function name
              would be the same as that of an existing stored function.
              In either case, once both functions exist, it is necessary
              thereafter to qualify the stored function with a schema
              name when invoking it; the server assumes in such cases
              that the unqualified name refers to the loadable function.
      </p>
      <p>
       MySQL 8.4 supports
       <code class="literal">
        IF NOT
              EXISTS
       </code>
       with
       <a class="link" href="create-function.html" title="15.1.14 CREATE FUNCTION Statement">
        <code class="literal">
         CREATE
              FUNCTION
        </code>
       </a>
       statements, but it has no effect in
              such cases.
      </p>
     </li>
    </ul>
   </div>
   <p>
    The preceding function name resolution rules have implications
          for upgrading to versions of MySQL that implement new built-in
          functions:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       If you have already created a loadable function with a
              given name and upgrade MySQL to a version that implements
              a new built-in function with the same name, the loadable
              function becomes inaccessible. To correct this, use
       <a class="link" href="drop-function.html" title="15.1.26 DROP FUNCTION Statement">
        <code class="literal">
         DROP FUNCTION
        </code>
       </a>
       to drop the
              loadable function and
       <a class="link" href="create-function.html" title="15.1.14 CREATE FUNCTION Statement">
        <code class="literal">
         CREATE
              FUNCTION
        </code>
       </a>
       to re-create the loadable function with
              a different nonconflicting name. Then modify any affected
              code to use the new name.
      </p>
     </li>
     <li class="listitem">
      <p>
       If a new version of MySQL implements a built-in function
              or loadable function with the same name as an existing
              stored function, you have two choices: Rename the stored
              function to use a nonconflicting name, or change any calls
              to the function that do not do so already to use a schema
              qualifier
              (
       <code class="literal">
        <em class="replaceable">
         <code>
          schema_name
         </code>
        </em>
        .
        <em class="replaceable">
         <code>
          func_name
         </code>
        </em>
        ()
       </code>
       syntax). In either case, modify any affected code
              accordingly.
      </p>
     </li>
    </ul>
   </div>
  </div>
 </div>
 <br/>
</div>
