diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-10-29 18:10:15 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-10-29 18:10:15 +0000 |
commit | a35deb54006523e62f79c72238c62f14ee311940 (patch) | |
tree | 6f987284cbeaa908191535e628a513d7827cfbac /src | |
parent | abec4cbf1f199edadadda483373740b2abd35265 (diff) | |
download | postgresql-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.c | 22 |
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)); |