Commit d7e76d42 authored by Tom Lane's avatar Tom Lane

markTargetListOrigin neglected to handle outer-scope Vars properly;

per report from Joe Conway.
parent e70a8ee9
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.101 2003/05/06 00:20:32 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.102 2003/05/31 19:03:34 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -236,11 +236,18 @@ markTargetListOrigins(ParseState *pstate, List *targetlist) ...@@ -236,11 +236,18 @@ markTargetListOrigins(ParseState *pstate, List *targetlist)
static void static void
markTargetListOrigin(ParseState *pstate, Resdom *res, Var *var) markTargetListOrigin(ParseState *pstate, Resdom *res, Var *var)
{ {
Index levelsup;
RangeTblEntry *rte; RangeTblEntry *rte;
AttrNumber attnum; AttrNumber attnum;
if (var == NULL || !IsA(var, Var)) if (var == NULL || !IsA(var, Var))
return; return;
levelsup = var->varlevelsup;
while (levelsup-- > 0)
{
pstate = pstate->parentParseState;
Assert(pstate != NULL);
}
Assert(var->varno > 0 && Assert(var->varno > 0 &&
(int) var->varno <= length(pstate->p_rtable)); (int) var->varno <= length(pstate->p_rtable));
rte = rt_fetch(var->varno, pstate->p_rtable); rte = rt_fetch(var->varno, pstate->p_rtable);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment