Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2008-11-22 22:47:06 +0000
committerTom Lane2008-11-22 22:47:06 +0000
commit8309d006cbd2cca15a5f1be69644b91f2da5eb9e (patch)
tree67032a964972c8a755ba852ae5070d889fd07cf6 /doc/FAQ_AIX
parent86422cbbfcde96e8d292454fe9a382a9d828f80f (diff)
Switch the planner over to treating qualifications of a JOIN_SEMI join as
though it is an inner rather than outer join type. This essentially means that we don't bother to separate "pushed down" qual conditions from actual join quals at a semijoin plan node; which is okay because the restrictions of SQL syntax make it impossible to have a pushed-down qual that references the inner side of a semijoin. This allows noticeably better optimization of IN/EXISTS cases than we had before, since the equivalence-class machinery can now use those quals. Also fix a couple of other mistakes that had essentially disabled the ability to unique-ify the inner relation and then join it to just a subset of the left-hand relations. An example case using the regression database is select * from tenk1 a, tenk1 b where (a.unique1,b.unique2) in (select unique1,unique2 from tenk1 c); which is planned reasonably well by 8.3 and earlier but had been forcing a cartesian join of a/b in CVS HEAD.
Diffstat (limited to 'doc/FAQ_AIX')
0 files changed, 0 insertions, 0 deletions