public inbox for [email protected]
help / color / mirror / Atom feedFrom: Tom Lane <[email protected]>
To: Richard Guo <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: Robert Haas <[email protected]>
Subject: Re: BUG #19460: FULL JOIN rewriting issue on empty queries
Date: Sun, 19 Apr 2026 22:32:24 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAMbWs49PPxhrqBjHj3Wy4hK4=_DoHkJdAHL_q1mqpyyCk5MdMw@mail.gmail.com>
References: <[email protected]>
<[email protected]>
<CAMbWs48E2qqd4B6AdvJDyPBi685-_bDEvoe0aJnYzAPL1v30zg@mail.gmail.com>
<[email protected]>
<CAMbWs49PPxhrqBjHj3Wy4hK4=_DoHkJdAHL_q1mqpyyCk5MdMw@mail.gmail.com>
Richard Guo <[email protected]> writes:
> On Mon, Apr 20, 2026 at 10:26 AM Tom Lane <[email protected]> wrote:
>> Thanks for looking at it! There is a loose end still bothering me:
>> if you remove the lower "WHERE t.id = ..." clause, or change it to be
>> something other than an equality constraint on t.id, the bug doesn't
>> manifest. The reason for that is un-obvious.
> The reason seems to be that the equality constraint is a restriction
> clause for the inner relation 't', and is needed to determine that the
> relation has a matching unique index and is therefore distinct. If we
> remove it, or change it to something that isn't mergejoinable, we
> won't be able to prove the inner side of the left join is distinct,
> and thus won't be able to remove that left join.
Hmm. The bug also goes away if "t" doesn't have a unique/pkey
constraint, and I find that easy to understand: we can't apply outer
join removal unless rel_supports_distinctness/rel_is_distinct_for
succeed, so that this buggy code in remove_rel_from_restrictinfo
is not reached. But that logic doesn't consider WHERE constraints
AFAICS. So I think there is some other code path involved.
It might turn out to not be all that interesting to run this to
ground, but I want to do so because it might inform our estimate
of the patch's blast radius.
regards, tom lane
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: BUG #19460: FULL JOIN rewriting issue on empty queries
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox