1
0
mirror of https://github.com/postgres/postgres.git synced 2025-08-24 09:27:52 +03:00

Undo faulty attempt at not relying on RINFO_IS_PUSHED_DOWN.

I've had a bee in my bonnet for some time about getting rid of
RestrictInfo.is_pushed_down, because it's squishily defined and
requires not-inexpensive extra tests to use (cf RINFO_IS_PUSHED_DOWN).
In commit 2489d76c4, I tried to make remove_rel_from_query() not
depend on that macro; but the replacement test is buggy,
as exposed by a report from Rushabh Lathia and Robert Haas.
That change was pretty incidental to the main goal of 2489d76c4,
so let's just revert it for now.  (Getting rid of is_pushed_down
is still far away, anyway.)

Discussion: https://postgr.es/m/CA+TgmoYco=hmg+iX1CW9Y1_CzNoSL81J03wUG-d2_3=rue+L2A@mail.gmail.com
This commit is contained in:
Tom Lane
2023-05-11 13:44:25 -04:00
parent 375407f494
commit c8b881d21f
3 changed files with 23 additions and 6 deletions

View File

@@ -466,12 +466,7 @@ remove_rel_from_query(PlannerInfo *root, int relid, int ojrelid,
remove_join_clause_from_rels(root, rinfo, rinfo->required_relids);
/*
* If the qual lists ojrelid in its required_relids, it must have come
* from above the outer join we're removing (so we need to keep it);
* if it does not, then it didn't and we can discard it.
*/
if (bms_is_member(ojrelid, rinfo->required_relids))
if (RINFO_IS_PUSHED_DOWN(rinfo, joinrelids))
{
/*
* There might be references to relid or ojrelid in the