Mop-up for removal of ':' and ';' operators ... like, say, actually
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 12 Aug 2000 05:15:24 +0000 (05:15 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 12 Aug 2000 05:15:24 +0000 (05:15 +0000)
take 'em out of pg_operator.  Also remove from scan.l's set of legal
operator characters.  Update documentation.

doc/src/sgml/oper.sgml
doc/src/sgml/ref/create_operator.sgml
src/backend/parser/gram.y
src/backend/parser/scan.l
src/include/catalog/pg_operator.h

index b3fe010e582ccbba6a7b77a10c6f9f2f134d50e1..add39e4feebe4a9d732d8a3f85f984a453b62593 100644 (file)
@@ -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,40 +125,26 @@ 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
+start of interval
 </entry>
 </row>
 <row>
 <entry>
-|
+^
 </entry>
 <entry>
 left
 </entry>
 <entry>
-start of interval
+power, exclusive or
 </entry>
 </row>
 <row>
@@ -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>
index d24e54c475808f4c8136be2681d8bad5c14fec70..c2e9f9c0a385d8791a42381c31a58115928ae3b1 100644 (file)
@@ -177,15 +177,15 @@ CREATE
    is a sequence of up to NAMEDATALEN-1 (31 by default) characters
    from the following list:
    <literallayout>
-+ - * / &lt; &gt; = ~ ! @ # % ^ &amp; | ` ? $ : 
++ - * / &lt; &gt; = ~ ! @ # % ^ &amp; | ` ? $
    </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>
-~ ! @ # % ^ &amp; | ` ? $ : 
+~ ! @ # % ^ &amp; | ` ? $
      </literallayout>
      For example, <literal>@-</literal> is an allowed operator name,
      but <literal>*-</literal> is not.
index f6dfadd54dc8ef255d1ede113c47499f3c72da5e..e43a24b0252150b53f332ff8c5690adc2575fded 100644 (file)
@@ -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
 %%
 
index 6f39fe0cb99498e12a4d901c5dce79efa8d4c840..f6dfb080a2bbf29307be3d6fdc43e78a7afced89 100644 (file)
@@ -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)
index 8e493fc78274435219d27b46e162f09b6fa09c50..7b3e561868ae3f015a138b30cecc52e10dbb28a8 100644 (file)
@@ -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 ));