From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org, David Rowley <dgrowleyml(at)gmail(dot)com> |
Subject: | Re: Converting SetOp to read its two inputs separately |
Date: | 2024-11-20 02:09:36 |
Message-ID: | 56245.1732068576@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 Thu, Nov 14, 2024 at 11:00 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> Aside from that minor TODO, the main thing that's left undone in this
>> patch series is to persuade the thing to exploit presorted input
>> paths.
> I think we may need to do the following to make this work:
> 1. We need to teach set_operation_ordered_results_useful() that sorted
> input paths are also useful for INTERSECT/EXCEPT, so that we can have
> setop_pathkeys set for the subqueries.
> 2. In generate_nonunion_paths(), we need to provide a valid
> "interesting_pathkeys" when calling build_setop_child_paths().
Once I'd wrapped my head around how things are done now (which the
comments in prepunion.c were remarkably unhelpful about), I saw that
most of the problem for #2 just requires re-ordering things that
generate_nonunion_paths was already doing. As for #1, I have a modest
proposal: we should get rid of set_operation_ordered_results_useful
entirely. It's not the code that actually does useful work, and
keeping it in sync with the code that does do useful work is hard and
unnecessary.
0001-0003 below are the same as before (so the slot-munging TODO is
still there). 0004 fixes a rather basic bug for nested set-operations
and gets rid of set_operation_ordered_results_useful along the way.
Then 0005 does your step 2.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Convert-SetOp-to-read-its-inputs-as-outerPlan-and.patch | text/x-diff | 69.3 KB |
v2-0002-Remove-some-dead-code-in-prepunion.c.patch | text/x-diff | 12.4 KB |
v2-0003-Get-rid-of-choose_hashed_setop.patch | text/x-diff | 16.9 KB |
v2-0004-Fix-bogus-decisions-about-whether-we-want-pre-sor.patch | text/x-diff | 12.3 KB |
v2-0005-Teach-generate_nonunion_paths-to-consider-pre-sor.patch | text/x-diff | 11.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | zengman | 2024-11-20 03:11:26 | Re: [PATCH] Fixed assertion issues in "pg_get_viewdef" |
Previous Message | Nathan Bossart | 2024-11-20 01:55:04 | Re: sunsetting md5 password support |