diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-12-27 20:06:28 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-12-27 20:06:28 +0000 |
commit | b37d6373f0b2fc9f9779b2722f3a6095645cc9d3 (patch) | |
tree | cecc622f2b221d43ab99bbbe2d2e989f7995a82c /src/backend/parser/parse_expr.c | |
parent | d5a0f78848a593de507cb8a8a5d040dc0fcd050d (diff) | |
download | postgresql-b37d6373f0b2fc9f9779b2722f3a6095645cc9d3.tar.gz postgresql-b37d6373f0b2fc9f9779b2722f3a6095645cc9d3.zip |
Deliver better error message when a relation name is used in an expression.
Per report from Ian Barwick.
Diffstat (limited to 'src/backend/parser/parse_expr.c')
-rw-r--r-- | src/backend/parser/parse_expr.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 3873fd37f0d..ebb418ee904 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.129 2002/09/18 21:35:22 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.129.2.1 2002/12/27 20:06:28 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -912,6 +912,7 @@ exprType(Node *expr) if (!qtree || !IsA(qtree, Query)) elog(ERROR, "exprType: Cannot get type for untransformed sublink"); tent = (TargetEntry *) lfirst(qtree->targetList); + Assert(IsA(tent, TargetEntry)); type = tent->resdom->restype; } else @@ -936,6 +937,16 @@ exprType(Node *expr) case T_ConstraintTest: type = exprType(((ConstraintTest *) expr)->arg); break; + case T_RangeVar: + /* + * If someone uses a bare relation name in an expression, + * we will likely first notice a problem here (see comments in + * transformColumnRef()). Issue an appropriate error message. + */ + elog(ERROR, "Relation reference \"%s\" cannot be used in an expression", + ((RangeVar *) expr)->relname); + type = InvalidOid; /* keep compiler quiet */ + break; default: elog(ERROR, "exprType: Do not know how to get type for %d node", nodeTag(expr)); |