提交 60774e82 编写于 作者: P Peter Eisentraut

Even better example for operator precedence mis-parsing.

上级 2a398726
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.40 2001/02/24 18:09:51 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/syntax.sgml,v 1.41 2001/02/25 16:05:21 petere Exp $
--> -->
<chapter id="sql-syntax"> <chapter id="sql-syntax">
...@@ -905,17 +905,17 @@ sqrt(2) ...@@ -905,17 +905,17 @@ sqrt(2)
you will sometimes need to add parentheses when using combinations you will sometimes need to add parentheses when using combinations
of binary and unary operators. For instance of binary and unary operators. For instance
<programlisting> <programlisting>
SELECT 5 ! + 6; SELECT 5 ! - 6;
</programlisting> </programlisting>
will be parsed as will be parsed as
<programlisting> <programlisting>
SELECT 5 ! (+ 6); SELECT 5 ! (- 6);
</programlisting> </programlisting>
because the parser has no idea -- until it is too late -- that because the parser has no idea -- until it is too late -- that
<token>!</token> is defined as a postfix operator, not an infix one. <token>!</token> is defined as a postfix operator, not an infix one.
To get the desired behavior in this case, you must write To get the desired behavior in this case, you must write
<programlisting> <programlisting>
SELECT (5 !) + 6; SELECT (5 !) - 6;
</programlisting> </programlisting>
This is the price one pays for extensibility. This is the price one pays for extensibility.
</para> </para>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册