Re: About the constant-TRUE clause in reconsider_outer_join_clauses

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Richard Guo <guofenglinux(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: About the constant-TRUE clause in reconsider_outer_join_clauses
Date: 2023-03-25 15:41:47
Message-ID: 2583984.1679758907@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:
> Should we instead mark the constant-TRUE clause with required_relids
> plus the OJ relid?

I do not think it matters.

> Even if the join does become clauseless, it will end up being an
> unqualified nestloop. I think the join ordering algorithm will force
> this join to be formed when necessary.

We would find *some* valid plan, but not necessarily a *good* plan.
The point of the dummy clause is to ensure that the join is considered
as soon as possible. That might not be the ideal join order of course,
but we'll consider it among other join orders and arrive at a cost-based
decision. With no dummy clause, the join order heuristics would always
delay this join as long as possible; so even if another ordering is
better, we'd not find it.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Joseph Koshakow 2023-03-25 15:42:58 Re: Infinite Interval
Previous Message Tomas Vondra 2023-03-25 13:34:25 Re: hio.c does visibilitymap_pin()/IO while holding buffer lock