Remove gram.y's precedence declaration for OVERLAPS.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 Aug 2015 23:01:04 +0000 (19:01 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 9 Aug 2015 23:01:04 +0000 (19:01 -0400)
The allowed syntax for OVERLAPS, viz "row OVERLAPS row", is sufficiently
constrained that we don't actually need a precedence declaration for
OVERLAPS; indeed removing this declaration does not change the generated
gram.c file at all.  Let's remove it to avoid confusion about whether
OVERLAPS has precedence or not.  If we ever generalize what we allow for
OVERLAPS, we might need to put back a precedence declaration for it,
but we might want some other level than what it has today --- and leaving
the declaration there would just risk confusion about whether that would
be an incompatible change.

Likewise, remove OVERLAPS from the documentation's precedence table.

Per discussion with Noah Misch.  Back-patch to 9.5 where we hacked up some
nearby precedence decisions.

doc/src/sgml/syntax.sgml
src/backend/parser/gram.y

index c3de32873f1e553a0eb8238905e9147a6b821800..8fc9edafe3e16e37e2a2b241c243512b062c667f 100644 (file)
@@ -1069,12 +1069,6 @@ SELECT (5 !) - 6;
        <entry>all other native and user-defined operators</entry>
       </row>
 
-      <row>
-       <entry><token>OVERLAPS</token></entry>
-       <entry></entry>
-       <entry>time interval overlap</entry>
-      </row>
-
       <row>
        <entry><token>BETWEEN</token> <token>IN</token> <token>LIKE</token> <token>ILIKE</token> <token>SIMILAR</token></entry>
        <entry></entry>
index 6b02cecac14fe073249ac62dc2cb0749e8d70517..426a09dac381a53a1745ff04f8ab52776bd0dae3 100644 (file)
@@ -673,7 +673,6 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
 %nonassoc  '<' '>' '=' LESS_EQUALS GREATER_EQUALS NOT_EQUALS
 %nonassoc  BETWEEN IN_P LIKE ILIKE SIMILAR NOT_LA
 %nonassoc  ESCAPE          /* ESCAPE must be just above LIKE/ILIKE/SIMILAR */
-%nonassoc  OVERLAPS
 %left      POSTFIXOP       /* dummy for postfix Op rules */
 /*
  * To support target_el without AS, we must give IDENT an explicit priority