aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-10-29 18:10:15 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-10-29 18:10:15 +0000
commita35deb54006523e62f79c72238c62f14ee311940 (patch)
tree6f987284cbeaa908191535e628a513d7827cfbac /src
parentabec4cbf1f199edadadda483373740b2abd35265 (diff)
downloadpostgresql-a35deb54006523e62f79c72238c62f14ee311940.tar.gz
postgresql-a35deb54006523e62f79c72238c62f14ee311940.zip
Give a useful error message if a RangeVar is encountered in an expression.
Per example from Ian Barwick, 28-Oct-03.
Diffstat (limited to 'src')
-rw-r--r--src/backend/optimizer/util/clauses.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index 5de4d19a5b8..2d8d86f1035 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.153 2003/08/17 23:43:26 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.154 2003/10/29 18:10:15 tgl Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -2412,6 +2412,16 @@ expression_tree_walker(Node *node,
return true;
}
break;
+ case T_RangeVar:
+ /*
+ * Give a useful complaint if someone uses a bare relation name
+ * in an expression (see comments in transformColumnRef()).
+ */
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("relation reference \"%s\" cannot be used in an expression",
+ ((RangeVar *) node)->relname)));
+ break;
default:
elog(ERROR, "unrecognized node type: %d",
(int) nodeTag(node));
@@ -2879,6 +2889,16 @@ expression_tree_mutator(Node *node,
return (Node *) newnode;
}
break;
+ case T_RangeVar:
+ /*
+ * Give a useful complaint if someone uses a bare relation name
+ * in an expression (see comments in transformColumnRef()).
+ */
+ ereport(ERROR,
+ (errcode(ERRCODE_SYNTAX_ERROR),
+ errmsg("relation reference \"%s\" cannot be used in an expression",
+ ((RangeVar *) node)->relname)));
+ break;
default:
elog(ERROR, "unrecognized node type: %d",
(int) nodeTag(node));