aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>1998-01-01 05:44:54 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>1998-01-01 05:44:54 +0000
commitfcabd0753ce68424971db367abc4c52845ff7dde (patch)
treea6e787352d493a63cc6b3f70b2cb8d19ea95fb46
parentcc19151e3bec266c32d7b878309550dfa92fe869 (diff)
downloadpostgresql-fcabd0753ce68424971db367abc4c52845ff7dde.tar.gz
postgresql-fcabd0753ce68424971db367abc4c52845ff7dde.zip
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.
-rw-r--r--src/backend/parser/gram.y6
-rw-r--r--src/backend/parser/parse_oper.c8
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));
}