diff --git a/src/backend/optimizer/prep/prepsecurity.c b/src/backend/optimizer/prep/prepsecurity.c index dd7f9003a2..2420f97a21 100644 --- a/src/backend/optimizer/prep/prepsecurity.c +++ b/src/backend/optimizer/prep/prepsecurity.c @@ -398,7 +398,9 @@ security_barrier_replace_vars_walker(Node *node, ((Var *) tle->expr)->varcollid == var->varcollid) { /* Map the variable onto this subquery targetlist entry */ - var->varattno = attno; + var->varattno = var->varoattno = attno; + /* Mark this var as having been processed */ + context->vars_processed = lappend(context->vars_processed, var); return false; } } @@ -444,7 +446,7 @@ security_barrier_replace_vars_walker(Node *node, makeString(pstrdup(attname))); /* Update the outer query's variable */ - var->varattno = attno; + var->varattno = var->varoattno = attno; /* Remember this Var so that we don't process it again */ context->vars_processed = lappend(context->vars_processed, var);