mirror of
https://github.com/postgres/postgres.git
synced 2025-06-29 10:41:53 +03:00
Get rid of crocky use of RangeVar nodes in parser to represent partially
transformed whole-row variables. Cleaner to use regular whole-row Vars.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.115 2004/02/13 01:08:20 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.116 2004/04/02 19:06:58 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -60,14 +60,6 @@ transformTargetEntry(ParseState *pstate,
|
||||
if (expr == NULL)
|
||||
expr = transformExpr(pstate, node);
|
||||
|
||||
if (IsA(expr, RangeVar))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_SYNTAX_ERROR),
|
||||
errmsg("relation reference \"%s\" cannot be used as a select-list entry",
|
||||
((RangeVar *) expr)->relname),
|
||||
errhint("Write \"%s\".* to denote all the columns of the relation.",
|
||||
((RangeVar *) expr)->relname)));
|
||||
|
||||
type_id = exprType(expr);
|
||||
type_mod = exprTypmod(expr);
|
||||
|
||||
@ -243,21 +235,12 @@ markTargetListOrigins(ParseState *pstate, List *targetlist)
|
||||
static void
|
||||
markTargetListOrigin(ParseState *pstate, Resdom *res, Var *var)
|
||||
{
|
||||
Index levelsup;
|
||||
RangeTblEntry *rte;
|
||||
AttrNumber attnum;
|
||||
|
||||
if (var == NULL || !IsA(var, Var))
|
||||
return;
|
||||
levelsup = var->varlevelsup;
|
||||
while (levelsup-- > 0)
|
||||
{
|
||||
pstate = pstate->parentParseState;
|
||||
Assert(pstate != NULL);
|
||||
}
|
||||
Assert(var->varno > 0 &&
|
||||
(int) var->varno <= length(pstate->p_rtable));
|
||||
rte = rt_fetch(var->varno, pstate->p_rtable);
|
||||
rte = GetRTEByRangeTablePosn(pstate, var->varno, var->varlevelsup);
|
||||
attnum = var->varattno;
|
||||
|
||||
switch (rte->rtekind)
|
||||
|
Reference in New Issue
Block a user