aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2001-01-25 20:35:19 +0000
committerMichael Meskes <meskes@postgresql.org>2001-01-25 20:35:19 +0000
commit19c4197bd213e96a610bd677c42a1919d50a5237 (patch)
tree912f5b091f94f7eb6dd8f897e33b893b606a5952 /src
parent7e44f8f9e5c8156bacd9e7c75f73dc4655fd3742 (diff)
downloadpostgresql-19c4197bd213e96a610bd677c42a1919d50a5237.tar.gz
postgresql-19c4197bd213e96a610bd677c42a1919d50a5237.zip
Synced gram.y and preproc.y.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/ecpg/ChangeLog4
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y16
2 files changed, 12 insertions, 8 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 6643b8579e0..90d4563293d 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1043,5 +1043,9 @@ Mon Jan 22 17:56:02 CET 2001
Tue Jan 23 08:54:14 CET 2001
- Moved database name handling to libecpg.
+
+Thu Jan 25 21:14:38 CET 2001
+
+ - Synced gram.y and preproc.y.
- Set ecpg version to 2.8.0.
- Set library version to 3.2.0.
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index a888f933925..4d27ba34db6 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -263,16 +263,16 @@ make_name(void)
%nonassoc OVERLAPS
%nonassoc BETWEEN
%nonassoc IN
+%left POSTFIXOP /* dummy for postfix Op rules */
%left Op /* multi-character ops and user-defined operators */
%nonassoc NOTNULL
%nonassoc ISNULL
-%nonassoc NULL_P
-%nonassoc IS
+%nonassoc IS NULL_P TRUE_P FALSE_P
%left '+' '-'
%left '*' '/' '%'
%left '^'
/* Unary Operators */
-%left AT
+%left AT ZONE
%right UMINUS
%left '.'
%left '[' ']'
@@ -3300,7 +3300,7 @@ a_expr: c_expr
{ $$ = cat_str(3, $1, $2, $3); }
| Op a_expr
{ $$ = cat2_str($1, $2); }
- | a_expr Op
+ | a_expr Op %prec POSTFIXOP
{ $$ = cat2_str($1, $2); }
| a_expr AND a_expr
{ $$ = cat_str(3, $1, make_str("and"), $3); }
@@ -3345,11 +3345,11 @@ a_expr: c_expr
{ $$ = cat2_str($1, make_str("is false")); }
| a_expr IS NOT TRUE_P
{ $$ = cat2_str($1, make_str("is not true")); }
- | a_expr BETWEEN b_expr AND b_expr
+ | a_expr BETWEEN b_expr AND b_expr %prec BETWEEN
{
$$ = cat_str(5, $1, make_str("between"), $3, make_str("and"), $5);
}
- | a_expr NOT BETWEEN b_expr AND b_expr
+ | a_expr NOT BETWEEN b_expr AND b_expr %prec BETWEEN
{
$$ = cat_str(5, $1, make_str("not between"), $4, make_str("and"), $6);
}
@@ -3361,7 +3361,7 @@ a_expr: c_expr
{
$$ = cat_str(3, $1, make_str(" not in "), $4);
}
- | a_expr all_Op sub_type select_with_parens
+ | a_expr all_Op sub_type select_with_parens %prec Op
{
$$ = cat_str(4, $1, $2, $3, $4);
}
@@ -3417,7 +3417,7 @@ b_expr: c_expr
{ $$ = cat_str(3, $1, $2, $3); }
| Op b_expr
{ $$ = cat2_str($1, $2); }
- | b_expr Op
+ | b_expr Op %prec POSTFIXOP
{ $$ = cat2_str($1, $2); }
;