Mop-up for removal of ':' and ';' operators ... like, say, actually
take 'em out of pg_operator. Also remove from scan.l's set of legal operator characters. Update documentation.
This commit is contained in:
parent
134fdf34d6
commit
766fb7f707
|
@ -1,5 +1,5 @@
|
|||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/oper.sgml,v 1.16 2000/05/02 20:01:52 thomas Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/oper.sgml,v 1.17 2000/08/12 05:15:24 tgl Exp $
|
||||
-->
|
||||
|
||||
<Chapter Id="operators">
|
||||
|
@ -83,20 +83,10 @@ Operator Ordering (decreasing precedence)
|
|||
<tbody>
|
||||
<row>
|
||||
<entry>
|
||||
UNION
|
||||
</entry>
|
||||
<entry>
|
||||
left
|
||||
</entry>
|
||||
<entry>
|
||||
SQL select construct
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
::
|
||||
</entry>
|
||||
<entry>
|
||||
left
|
||||
</entry>
|
||||
<entry>
|
||||
<productname>Postgres</productname> typecasting
|
||||
|
@ -135,31 +125,6 @@ right
|
|||
unary minus
|
||||
</entry>
|
||||
</row>
|
||||
<!--
|
||||
Deprecated as of v7.0
|
||||
<row>
|
||||
<entry>
|
||||
;
|
||||
</entry>
|
||||
<entry>
|
||||
left
|
||||
</entry>
|
||||
<entry>
|
||||
statement termination, logarithm
|
||||
</entry>
|
||||
</row>
|
||||
-->
|
||||
<row>
|
||||
<entry>
|
||||
:
|
||||
</entry>
|
||||
<entry>
|
||||
right
|
||||
</entry>
|
||||
<entry>
|
||||
exponentiation
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
|
|
||||
|
@ -173,6 +138,17 @@ start of interval
|
|||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
^
|
||||
</entry>
|
||||
<entry>
|
||||
left
|
||||
</entry>
|
||||
<entry>
|
||||
power, exclusive or
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
* / %
|
||||
</entry>
|
||||
<entry>
|
||||
|
@ -228,6 +204,7 @@ test for NOT NULL
|
|||
(all other operators)
|
||||
</entry>
|
||||
<entry>
|
||||
left
|
||||
</entry>
|
||||
<entry>
|
||||
native and user-defined
|
||||
|
@ -265,7 +242,7 @@ time interval overlap
|
|||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
LIKE
|
||||
LIKE ILIKE
|
||||
</entry>
|
||||
<entry>
|
||||
</entry>
|
||||
|
@ -486,19 +463,6 @@ logical union
|
|||
<ENTRY>Division</ENTRY>
|
||||
<ENTRY>4 / 2</ENTRY>
|
||||
</ROW>
|
||||
<ROW>
|
||||
<ENTRY> : </ENTRY>
|
||||
<ENTRY>Natural Exponentiation</ENTRY>
|
||||
<ENTRY>: 3.0</ENTRY>
|
||||
</ROW>
|
||||
<!--
|
||||
Deprecated in v7.0, esp. since ln() is available as a generic function.
|
||||
<ROW>
|
||||
<ENTRY> ; </ENTRY>
|
||||
<ENTRY>Natural Logarithm</ENTRY>
|
||||
<ENTRY>(; 5.0)</ENTRY>
|
||||
</ROW>
|
||||
-->
|
||||
<ROW>
|
||||
<ENTRY> @ </ENTRY>
|
||||
<ENTRY>Absolute value</ENTRY>
|
||||
|
@ -523,17 +487,6 @@ Deprecated in v7.0, esp. since ln() is available as a generic function.
|
|||
</TGROUP>
|
||||
</TABLE>
|
||||
</Para>
|
||||
|
||||
<para>
|
||||
<note>
|
||||
<para>
|
||||
Two operators, ":" and ";", are now deprecated and will be removed in
|
||||
the next release. Use the equivalent functions exp() and ln()
|
||||
instead.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.14 2000/07/21 17:58:49 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.15 2000/08/12 05:15:23 tgl Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
|
@ -177,15 +177,15 @@ CREATE
|
|||
is a sequence of up to NAMEDATALEN-1 (31 by default) characters
|
||||
from the following list:
|
||||
<literallayout>
|
||||
+ - * / < > = ~ ! @ # % ^ & | ` ? $ :
|
||||
+ - * / < > = ~ ! @ # % ^ & | ` ? $
|
||||
</literallayout>
|
||||
|
||||
There are a few restrictions on your choice of name:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
"$" and ":" cannot be defined as single-character operators,
|
||||
although they can be part of a multi-character operator name.
|
||||
"$" cannot be defined as a single-character operator,
|
||||
although it can be part of a multi-character operator name.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -199,7 +199,7 @@ CREATE
|
|||
A multi-character operator name cannot end in "+" or "-",
|
||||
unless the name also contains at least one of these characters:
|
||||
<literallayout>
|
||||
~ ! @ # % ^ & | ` ? $ :
|
||||
~ ! @ # % ^ & | ` ? $
|
||||
</literallayout>
|
||||
For example, <literal>@-</literal> is an allowed operator name,
|
||||
but <literal>*-</literal> is not.
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.185 2000/08/11 23:45:27 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.186 2000/08/12 05:15:21 tgl Exp $
|
||||
*
|
||||
* HISTORY
|
||||
* AUTHOR DATE MAJOR EVENT
|
||||
|
@ -363,7 +363,8 @@ static void doNegateFloat(Value *v);
|
|||
/* these are not real. they are here so that they get generated as #define's*/
|
||||
%token OP
|
||||
|
||||
/* precedence */
|
||||
/* precedence: lowest to highest */
|
||||
%left UNION INTERSECT EXCEPT
|
||||
%left OR
|
||||
%left AND
|
||||
%right NOT
|
||||
|
@ -381,15 +382,12 @@ static void doNegateFloat(Value *v);
|
|||
%left '+' '-'
|
||||
%left '*' '/' '%'
|
||||
%left '^'
|
||||
%left '|' /* this is the relation union op, not logical or */
|
||||
%left '|' /* XXX Should this have such a high priority? */
|
||||
/* Unary Operators */
|
||||
%right ':' /* delimiter for array ranges */
|
||||
%left ';' /* end of statement */
|
||||
%right UMINUS
|
||||
%left '.'
|
||||
%left '[' ']'
|
||||
%left TYPECAST
|
||||
%left UNION INTERSECT EXCEPT
|
||||
%left ESCAPE
|
||||
%%
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.74 2000/08/06 17:50:38 thomas Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.75 2000/08/12 05:15:21 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -181,7 +181,7 @@ typecast "::"
|
|||
* rule for "operator"!
|
||||
*/
|
||||
self [,()\[\].;$\:\+\-\*\/\%\^\<\>\=\|]
|
||||
op_chars [\~\!\@\#\^\&\|\`\?\$\:\+\-\*\/\%\<\>\=]
|
||||
op_chars [\~\!\@\#\^\&\|\`\?\$\+\-\*\/\%\<\>\=]
|
||||
operator {op_chars}+
|
||||
|
||||
/* we no longer allow unary minus in numbers.
|
||||
|
@ -402,7 +402,7 @@ other .
|
|||
|
||||
for (ic = nchars-2; ic >= 0; ic--)
|
||||
{
|
||||
if (strchr("~!@#&`?$:%^|", yytext[ic]))
|
||||
if (strchr("~!@#^&|`?$%", yytext[ic]))
|
||||
break;
|
||||
}
|
||||
if (ic >= 0)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_operator.h,v 1.79 2000/07/30 22:13:59 tgl Exp $
|
||||
* $Id: pg_operator.h,v 1.80 2000/08/12 05:15:22 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
|
@ -275,8 +275,6 @@ DATA(insert OID = 596 ( "|/" PGUID 0 l t f 0 701 701 0 0 0 0 dsqrt
|
|||
DATA(insert OID = 597 ( "||/" PGUID 0 l t f 0 701 701 0 0 0 0 dcbrt - - ));
|
||||
DATA(insert OID = 598 ( "%" PGUID 0 l t f 0 701 701 0 0 0 0 dtrunc - - ));
|
||||
DATA(insert OID = 599 ( "%" PGUID 0 r t f 701 0 701 0 0 0 0 dround - - ));
|
||||
DATA(insert OID = 1282 ( ":" PGUID 0 l t f 0 701 701 0 0 0 0 dexp - - ));
|
||||
DATA(insert OID = 1283 ( ";" PGUID 0 l t f 0 701 701 0 0 0 0 dlog1 - - ));
|
||||
DATA(insert OID = 1284 ( "|" PGUID 0 l t f 0 704 702 0 0 0 0 tintervalstart - - ));
|
||||
DATA(insert OID = 606 ( "<#>" PGUID 0 b t f 702 702 704 0 0 0 0 mktinterval - - ));
|
||||
DATA(insert OID = 607 ( "=" PGUID 0 b t t 26 26 16 607 608 609 609 oideq eqsel eqjoinsel ));
|
||||
|
|
Loading…
Reference in New Issue