Re: Propagate pathkeys from CTEs up to the outer query

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Propagate pathkeys from CTEs up to the outer query
Date: 2024-03-26 06:27:37
Message-ID: CAMbWs49kymThKD5F+Qw+7oMG4=Zkgo9WgVT7BUkOozN-EHXQ1Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Mar 26, 2024 at 1:39 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> I got around to looking at this finally. I was a bit surprised by
> your choice of data structure. You made a per-CTE-item cte_paths
> list paralleling cte_plan_ids, but what I had had in mind was a
> per-subplan list of paths paralleling glob->subplans and subroots.
> This would mean that the code for ordinary SubqueryScans would
> also need to fill in that list, but surely that's a trivial cost
> compared to everything else we do to prepare a subplan. I don't
> think that we have any immediate need to remember that info for
> an ordinary SubqueryScan, but it seems plausible that we will
> in future. Also, I'm not sure that a Path is fully interpretable
> without the associated PlannerInfo (subroot), so keeping it
> beside the list of subroots seems more future-proof than dissociating
> it from that. This approach would also be more amenable to postponing
> creation of the subplans, as we speculated about earlier. (I have
> no near-term desire to actually do that, but maybe someday it will
> happen.)

I agree with your points. Previously I was thinking that CTEs were the
only scenario where we needed to remember the best path and only
required the best path's pathkeys. However, considering potential
future use cases as you mentioned, I concur that having a per-subplan
list of paths would be more future-proof. Please see attached v4 patch.

Thanks
Richard

Attachment Content-Type Size
v4-0001-Propagate-pathkeys-from-CTEs-up-to-the-outer-query.patch application/octet-stream 8.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message shveta malik 2024-03-26 06:34:26 Re: Introduce XID age and inactive timeout based replication slot invalidation
Previous Message shveta malik 2024-03-26 06:20:45 Re: Introduce XID age and inactive timeout based replication slot invalidation