Re: Correction of RowMark Removal During Sel-Join Elimination

Greg Sabino Mullane <htamfids@gmail.com>

From: Greg Sabino Mullane <htamfids@gmail.com>
To: Andrei Lepikhov <lepihov@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Alexander Korotkov <aekorotkov@gmail.com>
Date: 2025-08-11T18:15:46Z
Lists: pgsql-hackers
Basic concept looks good. However:

and fixes the incorrect behaviour. Additionally, it renames variables to
> make
> similar errors more apparent in the future.


- if (!innerrel_is_unique_ext(root, joinrelids, inner->relids,
> - outer, JOIN_INNER, selfjoinquals,
> + if (!innerrel_is_unique_ext(root, joinrelids, rrel->relids,
> + krel, JOIN_INNER, selfjoinquals,


I'm not convinced this is an improvement from someone just coming in to
this part of the code, especially given (for example) the comment right
above it:

 * Determine if the inner table can duplicate outer rows.  We must
 * bypass the unique rel cache here since we're possibly using a


Cheers,
Greg

--
Crunchy Data - https://www.crunchydata.com
Enterprise Postgres Software Products & Tech Support