| From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
|---|---|
| To: | David Rowley <dgrowleyml(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Teaching planner to short-circuit empty UNION/EXCEPT/INTERSECT inputs |
| Date: | 2025-11-04 08:00:00 |
| Message-ID: | bee34aec-659c-46f1-9ab7-7bbae0b7616c@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello David,
04.10.2025 06:55, David Rowley wrote:
> On Fri, 3 Oct 2025 at 10:02, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> David Rowley <dgrowleyml(at)gmail(dot)com> writes:
>>> An alternative way would be to propagate those during build_setop_child_paths()
>> That answer works for me. I was expecting you to just document the
>> need for the extra check in is_dummy_rel ;-) ... but this way is
>> perhaps better.
> So, I pushed the UNION portion earlier, but on hacking more on the
> EXCEPT/INTERSECT patch, I noticed that I don't have the target lists
> correct when marking the top-level set op as dummy. ...
Please look at a new anomaly, introduced with 03d40e4b5:
CREATE TABLE t(i integer);
CREATE TABLE pt(i integer) PARTITION BY LIST(i);
SET enable_seqscan = 'off';
SELECT * FROM t UNION SELECT * FROM t
UNION ALL
SELECT * FROM pt;
produces:
ERROR: XX000: unrecognized node type: 0
LOCATION: create_plan_recurse, createplan.c:538
Best regards.
Alexander
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Mats Kindahl | 2025-11-04 08:25:24 | Re: Use stack-allocated StringInfoData |
| Previous Message | Steven Niu | 2025-11-04 07:19:57 | Re: [PATCH] Add pretty formatting to pg_get_triggerdef |