Subject: Re: Incorrect result of bitmap heap scan.

From: Peter Geoghegan <[email-masked]>
Date: Mon, 2 Dec 2024 16:16:19 -0500

On Mon, Dec 2, 2024 at 3:55 PM Andres Freund <[email-masked]> wrote:
> I suspect one contributor to this avoiding attention till now was that the
> optimization is fairly narrow:
>
>                         /*
>                          * We can potentially skip fetching heap pages if we do not need
>                          * any columns of the table, either for checking non-indexable
>                          * quals or for returning data.  This test is a bit simplistic, as
>                          * it checks the stronger condition that there's no qual or return
>                          * tlist at all. But in most cases it's probably not worth working
>                          * harder than that.
>                          */
>                         need_tuples = (node->ss.ps.plan->qual != NIL ||
>                                                    node->ss.ps.plan->targetlist != NIL);
>
> Even an entry in the targetlist that that does not depend on the current row
> disables the optimization.

Good point. I agree that that factor is likely to have masked the
problem over the past 6 years.

-- 
Peter Geoghegan