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