postgresql/src
Tom Lane 8309d006cb 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.
2008-11-22 22:47:06 +00:00
..
backend Switch the planner over to treating qualifications of a JOIN_SEMI join as 2008-11-22 22:47:06 +00:00
bin Fix a few more format argument warnings. 2008-11-21 20:14:27 +00:00
include Switch the planner over to treating qualifications of a JOIN_SEMI join as 2008-11-22 22:47:06 +00:00
interfaces Add missing dependencies to preproc.y build rule 2008-11-15 22:20:55 +00:00
makefiles Set SQL man pages to be section 7 by default, and only transform them to 2008-11-14 10:22:48 +00:00
pl Don't pass strings directly to errdetail() and errhint() - use 2008-11-20 15:36:22 +00:00
port Reduce chatter from _dosmaperr() when used in FRONTEND code. 2008-10-16 13:27:34 +00:00
template Move forgotten comment closer to where it matters. 2008-10-29 16:23:07 +00:00
test Fix breakage of bitmap scan plan creation for special index operators such 2008-11-20 19:52:54 +00:00
timezone Suppress leap-second-aware timezones in the output of pg_tzenumerate_next, 2008-11-13 20:49:38 +00:00
tools Exclude contrib/intagg from the list of MSVC project files to be generated, 2008-11-14 22:12:37 +00:00
tutorial Add $PostgreSQL$ markers to a lot of files that were missing them. 2008-05-17 01:28:26 +00:00
DEVELOPERS Testing commit stuff 2006-07-10 15:50:02 +00:00
Makefile Catch all errors in for and while loops in makefiles. Don't ignore any 2008-03-18 16:24:50 +00:00
Makefile.global.in Set SQL man pages to be section 7 by default, and only transform them to 2008-11-14 10:22:48 +00:00
Makefile.shlib Synchronize the shared object build rules in Makefile.port with Makefile.shlib 2008-09-01 08:50:10 +00:00
bcc32.mak Remove old-style win32 client-only visual c++ build infrastructure for everything except 2007-03-05 14:18:38 +00:00
nls-global.mk Another fix for compiles on an empty 'po' directory. 2008-05-17 21:27:12 +00:00
win32.mak Update supported standalone VC++ version to 7.1+ only, and fix 2007-08-03 10:47:11 +00:00