diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-04-02 19:07:02 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-04-02 19:07:02 +0000 |
commit | 27a4f06adee023d9172abaf128e35e3cc068108a (patch) | |
tree | 701c1dd77b39df85d025fbfad0eaf505f4f25a5a /src/backend/parser/parse_target.c | |
parent | 94d8da8fec981f516b785822e145db7e23c825b0 (diff) | |
download | postgresql-27a4f06adee023d9172abaf128e35e3cc068108a.tar.gz postgresql-27a4f06adee023d9172abaf128e35e3cc068108a.zip |
Get rid of crocky use of RangeVar nodes in parser to represent partially
transformed whole-row variables. Cleaner to use regular whole-row Vars.
Diffstat (limited to 'src/backend/parser/parse_target.c')
-rw-r--r-- | src/backend/parser/parse_target.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index 6bed23f9064..c9c44ac2389 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -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) |