From fcabd0753ce68424971db367abc4c52845ff7dde Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" <lockhart@fourpalms.org> Date: Thu, 1 Jan 1998 05:44:54 +0000 Subject: [PATCH] Change precedence for boolean operators to match expected behavior. Change NOTICE/NOTICE/NOTICE/WARN elog messages to a single message with a few newline/tab breaks embedded in the string. Much cleaner I hope. --- src/backend/parser/gram.y | 6 +++--- src/backend/parser/parse_oper.c | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 7454c1c2bf5..c64c8d41d25 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.81 1997/12/24 06:06:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.82 1998/01/01 05:44:53 thomas Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -306,10 +306,11 @@ Oid param_type(int t); /* used in parse_expr.c */ %left AND %right NOT %right '=' +%nonassoc '<' '>' %nonassoc LIKE %nonassoc BETWEEN %nonassoc IN -%nonassoc Op +%nonassoc Op /* multi-character ops and user-defined operators */ %nonassoc NOTNULL %nonassoc ISNULL %nonassoc IS @@ -319,7 +320,6 @@ Oid param_type(int t); /* used in parse_expr.c */ /* Unary Operators */ %right ':' %left ';' /* end of statement or natural log */ -%nonassoc '<' '>' %right UMINUS %left '.' %left '[' ']' diff --git a/src/backend/parser/parse_oper.c b/src/backend/parser/parse_oper.c index ddc97a45239..4fbe3f1446f 100644 --- a/src/backend/parser/parse_oper.c +++ b/src/backend/parser/parse_oper.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.3 1997/11/26 03:42:45 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_oper.c,v 1.4 1998/01/01 05:44:54 thomas Exp $ * *------------------------------------------------------------------------- */ @@ -587,11 +587,17 @@ op_error(char *op, Oid arg1, Oid arg2) elog(WARN, "right hand side of operator %s has an unknown type, probably a bad attribute name", op); } +#if FALSE elog(NOTICE, "there is no operator %s for types %s and %s", op, typeTypeName(tp1), typeTypeName(tp2)); elog(NOTICE, "You will either have to retype this query using an"); elog(NOTICE, "explicit cast, or you will have to define the operator"); elog(WARN, "%s for %s and %s using CREATE OPERATOR", op, typeTypeName(tp1), typeTypeName(tp2)); +#endif + elog(WARN, "There is no operator '%s' for types '%s' and '%s'" + "\n\tYou will either have to retype this query using an explicit cast," + "\n\tor you will have to define the operator using CREATE OPERATOR", + op, typeTypeName(tp1), typeTypeName(tp2)); } -- GitLab