mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
Give a more reasonable error message for a bad attribute name applied
to a join or subselect alias ... cf. Oliver Elphick's complaint 13-Mar.
This commit is contained in:
parent
2736ad31dc
commit
7f02049137
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.99 2001/02/14 21:35:04 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.100 2001/03/14 23:55:33 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -319,7 +319,8 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
|
|||||||
* A projection must match an attribute name of the rel.
|
* A projection must match an attribute name of the rel.
|
||||||
*/
|
*/
|
||||||
if (get_attnum(argrelid, funcname) == InvalidAttrNumber)
|
if (get_attnum(argrelid, funcname) == InvalidAttrNumber)
|
||||||
elog(ERROR, "Functions on sets are not yet supported");
|
elog(ERROR, "No such attribute or function '%s'",
|
||||||
|
funcname);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retval)
|
if (retval)
|
||||||
@ -448,8 +449,15 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
|
|||||||
}
|
}
|
||||||
else if (IsA(rteorjoin, JoinExpr))
|
else if (IsA(rteorjoin, JoinExpr))
|
||||||
{
|
{
|
||||||
elog(ERROR,
|
/*
|
||||||
"function applied to tuple is not supported for joins");
|
* We have f(x) or more likely x.f where x is a join and f
|
||||||
|
* is not one of the attribute names of the join (else we'd
|
||||||
|
* have recognized it above). We don't support functions on
|
||||||
|
* join tuples (since we don't have a named type for the join
|
||||||
|
* tuples), so error out.
|
||||||
|
*/
|
||||||
|
elog(ERROR, "No such attribute or function %s.%s",
|
||||||
|
refname, funcname);
|
||||||
rte = NULL; /* keep compiler quiet */
|
rte = NULL; /* keep compiler quiet */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -471,8 +479,12 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
|
|||||||
* not an Oid.
|
* not an Oid.
|
||||||
*/
|
*/
|
||||||
if (rte->relname == NULL)
|
if (rte->relname == NULL)
|
||||||
elog(ERROR,
|
{
|
||||||
"function applied to tuple is not supported for subSELECTs");
|
/* Here, we have an unrecognized attribute of a sub-select */
|
||||||
|
elog(ERROR, "No such attribute or function %s.%s",
|
||||||
|
refname, funcname);
|
||||||
|
}
|
||||||
|
|
||||||
toid = typenameTypeId(rte->relname);
|
toid = typenameTypeId(rte->relname);
|
||||||
|
|
||||||
/* replace it in the arg list */
|
/* replace it in the arg list */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user