From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Peter Geoghegan <pg(at)bowt(dot)ie> |
Cc: | tel(at)jklm(dot)no, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #17975: Nested Loop Index Scan returning wrong result |
Date: | 2023-06-14 21:21:27 |
Message-ID: | 20230614212127.l2dpbowfjmttqpkv@awork3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hi,
On 2023-06-14 14:10:02 -0700, Peter Geoghegan wrote:
> On Wed, Jun 14, 2023 at 1:37 PM Andres Freund <andres(at)anarazel(dot)de> wrote:
> > Something seems to be off with the relevant param - it's NULL. Haven't dug
> > deeper.
>
> I see that the bad plan has _bt_first() return false early during a
> btgettuple() call for one of the a_pkey index scans. That is,
> _bt_first() returns false early in the "Quit now if
> _bt_preprocess_keys() discovered that the scan keys can never be
> satisfied (eg, x == 1 AND x > 2)" path.
I think that's a consequence of the planner bug (see subsequent email) - the
bad plan wrongly uses an index that first returns a null a_id, which then
quite legitimately makes _bt_preprocess_keys() exit early. That bit of
smartness did confuse me for a moment, I was expecting the index scan to
actually scan the index at first :).
I haven't figured out where we're dropping the implied index qual on the floor
yet...
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2023-06-14 21:37:24 | Re: BUG #17973: Reinit of pgstats entry for dropped DB can break autovacuum daemon |
Previous Message | Andres Freund | 2023-06-14 21:12:31 | Re: BUG #17975: Nested Loop Index Scan returning wrong result |