From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org, Richard Guo <guofenglinux(at)gmail(dot)com> |
Subject: | Re: BUG #18953: Planner fails to build plan for complex query with LATERAL references |
Date: | 2025-06-22 12:00:01 |
Message-ID: | 837b0dce-b2f3-4811-bccf-f42e8985d6e2@gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hello Tom,
17.06.2025 19:29, Tom Lane wrote:
> So I'm inclined to leave that code as I had it. It's notationally
> a bit simpler and it doesn't require assuming that we can ignore
> the path's required_outer marking at this stage. If I'm wrong,
> someone will eventually find a counterexample and we can fix it
> then; the changes won't be large.
Please look at the following (simplified version of a query generated by
SQLsmith), which produces errors after a16ef313f2:
CREATE TABLE t(b bool); ANALYZE t;
SELECT 1 FROM t
INNER JOIN (SELECT (SELECT true) AS c FROM t, LATERAL (SELECT b LIMIT 1)) ON true
RIGHT JOIN (SELECT true) ON true,
LATERAL (SELECT b WHERE c LIMIT 1)
WHERE t.b;
ERROR: XX000: unrecognized node type: 22
LOCATION: ExecInitExprRec, execExpr.c:2665
Or a slight variation:
SELECT 1 FROM t
INNER JOIN (SELECT (SELECT true) AS c FROM t, LATERAL (SELECT 1 LIMIT 1)) ON true
RIGHT JOIN (SELECT true) ON true,
LATERAL (SELECT b WHERE c LIMIT 1)
WHERE t.b;
ERROR: XX000: failed to assign all NestLoopParams to plan nodes
LOCATION: create_plan, createplan.c:372
Best regards,
Alexander
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2025-06-22 18:31:56 | Re: BUG #18953: Planner fails to build plan for complex query with LATERAL references |
Previous Message | vignesh C | 2025-06-22 02:57:49 | Re: Logical replication 'invalid memory alloc request size 1585837200' after upgrading to 17.5 |