From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
Cc: | Jian Guo <gjian(at)vmware(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Hans Buschmann <buschmann(at)nidsa(dot)net>, "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Zhenghua Lyu <zlyu(at)vmware(dot)com> |
Subject: | Re: Wrong rows estimations with joins of CTEs slows queries by more than factor 500 |
Date: | 2023-11-20 17:45:58 |
Message-ID: | 1339607.1700502358@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Richard Guo <guofenglinux(at)gmail(dot)com> writes:
> On Fri, Nov 17, 2023 at 11:38 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> That line of argument also leads to the conclusion that it'd be
>> okay to expose info about the ordering of the CTE result to the
>> upper planner.
> In the light of this conclusion, I had a go at propagating the pathkeys
> from CTEs up to the outer planner and came up with the attached.
Oh, nice! I remembered we had code already to do this for regular
SubqueryScans, but I thought we'd need to do some refactoring to
apply it to CTEs. I think you are right though that
convert_subquery_pathkeys can be used as-is. Some thoughts:
* Do we really need to use make_tlist_from_pathtarget? Why isn't
the tlist of the cteplan good enough (indeed, more so)?
* I don't love having this code assume that it knows how to find
the Path the cteplan was made from. It'd be better to make
SS_process_ctes save that somewhere, maybe in a list paralleling
root->cte_plan_ids.
Alternatively: maybe it's time to do what the comments in
SS_process_ctes vaguely speculate about, and just save the Path
at that point, with construction of the plan left for createplan()?
That might be a lot of refactoring for not much gain, so not sure.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | David Steele | 2023-11-20 17:53:55 | Re: Add recovery to pg_control and remove backup_label |
Previous Message | David Steele | 2023-11-20 17:30:34 | Re: Use of backup_label not noted in log |