Re: Short-circuit sort_inner_and_outer if there are no mergejoin clauses

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Short-circuit sort_inner_and_outer if there are no mergejoin clauses
Date: 2024-04-25 07:20:10
Message-ID: CAMbWs4-5aehbCAJLqE-xqFRcJK3s-y3EX73YbTrjDQexcLBUhg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Apr 24, 2024 at 5:13 PM Richard Guo <guofenglinux(at)gmail(dot)com> wrote:

> In sort_inner_and_outer, we create mergejoin join paths by explicitly
> sorting both relations on each possible ordering of the available
> mergejoin clauses. However, if there are no available mergejoin
> clauses, we can skip this process entirely. It seems that this is a
> relatively common scenario. Checking the regression tests I noticed
> that there are a lot of cases where we would arrive here with an empty
> mergeclause_list.
>

FWIW, during the run of the core regression tests, I found that we enter
sort_inner_and_outer with an empty mergeclause_list a total of 11064
times. Out of these occurrences, there are 293 instances where the join
type is JOIN_UNIQUE_OUTER, indicating the need to create a UniquePath
for the outer path. Similarly, there are also 293 instances where the
join type is JOIN_UNIQUE_INNER, indicating the need to create a
UniquePath for the inner path.

Thanks
Richard

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2024-04-25 07:59:18 Re: Is it acceptable making COPY format extendable?
Previous Message Bertrand Drouvot 2024-04-25 07:20:05 Re: Avoid orphaned objects dependencies, take 3