diff --git a/doc/src/sgml/oper.sgml b/doc/src/sgml/oper.sgml index aa42407bbd..e51deef0a9 100644 --- a/doc/src/sgml/oper.sgml +++ b/doc/src/sgml/oper.sgml @@ -1,5 +1,5 @@ @@ -83,20 +83,10 @@ Operator Ordering (decreasing precedence) -UNION - - -left - - -SQL select construct - - - - :: +left Postgres typecasting @@ -135,31 +125,6 @@ right unary minus - - - -: - - -right - - -exponentiation - - | @@ -173,6 +138,17 @@ start of interval +^ + + +left + + +power, exclusive or + + + + * / % @@ -228,6 +204,7 @@ test for NOT NULL (all other operators) +left native and user-defined @@ -265,7 +242,7 @@ time interval overlap -LIKE +LIKE ILIKE @@ -486,19 +463,6 @@ logical union Division 4 / 2 - - : - Natural Exponentiation - : 3.0 - - @ Absolute value @@ -523,17 +487,6 @@ Deprecated in v7.0, esp. since ln() is available as a generic function. - - - - - Two operators, ":" and ";", are now deprecated and will be removed in - the next release. Use the equivalent functions exp() and ln() - instead. - - - - diff --git a/doc/src/sgml/ref/create_operator.sgml b/doc/src/sgml/ref/create_operator.sgml index 30cf27b397..cf6baf7fa5 100644 --- a/doc/src/sgml/ref/create_operator.sgml +++ b/doc/src/sgml/ref/create_operator.sgml @@ -1,5 +1,5 @@ @@ -177,15 +177,15 @@ CREATE is a sequence of up to NAMEDATALEN-1 (31 by default) characters from the following list: -+ - * / < > = ~ ! @ # % ^ & | ` ? $ : ++ - * / < > = ~ ! @ # % ^ & | ` ? $ There are a few restrictions on your choice of name: - "$" 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. @@ -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: -~ ! @ # % ^ & | ` ? $ : +~ ! @ # % ^ & | ` ? $ For example, @- is an allowed operator name, but *- is not. diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 276afb8c52..4294a7bafa 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -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 %% diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index eb71d08cbb..2701479313 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -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) diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h index a63b789989..3981059426 100644 --- a/src/include/catalog/pg_operator.h +++ b/src/include/catalog/pg_operator.h @@ -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 ));