Skip site navigation (1) Skip section navigation (2)

pgsql: Fix EXPLAIN to handle gating Result nodes withininner-indexscan

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix EXPLAIN to handle gating Result nodes withininner-indexscan
Date: 2011-07-03 05:35:39
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-committers
Fix EXPLAIN to handle gating Result nodes within inner-indexscan subplans.

It is possible for a NestLoop plan node to pass an OUTER Var into an
"inner indexscan" that is an Append construct (derived from an inheritance
tree or UNION ALL subquery).  The OUTER tuple is then passed down at
runtime to the leaf indexscan node(s) where it will actually be used.
EXPLAIN has to likewise pass the information about the nestloop's outer
subplan down through the Append node, else it will fail to print the
outer-reference Vars (with complaints like "bogus varno: 65001").

However, there was a case missed in all this: we could also have gating
Result nodes that were inserted into the appendrel plan tree to deal with
pseudoconstant qual conditions.  So EXPLAIN has to pass down the outer plan
node to a Result's subplan, too.  Per example from Jon Nelson.

The problem is gone in 9.1 because we replaced the nestloop outer-tuple
kluge with a Param-based data transfer mechanism.  Also, so far as I can
tell, the case can't happen before 8.4 because of restrictions on what
sorts of appendrel members could be pulled up into the parent query.
So this patch is only needed for 8.4 and 9.0.



Modified Files
src/backend/commands/explain.c |    7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)

pgsql-committers by date

Next:From: Magnus HaganderDate: 2011-07-03 11:18:12
Subject: pgsql: Mark pg_stat_reset_shared as strict
Previous:From: Hiroshi SaitoDate: 2011-07-03 05:34:27
Subject: psqlodbc - psqlodbc: Prep release the minor version.

Privacy Policy | About PostgreSQL
Copyright © 1996-2018 The PostgreSQL Global Development Group