Author: paul
Date: 2010-08-19 18:55:36 +0200 (Thu, 19 Aug 2010)
New Revision: 22337
Log:
r62473@frost: paul | 2010-08-19 11:54:50 -0500
Updates for expression syntax
(WL#5422)
Modified:
trunk/refman-4.1/language-structure.xml
trunk/refman-5.0/language-structure-core.xml
trunk/refman-5.1/language-structure-core.xml
trunk/refman-5.5/language-structure-core.xml
trunk/refman-5.6/language-structure-core.xml
trunk/refman-6.0/language-structure-core.xml
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/mysqldoc/trunk:35498
07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/trunk:41634
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:62467
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:35498
07c7e7b4-24e3-4b51-89d0-6dc09fec6bec:/mysqldoc-local/trunk:41634
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:62473
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/refman-4.1/language-structure.xml
===================================================================
--- trunk/refman-4.1/language-structure.xml 2010-08-19 16:44:19 UTC (rev 22336)
+++ trunk/refman-4.1/language-structure.xml 2010-08-19 16:55:36 UTC (rev 22337)
Changed blocks: 4, Lines Added: 77, Lines Deleted: 93; 12098 bytes
@@ -2197,79 +2197,79 @@
The following rules define expression syntax in MySQL. The grammar
shown here is based on that given in the
<filename>sql/sql_yacc.yy</filename> file of MySQL source
- distributions. See also the notes after the grammar for additional
+ distributions. See the notes after the grammar for additional
information about some of the terms. Operator precedence is given
in <xref linkend="operator-precedence"/>.
</para>
<programlisting>
<replaceable>expr</replaceable>:
- <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
- NOT <replaceable>expr</replaceable>
- ! <replaceable>expr</replaceable>
- <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
- <replaceable>boolean_primary</replaceable>
+ <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
+ | NOT <replaceable>expr</replaceable>
+ | ! <replaceable>expr</replaceable>
+ | <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
+ | <replaceable>boolean_primary</replaceable>
<replaceable>boolean_primary</replaceable>:
- <replaceable>boolean_primary</replaceable> IS [NOT] NULL
- <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
- <replaceable>predicate</replaceable>
+ <replaceable>boolean_primary</replaceable> IS [NOT] NULL
+ | <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
+ | <replaceable>predicate</replaceable>
<replaceable>comparison_operator</replaceable>: = | >= | > | <= | < | <> | !=
<replaceable>predicate</replaceable>:
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
- <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
- <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable>
+ <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
+ | <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
+ | <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
+ | <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable>
<replaceable>bit_expr</replaceable>:
- <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
- <replaceable>simple_expr</replaceable>
+ <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
+ | <replaceable>simple_expr</replaceable>
<replaceable>simple_expr</replaceable>:
- <replaceable>literal</replaceable>
- <replaceable>identifier</replaceable>
- <replaceable>function_call</replaceable>
- <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
- <replaceable>param_marker</replaceable>
- <replaceable>variable</replaceable>
- <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
- + <replaceable>simple_expr</replaceable>
- - <replaceable>simple_expr</replaceable>
- ~ <replaceable>simple_expr</replaceable>
- ! <replaceable>simple_expr</replaceable>
- BINARY <replaceable>simple_expr</replaceable>
- (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- (<replaceable>subquery</replaceable>)
- EXISTS (<replaceable>subquery</replaceable>)
- { <replaceable>identifier</replaceable> <replaceable>expr</replaceable> }
- <replaceable>match_expr</replaceable>
- <replaceable>case_expr</replaceable>
- <replaceable>interval_expr</replaceable>
+ <replaceable>literal</replaceable>
+ | <replaceable>identifier</replaceable>
+ | <replaceable>function_call</replaceable>
+ | <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
+ | <replaceable>param_marker</replaceable>
+ | <replaceable>variable</replaceable>
+ | <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
+ | + <replaceable>simple_expr</replaceable>
+ | - <replaceable>simple_expr</replaceable>
+ | ~ <replaceable>simple_expr</replaceable>
+ | ! <replaceable>simple_expr</replaceable>
+ | BINARY <replaceable>simple_expr</replaceable>
+ | (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | (<replaceable>subquery</replaceable>)
+ | EXISTS (<replaceable>subquery</replaceable>)
+ | {<replaceable>identifier</replaceable> <replaceable>expr</replaceable>}
+ | <replaceable>match_expr</replaceable>
+ | <replaceable>case_expr</replaceable>
+ | <replaceable>interval_expr</replaceable>
</programlisting>
<para>
@@ -2286,7 +2286,7 @@
<para>
Variables can be user variables, system variables, or stored
- program local variables or parameters.
+ program local variables or parameters:
</para>
<itemizedlist>
@@ -2330,10 +2330,12 @@
</para>
<para>
- <literal>{ <replaceable>identifier</replaceable>
- <replaceable>expr</replaceable> }</literal> is ODBC escape syntax
+ <literal>{<replaceable>identifier</replaceable>
+ <replaceable>expr</replaceable>}</literal> is ODBC escape syntax
and is accepted for ODBC compatibility. The value is
- <replaceable>expr</replaceable>.
+ <replaceable>expr</replaceable>. The curly braces in the syntax
+ should be written literally; they are not metasyntax as used
+ elsewhere in syntax descriptions.
</para>
<para>
@@ -2353,44 +2355,26 @@
interval. The syntax is <literal>INTERVAL
<replaceable>expr</replaceable>
<replaceable>unit</replaceable></literal>, where
- <replaceable>unit</replaceable> is an interval specifier such as
+ <replaceable>unit</replaceable> is a specifier such as
<literal>HOUR</literal>, <literal>DAY</literal>, or
- <literal>WEEK</literal>. For the full list of unit specifiers, see
- the description of the <literal role="func">DATE_ADD()</literal>
- function in <xref linkend="date-and-time-functions"/>.
+ <literal>WEEK</literal>. For the full list of
+ <replaceable>unit</replaceable> specifiers, see the description of
+ the <literal role="func">DATE_ADD()</literal> function in
+ <xref linkend="date-and-time-functions"/>.
</para>
<para>
- The meaning of some operators depends on the SQL mode:
+ The meaning of the <literal role="op" condition="or">||</literal>
+ operator depends on the SQL mode. By default,
+ <literal role="op" condition="or">||</literal> is a logical
+ <literal role="op">OR</literal> operator. With
+ <literal role="sqlmode">PIPES_AS_CONCAT</literal> enabled,
+ <literal role="op" condition="or">||</literal> is string
+ concatenation, with a precedence between
+ <literal role="op" condition="bitwise-xor">^</literal> and the
+ unary operators. See <xref linkend="server-sql-mode"/>.
</para>
- <itemizedlist>
-
- <listitem>
- <para>
- With <literal role="sqlmode">PIPES_AS_CONCAT</literal>
- enabled, <literal role="op" condition="or">||</literal> is
- string concatenation, not logical
- <literal role="op">OR</literal>, with a precedence between
- <literal role="op" condition="bitwise-xor">^</literal> and the
- unary operators.
- </para>
- </listitem>
-
- <listitem>
- <para>
- With <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
- enabled, <literal>NOT</literal> has the same precedence as
- <literal role="op" condition="not">!</literal>.
- </para>
- </listitem>
-
- </itemizedlist>
-
- <para>
- See <xref linkend="server-sql-mode"/>.
- </para>
-
</section>
<section id="comments">
Modified: trunk/refman-5.0/language-structure-core.xml
===================================================================
--- trunk/refman-5.0/language-structure-core.xml 2010-08-19 16:44:19 UTC (rev 22336)
+++ trunk/refman-5.0/language-structure-core.xml 2010-08-19 16:55:36 UTC (rev 22337)
Changed blocks: 6, Lines Added: 79, Lines Deleted: 72; 12091 bytes
@@ -2405,79 +2405,79 @@
The following rules define expression syntax in MySQL. The grammar
shown here is based on that given in the
<filename>sql/sql_yacc.yy</filename> file of MySQL source
- distributions. See also the notes after the grammar for additional
+ distributions. See the notes after the grammar for additional
information about some of the terms. Operator precedence is given
in <xref linkend="operator-precedence"/>.
</para>
<programlisting>
<replaceable>expr</replaceable>:
- <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
- NOT <replaceable>expr</replaceable>
- ! <replaceable>expr</replaceable>
- <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
- <replaceable>boolean_primary</replaceable>
+ <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
+ | NOT <replaceable>expr</replaceable>
+ | ! <replaceable>expr</replaceable>
+ | <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
+ | <replaceable>boolean_primary</replaceable>
<replaceable>boolean_primary</replaceable>:
- <replaceable>boolean_primary</replaceable> IS [NOT] NULL
- <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
- <replaceable>predicate</replaceable>
+ <replaceable>boolean_primary</replaceable> IS [NOT] NULL
+ | <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
+ | <replaceable>predicate</replaceable>
<replaceable>comparison_operator</replaceable>: = | >= | > | <= | < | <> | !=
<replaceable>predicate</replaceable>:
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
- <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
- <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable>
+ <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
+ | <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
+ | <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
+ | <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable>
<replaceable>bit_expr</replaceable>:
- <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
- <replaceable>simple_expr</replaceable>
+ <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
+ | <replaceable>simple_expr</replaceable>
<replaceable>simple_expr</replaceable>:
- <replaceable>literal</replaceable>
- <replaceable>identifier</replaceable>
- <replaceable>function_call</replaceable>
- <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
- <replaceable>param_marker</replaceable>
- <replaceable>variable</replaceable>
- <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
- + <replaceable>simple_expr</replaceable>
- - <replaceable>simple_expr</replaceable>
- ~ <replaceable>simple_expr</replaceable>
- ! <replaceable>simple_expr</replaceable>
- BINARY <replaceable>simple_expr</replaceable>
- (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- (<replaceable>subquery</replaceable>)
- EXISTS (<replaceable>subquery</replaceable>)
- { <replaceable>identifier</replaceable> <replaceable>expr</replaceable> }
- <replaceable>match_expr</replaceable>
- <replaceable>case_expr</replaceable>
- <replaceable>interval_expr</replaceable>
+ <replaceable>literal</replaceable>
+ | <replaceable>identifier</replaceable>
+ | <replaceable>function_call</replaceable>
+ | <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
+ | <replaceable>param_marker</replaceable>
+ | <replaceable>variable</replaceable>
+ | <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
+ | + <replaceable>simple_expr</replaceable>
+ | - <replaceable>simple_expr</replaceable>
+ | ~ <replaceable>simple_expr</replaceable>
+ | ! <replaceable>simple_expr</replaceable>
+ | BINARY <replaceable>simple_expr</replaceable>
+ | (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | (<replaceable>subquery</replaceable>)
+ | EXISTS (<replaceable>subquery</replaceable>)
+ | {<replaceable>identifier</replaceable> <replaceable>expr</replaceable>}
+ | <replaceable>match_expr</replaceable>
+ | <replaceable>case_expr</replaceable>
+ | <replaceable>interval_expr</replaceable>
</programlisting>
<para>
@@ -2494,7 +2494,7 @@
<para>
Variables can be user variables, system variables, or stored
- program local variables or parameters.
+ program local variables or parameters:
</para>
<itemizedlist>
@@ -2538,10 +2538,12 @@
</para>
<para>
- <literal>{ <replaceable>identifier</replaceable>
- <replaceable>expr</replaceable> }</literal> is ODBC escape syntax
+ <literal>{<replaceable>identifier</replaceable>
+ <replaceable>expr</replaceable>}</literal> is ODBC escape syntax
and is accepted for ODBC compatibility. The value is
- <replaceable>expr</replaceable>.
+ <replaceable>expr</replaceable>. The curly braces in the syntax
+ should be written literally; they are not metasyntax as used
+ elsewhere in syntax descriptions.
</para>
<para>
@@ -2561,11 +2563,12 @@
interval. The syntax is <literal>INTERVAL
<replaceable>expr</replaceable>
<replaceable>unit</replaceable></literal>, where
- <replaceable>unit</replaceable> is an interval specifier such as
+ <replaceable>unit</replaceable> is a specifier such as
<literal>HOUR</literal>, <literal>DAY</literal>, or
- <literal>WEEK</literal>. For the full list of unit specifiers, see
- the description of the <literal role="func">DATE_ADD()</literal>
- function in <xref linkend="date-and-time-functions"/>.
+ <literal>WEEK</literal>. For the full list of
+ <replaceable>unit</replaceable> specifiers, see the description of
+ the <literal role="func">DATE_ADD()</literal> function in
+ <xref linkend="date-and-time-functions"/>.
</para>
<para>
@@ -2576,10 +2579,11 @@
<listitem>
<para>
- With <literal role="sqlmode">PIPES_AS_CONCAT</literal>
- enabled, <literal role="op" condition="or">||</literal> is
- string concatenation, not logical
- <literal role="op">OR</literal>, with a precedence between
+ By default, <literal role="op" condition="or">||</literal> is
+ a logical <literal role="op">OR</literal> operator. With
+ <literal role="sqlmode">PIPES_AS_CONCAT</literal> enabled,
+ <literal role="op" condition="or">||</literal> is string
+ concatenation, with a precedence between
<literal role="op" condition="bitwise-xor">^</literal> and the
unary operators.
</para>
@@ -2587,9 +2591,12 @@
<listitem>
<para>
- With <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
- enabled, <literal>NOT</literal> has the same precedence as
- <literal role="op" condition="not">!</literal>.
+ By default, <literal role="op" condition="not">!</literal> has
+ a higher precedence than <literal>NOT</literal> as of MySQL
+ 5.0.2. For earlier versions, or from 5.0.2 on with
+ <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal> enabled,
+ <literal role="op" condition="not">!</literal> and
+ <literal>NOT</literal> have the same precedence.
</para>
</listitem>
Modified: trunk/refman-5.1/language-structure-core.xml
===================================================================
--- trunk/refman-5.1/language-structure-core.xml 2010-08-19 16:44:19 UTC (rev 22336)
+++ trunk/refman-5.1/language-structure-core.xml 2010-08-19 16:55:36 UTC (rev 22337)
Changed blocks: 6, Lines Added: 78, Lines Deleted: 72; 12024 bytes
@@ -2798,79 +2798,79 @@
The following rules define expression syntax in MySQL. The grammar
shown here is based on that given in the
<filename>sql/sql_yacc.yy</filename> file of MySQL source
- distributions. See also the notes after the grammar for additional
+ distributions. See the notes after the grammar for additional
information about some of the terms. Operator precedence is given
in <xref linkend="operator-precedence"/>.
</para>
<programlisting>
<replaceable>expr</replaceable>:
- <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
- NOT <replaceable>expr</replaceable>
- ! <replaceable>expr</replaceable>
- <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
- <replaceable>boolean_primary</replaceable>
+ <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
+ | NOT <replaceable>expr</replaceable>
+ | ! <replaceable>expr</replaceable>
+ | <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
+ | <replaceable>boolean_primary</replaceable>
<replaceable>boolean_primary</replaceable>:
- <replaceable>boolean_primary</replaceable> IS [NOT] NULL
- <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
- <replaceable>predicate</replaceable>
+ <replaceable>boolean_primary</replaceable> IS [NOT] NULL
+ | <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
+ | <replaceable>predicate</replaceable>
<replaceable>comparison_operator</replaceable>: = | >= | > | <= | < | <> | !=
<replaceable>predicate</replaceable>:
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
- <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
- <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable>
+ <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
+ | <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
+ | <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
+ | <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable>
<replaceable>bit_expr</replaceable>:
- <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
- <replaceable>simple_expr</replaceable>
+ <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
+ | <replaceable>simple_expr</replaceable>
<replaceable>simple_expr</replaceable>:
- <replaceable>literal</replaceable>
- <replaceable>identifier</replaceable>
- <replaceable>function_call</replaceable>
- <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
- <replaceable>param_marker</replaceable>
- <replaceable>variable</replaceable>
- <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
- + <replaceable>simple_expr</replaceable>
- - <replaceable>simple_expr</replaceable>
- ~ <replaceable>simple_expr</replaceable>
- ! <replaceable>simple_expr</replaceable>
- BINARY <replaceable>simple_expr</replaceable>
- (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- (<replaceable>subquery</replaceable>)
- EXISTS (<replaceable>subquery</replaceable>)
- { <replaceable>identifier</replaceable> <replaceable>expr</replaceable> }
- <replaceable>match_expr</replaceable>
- <replaceable>case_expr</replaceable>
- <replaceable>interval_expr</replaceable>
+ <replaceable>literal</replaceable>
+ | <replaceable>identifier</replaceable>
+ | <replaceable>function_call</replaceable>
+ | <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
+ | <replaceable>param_marker</replaceable>
+ | <replaceable>variable</replaceable>
+ | <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
+ | + <replaceable>simple_expr</replaceable>
+ | - <replaceable>simple_expr</replaceable>
+ | ~ <replaceable>simple_expr</replaceable>
+ | ! <replaceable>simple_expr</replaceable>
+ | BINARY <replaceable>simple_expr</replaceable>
+ | (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | (<replaceable>subquery</replaceable>)
+ | EXISTS (<replaceable>subquery</replaceable>)
+ | {<replaceable>identifier</replaceable> <replaceable>expr</replaceable>}
+ | <replaceable>match_expr</replaceable>
+ | <replaceable>case_expr</replaceable>
+ | <replaceable>interval_expr</replaceable>
</programlisting>
<para>
@@ -2887,7 +2887,7 @@
<para>
Variables can be user variables, system variables, or stored
- program local variables or parameters.
+ program local variables or parameters:
</para>
<itemizedlist>
@@ -2931,10 +2931,12 @@
</para>
<para>
- <literal>{ <replaceable>identifier</replaceable>
- <replaceable>expr</replaceable> }</literal> is ODBC escape syntax
+ <literal>{<replaceable>identifier</replaceable>
+ <replaceable>expr</replaceable>}</literal> is ODBC escape syntax
and is accepted for ODBC compatibility. The value is
- <replaceable>expr</replaceable>.
+ <replaceable>expr</replaceable>. The curly braces in the syntax
+ should be written literally; they are not metasyntax as used
+ elsewhere in syntax descriptions.
</para>
<para>
@@ -2954,11 +2956,12 @@
interval. The syntax is <literal>INTERVAL
<replaceable>expr</replaceable>
<replaceable>unit</replaceable></literal>, where
- <replaceable>unit</replaceable> is an interval specifier such as
+ <replaceable>unit</replaceable> is a specifier such as
<literal>HOUR</literal>, <literal>DAY</literal>, or
- <literal>WEEK</literal>. For the full list of unit specifiers, see
- the description of the <literal role="func">DATE_ADD()</literal>
- function in <xref linkend="date-and-time-functions"/>.
+ <literal>WEEK</literal>. For the full list of
+ <replaceable>unit</replaceable> specifiers, see the description of
+ the <literal role="func">DATE_ADD()</literal> function in
+ <xref linkend="date-and-time-functions"/>.
</para>
<para>
@@ -2969,10 +2972,11 @@
<listitem>
<para>
- With <literal role="sqlmode">PIPES_AS_CONCAT</literal>
- enabled, <literal role="op" condition="or">||</literal> is
- string concatenation, not logical
- <literal role="op">OR</literal>, with a precedence between
+ By default, <literal role="op" condition="or">||</literal> is
+ a logical <literal role="op">OR</literal> operator. With
+ <literal role="sqlmode">PIPES_AS_CONCAT</literal> enabled,
+ <literal role="op" condition="or">||</literal> is string
+ concatenation, with a precedence between
<literal role="op" condition="bitwise-xor">^</literal> and the
unary operators.
</para>
@@ -2980,9 +2984,11 @@
<listitem>
<para>
- With <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
- enabled, <literal>NOT</literal> has the same precedence as
- <literal role="op" condition="not">!</literal>.
+ By default, <literal role="op" condition="not">!</literal> has
+ a higher precedence than <literal>NOT</literal>. With
+ <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal> enabled,
+ <literal role="op" condition="not">!</literal> and
+ <literal>NOT</literal> have the same precedence.
</para>
</listitem>
Modified: trunk/refman-5.5/language-structure-core.xml
===================================================================
--- trunk/refman-5.5/language-structure-core.xml 2010-08-19 16:44:19 UTC (rev 22336)
+++ trunk/refman-5.5/language-structure-core.xml 2010-08-19 16:55:36 UTC (rev 22337)
Changed blocks: 6, Lines Added: 78, Lines Deleted: 72; 12024 bytes
@@ -2769,79 +2769,79 @@
The following rules define expression syntax in MySQL. The grammar
shown here is based on that given in the
<filename>sql/sql_yacc.yy</filename> file of MySQL source
- distributions. See also the notes after the grammar for additional
+ distributions. See the notes after the grammar for additional
information about some of the terms. Operator precedence is given
in <xref linkend="operator-precedence"/>.
</para>
<programlisting>
<replaceable>expr</replaceable>:
- <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
- NOT <replaceable>expr</replaceable>
- ! <replaceable>expr</replaceable>
- <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
- <replaceable>boolean_primary</replaceable>
+ <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
+ | NOT <replaceable>expr</replaceable>
+ | ! <replaceable>expr</replaceable>
+ | <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
+ | <replaceable>boolean_primary</replaceable>
<replaceable>boolean_primary</replaceable>:
- <replaceable>boolean_primary</replaceable> IS [NOT] NULL
- <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
- <replaceable>predicate</replaceable>
+ <replaceable>boolean_primary</replaceable> IS [NOT] NULL
+ | <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
+ | <replaceable>predicate</replaceable>
<replaceable>comparison_operator</replaceable>: = | >= | > | <= | < | <> | !=
<replaceable>predicate</replaceable>:
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
- <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
- <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable>
+ <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
+ | <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
+ | <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
+ | <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable>
<replaceable>bit_expr</replaceable>:
- <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
- <replaceable>simple_expr</replaceable>
+ <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
+ | <replaceable>simple_expr</replaceable>
<replaceable>simple_expr</replaceable>:
- <replaceable>literal</replaceable>
- <replaceable>identifier</replaceable>
- <replaceable>function_call</replaceable>
- <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
- <replaceable>param_marker</replaceable>
- <replaceable>variable</replaceable>
- <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
- + <replaceable>simple_expr</replaceable>
- - <replaceable>simple_expr</replaceable>
- ~ <replaceable>simple_expr</replaceable>
- ! <replaceable>simple_expr</replaceable>
- BINARY <replaceable>simple_expr</replaceable>
- (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- (<replaceable>subquery</replaceable>)
- EXISTS (<replaceable>subquery</replaceable>)
- { <replaceable>identifier</replaceable> <replaceable>expr</replaceable> }
- <replaceable>match_expr</replaceable>
- <replaceable>case_expr</replaceable>
- <replaceable>interval_expr</replaceable>
+ <replaceable>literal</replaceable>
+ | <replaceable>identifier</replaceable>
+ | <replaceable>function_call</replaceable>
+ | <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
+ | <replaceable>param_marker</replaceable>
+ | <replaceable>variable</replaceable>
+ | <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
+ | + <replaceable>simple_expr</replaceable>
+ | - <replaceable>simple_expr</replaceable>
+ | ~ <replaceable>simple_expr</replaceable>
+ | ! <replaceable>simple_expr</replaceable>
+ | BINARY <replaceable>simple_expr</replaceable>
+ | (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | (<replaceable>subquery</replaceable>)
+ | EXISTS (<replaceable>subquery</replaceable>)
+ | {<replaceable>identifier</replaceable> <replaceable>expr</replaceable>}
+ | <replaceable>match_expr</replaceable>
+ | <replaceable>case_expr</replaceable>
+ | <replaceable>interval_expr</replaceable>
</programlisting>
<para>
@@ -2858,7 +2858,7 @@
<para>
Variables can be user variables, system variables, or stored
- program local variables or parameters.
+ program local variables or parameters:
</para>
<itemizedlist>
@@ -2902,10 +2902,12 @@
</para>
<para>
- <literal>{ <replaceable>identifier</replaceable>
- <replaceable>expr</replaceable> }</literal> is ODBC escape syntax
+ <literal>{<replaceable>identifier</replaceable>
+ <replaceable>expr</replaceable>}</literal> is ODBC escape syntax
and is accepted for ODBC compatibility. The value is
- <replaceable>expr</replaceable>.
+ <replaceable>expr</replaceable>. The curly braces in the syntax
+ should be written literally; they are not metasyntax as used
+ elsewhere in syntax descriptions.
</para>
<para>
@@ -2925,11 +2927,12 @@
interval. The syntax is <literal>INTERVAL
<replaceable>expr</replaceable>
<replaceable>unit</replaceable></literal>, where
- <replaceable>unit</replaceable> is an interval specifier such as
+ <replaceable>unit</replaceable> is a specifier such as
<literal>HOUR</literal>, <literal>DAY</literal>, or
- <literal>WEEK</literal>. For the full list of unit specifiers, see
- the description of the <literal role="func">DATE_ADD()</literal>
- function in <xref linkend="date-and-time-functions"/>.
+ <literal>WEEK</literal>. For the full list of
+ <replaceable>unit</replaceable> specifiers, see the description of
+ the <literal role="func">DATE_ADD()</literal> function in
+ <xref linkend="date-and-time-functions"/>.
</para>
<para>
@@ -2940,10 +2943,11 @@
<listitem>
<para>
- With <literal role="sqlmode">PIPES_AS_CONCAT</literal>
- enabled, <literal role="op" condition="or">||</literal> is
- string concatenation, not logical
- <literal role="op">OR</literal>, with a precedence between
+ By default, <literal role="op" condition="or">||</literal> is
+ a logical <literal role="op">OR</literal> operator. With
+ <literal role="sqlmode">PIPES_AS_CONCAT</literal> enabled,
+ <literal role="op" condition="or">||</literal> is string
+ concatenation, with a precedence between
<literal role="op" condition="bitwise-xor">^</literal> and the
unary operators.
</para>
@@ -2951,9 +2955,11 @@
<listitem>
<para>
- With <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
- enabled, <literal>NOT</literal> has the same precedence as
- <literal role="op" condition="not">!</literal>.
+ By default, <literal role="op" condition="not">!</literal> has
+ a higher precedence than <literal>NOT</literal>. With
+ <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal> enabled,
+ <literal role="op" condition="not">!</literal> and
+ <literal>NOT</literal> have the same precedence.
</para>
</listitem>
Modified: trunk/refman-5.6/language-structure-core.xml
===================================================================
--- trunk/refman-5.6/language-structure-core.xml 2010-08-19 16:44:19 UTC (rev 22336)
+++ trunk/refman-5.6/language-structure-core.xml 2010-08-19 16:55:36 UTC (rev 22337)
Changed blocks: 6, Lines Added: 78, Lines Deleted: 72; 12024 bytes
@@ -2769,79 +2769,79 @@
The following rules define expression syntax in MySQL. The grammar
shown here is based on that given in the
<filename>sql/sql_yacc.yy</filename> file of MySQL source
- distributions. See also the notes after the grammar for additional
+ distributions. See the notes after the grammar for additional
information about some of the terms. Operator precedence is given
in <xref linkend="operator-precedence"/>.
</para>
<programlisting>
<replaceable>expr</replaceable>:
- <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
- NOT <replaceable>expr</replaceable>
- ! <replaceable>expr</replaceable>
- <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
- <replaceable>boolean_primary</replaceable>
+ <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
+ | NOT <replaceable>expr</replaceable>
+ | ! <replaceable>expr</replaceable>
+ | <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
+ | <replaceable>boolean_primary</replaceable>
<replaceable>boolean_primary</replaceable>:
- <replaceable>boolean_primary</replaceable> IS [NOT] NULL
- <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
- <replaceable>predicate</replaceable>
+ <replaceable>boolean_primary</replaceable> IS [NOT] NULL
+ | <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
+ | <replaceable>predicate</replaceable>
<replaceable>comparison_operator</replaceable>: = | >= | > | <= | < | <> | !=
<replaceable>predicate</replaceable>:
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
- <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
- <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable>
+ <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
+ | <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
+ | <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
+ | <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable>
<replaceable>bit_expr</replaceable>:
- <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
- <replaceable>simple_expr</replaceable>
+ <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
+ | <replaceable>simple_expr</replaceable>
<replaceable>simple_expr</replaceable>:
- <replaceable>literal</replaceable>
- <replaceable>identifier</replaceable>
- <replaceable>function_call</replaceable>
- <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
- <replaceable>param_marker</replaceable>
- <replaceable>variable</replaceable>
- <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
- + <replaceable>simple_expr</replaceable>
- - <replaceable>simple_expr</replaceable>
- ~ <replaceable>simple_expr</replaceable>
- ! <replaceable>simple_expr</replaceable>
- BINARY <replaceable>simple_expr</replaceable>
- (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- (<replaceable>subquery</replaceable>)
- EXISTS (<replaceable>subquery</replaceable>)
- { <replaceable>identifier</replaceable> <replaceable>expr</replaceable> }
- <replaceable>match_expr</replaceable>
- <replaceable>case_expr</replaceable>
- <replaceable>interval_expr</replaceable>
+ <replaceable>literal</replaceable>
+ | <replaceable>identifier</replaceable>
+ | <replaceable>function_call</replaceable>
+ | <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
+ | <replaceable>param_marker</replaceable>
+ | <replaceable>variable</replaceable>
+ | <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
+ | + <replaceable>simple_expr</replaceable>
+ | - <replaceable>simple_expr</replaceable>
+ | ~ <replaceable>simple_expr</replaceable>
+ | ! <replaceable>simple_expr</replaceable>
+ | BINARY <replaceable>simple_expr</replaceable>
+ | (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | (<replaceable>subquery</replaceable>)
+ | EXISTS (<replaceable>subquery</replaceable>)
+ | {<replaceable>identifier</replaceable> <replaceable>expr</replaceable>}
+ | <replaceable>match_expr</replaceable>
+ | <replaceable>case_expr</replaceable>
+ | <replaceable>interval_expr</replaceable>
</programlisting>
<para>
@@ -2858,7 +2858,7 @@
<para>
Variables can be user variables, system variables, or stored
- program local variables or parameters.
+ program local variables or parameters:
</para>
<itemizedlist>
@@ -2902,10 +2902,12 @@
</para>
<para>
- <literal>{ <replaceable>identifier</replaceable>
- <replaceable>expr</replaceable> }</literal> is ODBC escape syntax
+ <literal>{<replaceable>identifier</replaceable>
+ <replaceable>expr</replaceable>}</literal> is ODBC escape syntax
and is accepted for ODBC compatibility. The value is
- <replaceable>expr</replaceable>.
+ <replaceable>expr</replaceable>. The curly braces in the syntax
+ should be written literally; they are not metasyntax as used
+ elsewhere in syntax descriptions.
</para>
<para>
@@ -2925,11 +2927,12 @@
interval. The syntax is <literal>INTERVAL
<replaceable>expr</replaceable>
<replaceable>unit</replaceable></literal>, where
- <replaceable>unit</replaceable> is an interval specifier such as
+ <replaceable>unit</replaceable> is a specifier such as
<literal>HOUR</literal>, <literal>DAY</literal>, or
- <literal>WEEK</literal>. For the full list of unit specifiers, see
- the description of the <literal role="func">DATE_ADD()</literal>
- function in <xref linkend="date-and-time-functions"/>.
+ <literal>WEEK</literal>. For the full list of
+ <replaceable>unit</replaceable> specifiers, see the description of
+ the <literal role="func">DATE_ADD()</literal> function in
+ <xref linkend="date-and-time-functions"/>.
</para>
<para>
@@ -2940,10 +2943,11 @@
<listitem>
<para>
- With <literal role="sqlmode">PIPES_AS_CONCAT</literal>
- enabled, <literal role="op" condition="or">||</literal> is
- string concatenation, not logical
- <literal role="op">OR</literal>, with a precedence between
+ By default, <literal role="op" condition="or">||</literal> is
+ a logical <literal role="op">OR</literal> operator. With
+ <literal role="sqlmode">PIPES_AS_CONCAT</literal> enabled,
+ <literal role="op" condition="or">||</literal> is string
+ concatenation, with a precedence between
<literal role="op" condition="bitwise-xor">^</literal> and the
unary operators.
</para>
@@ -2951,9 +2955,11 @@
<listitem>
<para>
- With <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
- enabled, <literal>NOT</literal> has the same precedence as
- <literal role="op" condition="not">!</literal>.
+ By default, <literal role="op" condition="not">!</literal> has
+ a higher precedence than <literal>NOT</literal>. With
+ <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal> enabled,
+ <literal role="op" condition="not">!</literal> and
+ <literal>NOT</literal> have the same precedence.
</para>
</listitem>
Modified: trunk/refman-6.0/language-structure-core.xml
===================================================================
--- trunk/refman-6.0/language-structure-core.xml 2010-08-19 16:44:19 UTC (rev 22336)
+++ trunk/refman-6.0/language-structure-core.xml 2010-08-19 16:55:36 UTC (rev 22337)
Changed blocks: 6, Lines Added: 78, Lines Deleted: 72; 12024 bytes
@@ -2777,79 +2777,79 @@
The following rules define expression syntax in MySQL. The grammar
shown here is based on that given in the
<filename>sql/sql_yacc.yy</filename> file of MySQL source
- distributions. See also the notes after the grammar for additional
+ distributions. See the notes after the grammar for additional
information about some of the terms. Operator precedence is given
in <xref linkend="operator-precedence"/>.
</para>
<programlisting>
<replaceable>expr</replaceable>:
- <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
- <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
- NOT <replaceable>expr</replaceable>
- ! <replaceable>expr</replaceable>
- <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
- <replaceable>boolean_primary</replaceable>
+ <replaceable>expr</replaceable> OR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> || <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> XOR <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> AND <replaceable>expr</replaceable>
+ | <replaceable>expr</replaceable> && <replaceable>expr</replaceable>
+ | NOT <replaceable>expr</replaceable>
+ | ! <replaceable>expr</replaceable>
+ | <replaceable>boolean_primary</replaceable> IS [NOT] {TRUE | FALSE | UNKNOWN}
+ | <replaceable>boolean_primary</replaceable>
<replaceable>boolean_primary</replaceable>:
- <replaceable>boolean_primary</replaceable> IS [NOT] NULL
- <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
- <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
- <replaceable>predicate</replaceable>
+ <replaceable>boolean_primary</replaceable> IS [NOT] NULL
+ | <replaceable>boolean_primary</replaceable> <=> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> <replaceable>predicate</replaceable>
+ | <replaceable>boolean_primary</replaceable> <replaceable>comparison_operator</replaceable> {ALL | ANY} (<replaceable>subquery</replaceable>)
+ | <replaceable>predicate</replaceable>
<replaceable>comparison_operator</replaceable>: = | >= | > | <= | < | <> | !=
<replaceable>predicate</replaceable>:
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
- <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
- <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
- <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable>
+ <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>subquery</replaceable>)
+ | <replaceable>bit_expr</replaceable> [NOT] IN (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | <replaceable>bit_expr</replaceable> [NOT] BETWEEN <replaceable>bit_expr</replaceable> AND <replaceable>predicate</replaceable>
+ | <replaceable>bit_expr</replaceable> SOUNDS LIKE <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> [NOT] LIKE <replaceable>simple_expr</replaceable> [ESCAPE <replaceable>simple_expr</replaceable>]
+ | <replaceable>bit_expr</replaceable> [NOT] REGEXP <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable>
<replaceable>bit_expr</replaceable>:
- <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
- <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
- <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
- <replaceable>simple_expr</replaceable>
+ <replaceable>bit_expr</replaceable> | <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> & <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> << <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> >> <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> * <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> / <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> DIV <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> MOD <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> % <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> ^ <replaceable>bit_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> + <replaceable>interval_expr</replaceable>
+ | <replaceable>bit_expr</replaceable> - <replaceable>interval_expr</replaceable>
+ | <replaceable>simple_expr</replaceable>
<replaceable>simple_expr</replaceable>:
- <replaceable>literal</replaceable>
- <replaceable>identifier</replaceable>
- <replaceable>function_call</replaceable>
- <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
- <replaceable>param_marker</replaceable>
- <replaceable>variable</replaceable>
- <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
- + <replaceable>simple_expr</replaceable>
- - <replaceable>simple_expr</replaceable>
- ~ <replaceable>simple_expr</replaceable>
- ! <replaceable>simple_expr</replaceable>
- BINARY <replaceable>simple_expr</replaceable>
- (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
- (<replaceable>subquery</replaceable>)
- EXISTS (<replaceable>subquery</replaceable>)
- { <replaceable>identifier</replaceable> <replaceable>expr</replaceable> }
- <replaceable>match_expr</replaceable>
- <replaceable>case_expr</replaceable>
- <replaceable>interval_expr</replaceable>
+ <replaceable>literal</replaceable>
+ | <replaceable>identifier</replaceable>
+ | <replaceable>function_call</replaceable>
+ | <replaceable>simple_expr</replaceable> COLLATE <replaceable>collation_name</replaceable>
+ | <replaceable>param_marker</replaceable>
+ | <replaceable>variable</replaceable>
+ | <replaceable>simple_expr</replaceable> || <replaceable>simple_expr</replaceable>
+ | + <replaceable>simple_expr</replaceable>
+ | - <replaceable>simple_expr</replaceable>
+ | ~ <replaceable>simple_expr</replaceable>
+ | ! <replaceable>simple_expr</replaceable>
+ | BINARY <replaceable>simple_expr</replaceable>
+ | (<replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | ROW (<replaceable>expr</replaceable>, <replaceable>expr</replaceable> [, <replaceable>expr</replaceable>] ...)
+ | (<replaceable>subquery</replaceable>)
+ | EXISTS (<replaceable>subquery</replaceable>)
+ | {<replaceable>identifier</replaceable> <replaceable>expr</replaceable>}
+ | <replaceable>match_expr</replaceable>
+ | <replaceable>case_expr</replaceable>
+ | <replaceable>interval_expr</replaceable>
</programlisting>
<para>
@@ -2866,7 +2866,7 @@
<para>
Variables can be user variables, system variables, or stored
- program local variables or parameters.
+ program local variables or parameters:
</para>
<itemizedlist>
@@ -2910,10 +2910,12 @@
</para>
<para>
- <literal>{ <replaceable>identifier</replaceable>
- <replaceable>expr</replaceable> }</literal> is ODBC escape syntax
+ <literal>{<replaceable>identifier</replaceable>
+ <replaceable>expr</replaceable>}</literal> is ODBC escape syntax
and is accepted for ODBC compatibility. The value is
- <replaceable>expr</replaceable>.
+ <replaceable>expr</replaceable>. The curly braces in the syntax
+ should be written literally; they are not metasyntax as used
+ elsewhere in syntax descriptions.
</para>
<para>
@@ -2933,11 +2935,12 @@
interval. The syntax is <literal>INTERVAL
<replaceable>expr</replaceable>
<replaceable>unit</replaceable></literal>, where
- <replaceable>unit</replaceable> is an interval specifier such as
+ <replaceable>unit</replaceable> is a specifier such as
<literal>HOUR</literal>, <literal>DAY</literal>, or
- <literal>WEEK</literal>. For the full list of unit specifiers, see
- the description of the <literal role="func">DATE_ADD()</literal>
- function in <xref linkend="date-and-time-functions"/>.
+ <literal>WEEK</literal>. For the full list of
+ <replaceable>unit</replaceable> specifiers, see the description of
+ the <literal role="func">DATE_ADD()</literal> function in
+ <xref linkend="date-and-time-functions"/>.
</para>
<para>
@@ -2948,10 +2951,11 @@
<listitem>
<para>
- With <literal role="sqlmode">PIPES_AS_CONCAT</literal>
- enabled, <literal role="op" condition="or">||</literal> is
- string concatenation, not logical
- <literal role="op">OR</literal>, with a precedence between
+ By default, <literal role="op" condition="or">||</literal> is
+ a logical <literal role="op">OR</literal> operator. With
+ <literal role="sqlmode">PIPES_AS_CONCAT</literal> enabled,
+ <literal role="op" condition="or">||</literal> is string
+ concatenation, with a precedence between
<literal role="op" condition="bitwise-xor">^</literal> and the
unary operators.
</para>
@@ -2959,9 +2963,11 @@
<listitem>
<para>
- With <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
- enabled, <literal>NOT</literal> has the same precedence as
- <literal role="op" condition="not">!</literal>.
+ By default, <literal role="op" condition="not">!</literal> has
+ a higher precedence than <literal>NOT</literal>. With
+ <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal> enabled,
+ <literal role="op" condition="not">!</literal> and
+ <literal>NOT</literal> have the same precedence.
</para>
</listitem>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r22337 - in trunk: . refman-4.1 refman-5.0 refman-5.1 refman-5.5 refman-5.6 refman-6.0 | paul.dubois | 19 Aug |