Re: Query result differences between PostgreSQL 17 vs 16

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, David Rowley <dgrowleyml(at)gmail(dot)com>, Ronald Cruz <cruz(at)rentec(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org, Peter Ford <pford(at)rentec(dot)com>, "Aaron J(dot) Garcia" <agarcia(at)rentec(dot)com>
Subject: Re: Query result differences between PostgreSQL 17 vs 16
Date: 2025-02-26 06:14:25
Message-ID: CAMbWs49rShAwK0sMz+-6d9hGd1RsRQd0tBuVUGvh88pNu9hG1w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Sat, Feb 22, 2025 at 12:08 PM Richard Guo <guofenglinux(at)gmail(dot)com> wrote:
> On Sat, Feb 22, 2025 at 11:32 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> > If the check against table not-null constraints is applied after we
> > clone outer-join quals, that's probably bad. I think there are
> > assumptions in there that every clone qual will have doppelgangers,
> > so filtering NOT NULLs later would break that. Maybe not applying
> > the filter to quals marked has_clone or is_clone would help?

> Yeah, I think this approach can fix the issue. Perhaps we should
> check whether the RestrictInfo is a clone clause and avoid assuming
> that it's always true in that case, maybe by adding something like
> below at the start of restriction_is_always_true.
>
> + if (restrictinfo->has_clone || restrictinfo->is_clone)
> + return false;
>
> We may lose some optimization opportunities with NOT NULL quals, as
> this could prevent us from reducing certain such quals to constant
> true, but I think correctness should be our top priority.
>
> I'll go ahead and write a patch.

Here is the patch.

Thanks
Richard

Attachment Content-Type Size
v1-0001-Do-not-reduce-a-clone-clause-to-a-constant-true.patch application/octet-stream 10.5 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2025-02-26 06:26:09 Re: Query result differences between PostgreSQL 17 vs 16
Previous Message Kashaela Ransaw 2025-02-26 03:28:43 Re: error -10825