Re: Runtime pruning problem - Mailing list pgsql-hackers

From David Rowley
Subject Re: Runtime pruning problem
Date
Msg-id CAKJS1f9ch8rVy8ZhsV2J7q0zCq4xFuXWxTT90EadpkTsgCvQQw@mail.gmail.com
Whole thread Raw
In response to Re: Runtime pruning problem  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Runtime pruning problem
Re: Runtime pruning problem
List pgsql-hackers
On Wed, 17 Apr 2019 at 15:54, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> writes:
> > On 2019/04/17 11:29, David Rowley wrote:
> >> Where do you think the output list for EXPLAIN VERBOSE should put the
> >> output column list in this case? On the Append node, or just not show
> >> them?
>
> > Maybe, not show them?
>
> Yeah, I think that seems like a reasonable idea.  If we show the tlist
> for Append in this case, when we never do otherwise, that will be
> confusing, and it could easily break plan-reading apps like depesz.com.
>
> What I'm more worried about is whether this breaks any internal behavior
> of explain.c, as the comment David quoted upthread seems to think.
> If we need to have a tlist to reference, can we make that code look
> to the pre-pruning plan tree, rather than the planstate tree?

I think most of the complexity is in what to do in
set_deparse_planstate() given that there might be no outer plan to
choose from for Append and MergeAppend. This controls what's done in
resolve_special_varno() as this descends the plan tree down the outer
side until it gets to the node that the outer var came from.

We wouldn't need to do this if we just didn't show the targetlist in
EXPLAIN VERBOSE, but there's also MergeAppend sort keys to worry about
too.  Should we just skip on those as well?

-- 
 David Rowley                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Runtime pruning problem
Next
From: Amit Langote
Date:
Subject: Re: Runtime pruning problem