diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2011-01-30 17:04:31 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2011-01-30 17:05:31 -0500 |
commit | c1da1f45a1033fecd888c56568db5ca9b1c050d2 (patch) | |
tree | 096e0712cc39706fabe6192b9ac70bf4f2638a25 /src/backend/utils/adt/arrayfuncs.c | |
parent | 7df910c7d128b775220d529e23813bb4663dba4e (diff) | |
download | postgresql-c1da1f45a1033fecd888c56568db5ca9b1c050d2.tar.gz postgresql-c1da1f45a1033fecd888c56568db5ca9b1c050d2.zip |
Make reduce_outer_joins() smarter about semijoins.
reduce_outer_joins() mistakenly treated a semijoin like a left join for
purposes of deciding whether not-null constraints created by the join's
quals could be passed down into the join's left-hand side (possibly
resulting in outer-join simplification there). Actually, semijoin works
like inner join for this purpose, ie, we do not need to see any rows that
can't possibly satisfy the quals. Hence, two-line fix to treat semi and
inner joins alike. Per observation by Andres Freund about a performance
gripe from Yazan Suleiman.
Back-patch to 8.4, since this oversight has been there since the current
handling of semijoins was implemented.
Diffstat (limited to 'src/backend/utils/adt/arrayfuncs.c')
0 files changed, 0 insertions, 0 deletions