Fix for creation of operator |.
authorBruce Momjian <bruce@momjian.us>
Tue, 28 Sep 1999 14:31:19 +0000 (14:31 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 28 Sep 1999 14:31:19 +0000 (14:31 +0000)
src/backend/parser/gram.y

index 67d7ac00cd1f1cee4c55ef678a665851517621dc..41a40c0fcedb8a284edf7b493757a9e6d396935d 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.100 1999/09/28 04:34:44 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.101 1999/09/28 14:31:19 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -977,6 +977,8 @@ default_expr:  AexprConst
                                {       $$ = nconc( $1, lcons( makeString( "*"), $3)); }
                        | default_expr '^' default_expr
                                {       $$ = nconc( $1, lcons( makeString( "^"), $3)); }
+                       | default_expr '|' default_expr
+                               {       $$ = nconc( $1, lcons( makeString( "|"), $3)); }
                        | default_expr '=' default_expr
                                {       elog(ERROR,"boolean expressions not supported in DEFAULT"); }
                        | default_expr '<' default_expr
@@ -1127,6 +1129,8 @@ constraint_expr:  AexprConst
                                {       $$ = nconc( $1, lcons( makeString( "*"), $3)); }
                        | constraint_expr '^' constraint_expr
                                {       $$ = nconc( $1, lcons( makeString( "^"), $3)); }
+                       | constraint_expr '|' constraint_expr
+                               {       $$ = nconc( $1, lcons( makeString( "|"), $3)); }
                        | constraint_expr '=' constraint_expr
                                {       $$ = nconc( $1, lcons( makeString( "="), $3)); }
                        | constraint_expr '<' constraint_expr
@@ -2042,6 +2046,8 @@ MathOp:   '+'                             { $$ = "+"; }
                | '*'                   { $$ = "*"; }
                | '/'                   { $$ = "/"; }
                | '%'                   { $$ = "%"; }
+               | '^'                   { $$ = "^"; }
+               | '|'                   { $$ = "|"; }
                | '<'                   { $$ = "<"; }
                | '>'                   { $$ = ">"; }
                | '='                   { $$ = "="; }
@@ -3638,6 +3644,8 @@ row_op:  Op                                                                       { $$ = $1; }
                | '*'                                                           { $$ = "*"; }
                | '/'                                                           { $$ = "/"; }
                | '%'                                                           { $$ = "%"; }
+               | '^'                                                           { $$ = "^"; }
+               | '|'                                                           { $$ = "|"; }
                ;
 
 sub_type:  ANY                                                         { $$ = ANY_SUBLINK; }
@@ -3672,22 +3680,28 @@ a_expr:  attr
                                {       $$ = makeA_Expr(OP, "%", NULL, $2); }
                | '^' a_expr
                                {       $$ = makeA_Expr(OP, "^", NULL, $2); }
+               | '|' a_expr
+                               {       $$ = makeA_Expr(OP, "|", NULL, $2); }
                | a_expr '%'
                                {       $$ = makeA_Expr(OP, "%", $1, NULL); }
                | a_expr '^'
                                {       $$ = makeA_Expr(OP, "^", $1, NULL); }
+               | a_expr '|'
+                               {       $$ = makeA_Expr(OP, "|", $1, NULL); }
                | a_expr '+' a_expr
                                {       $$ = makeA_Expr(OP, "+", $1, $3); }
                | a_expr '-' a_expr
                                {       $$ = makeA_Expr(OP, "-", $1, $3); }
+               | a_expr '*' a_expr
+                               {       $$ = makeA_Expr(OP, "*", $1, $3); }
                | a_expr '/' a_expr
                                {       $$ = makeA_Expr(OP, "/", $1, $3); }
                | a_expr '%' a_expr
                                {       $$ = makeA_Expr(OP, "%", $1, $3); }
-               | a_expr '*' a_expr
-                               {       $$ = makeA_Expr(OP, "*", $1, $3); }
                | a_expr '^' a_expr
                                {       $$ = makeA_Expr(OP, "^", $1, $3); }
+               | a_expr '|' a_expr
+                               {       $$ = makeA_Expr(OP, "|", $1, $3); }
                | a_expr '<' a_expr
                                {       $$ = makeA_Expr(OP, "<", $1, $3); }
                | a_expr '>' a_expr
@@ -4363,22 +4377,28 @@ b_expr:  attr
                                {       $$ = makeA_Expr(OP, "%", NULL, $2); }
                | '^' b_expr
                                {       $$ = makeA_Expr(OP, "^", NULL, $2); }
+               | '|' b_expr
+                               {       $$ = makeA_Expr(OP, "|", NULL, $2); }
                | b_expr '%'
                                {       $$ = makeA_Expr(OP, "%", $1, NULL); }
                | b_expr '^'
                                {       $$ = makeA_Expr(OP, "^", $1, NULL); }
+               | b_expr '|'
+                               {       $$ = makeA_Expr(OP, "|", $1, NULL); }
                | b_expr '+' b_expr
                                {       $$ = makeA_Expr(OP, "+", $1, $3); }
                | b_expr '-' b_expr
                                {       $$ = makeA_Expr(OP, "-", $1, $3); }
+               | b_expr '*' b_expr
+                               {       $$ = makeA_Expr(OP, "*", $1, $3); }
                | b_expr '/' b_expr
                                {       $$ = makeA_Expr(OP, "/", $1, $3); }
                | b_expr '%' b_expr
                                {       $$ = makeA_Expr(OP, "%", $1, $3); }
-               | b_expr '*' b_expr
-                               {       $$ = makeA_Expr(OP, "*", $1, $3); }
                | b_expr '^' b_expr
                                {       $$ = makeA_Expr(OP, "^", $1, $3); }
+               | b_expr '|' b_expr
+                               {       $$ = makeA_Expr(OP, "|", $1, $3); }
                | ':' b_expr
                                {       $$ = makeA_Expr(OP, ":", NULL, $2); }
                | ';' b_expr