From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Defend against bogus parameterization of join input paths. |
Date: | 2023-06-29 16:13:03 |
Message-ID: | E1qEuGV-0013Gt-IU@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Defend against bogus parameterization of join input paths.
An outer join cannot be formed using an input path that is parameterized
by a value that is supposed to be nulled by the outer join. This is
obviously nonsensical, and it could lead to a bad plan being selected;
although currently it seems that we'll hit various sanity-check
assertions first.
I think that such cases were formerly prevented by the delay_upper_joins
mechanism, but now that that's gone we need an explicit check.
(Perhaps we should avoid generating baserel paths that could
lead to this situation in the first place; but it seems like
having a defense at the join level would be a good idea anyway.)
Richard Guo and Tom Lane, per report from Jaime Casanova
Discussion: https://postgr.es/m/CAJKUy5g2uZRrUDZJ8p-=giwcSHVUn0c9nmdxPSY0jF0Ov8VoEA@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/a798660ebe3ff1feb310db13b957c5cda4c8c50d
Modified Files
--------------
src/backend/optimizer/path/joinpath.c | 33 +++++++++++++++++++++++++++++++++
src/test/regress/expected/join.out | 23 +++++++++++++++++++++++
src/test/regress/sql/join.sql | 22 ++++++++++++++++++++++
3 files changed, 78 insertions(+)
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2023-06-29 16:19:52 | pgsql: meson: Remove redundant return code check |
Previous Message | Robert Haas | 2023-06-29 15:19:38 | Re: pgsql: Fix search_path to a safe value during maintenance operations. |