Do we need to pass down nonnullable_vars when reducing outer joins?

Richard Guo <guofenglinux@gmail.com>

From: Richard Guo <guofenglinux@gmail.com>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2022-09-13T07:00:16Z
Lists: pgsql-hackers

Attachments

AFAICS, the Vars forced nonnullable by given clause are only used to
check if we can reduce JOIN_LEFT to JOIN_ANTI, and it is checking the
join's own quals there. It seems to me we do not need to pass down
nonnullable_vars by upper quals to the children of a join.

Attached is a patch to remove the pass-down of nonnullable_vars.

Thanks
Richard

Commits

  1. Don't pass down nonnullable_vars while reducing outer joins.