postgresql/src
Tom Lane 0816fad6ee Undo 8.4-era lobotomization of subquery pullup rules.
After the planner was fixed to convert some IN/EXISTS subqueries into
semijoins or antijoins, we had to prevent it from doing that in some
cases where the plans risked getting much worse.  The reason the plans
got worse was that in the unoptimized implementation, subqueries could
reference parameters from the outer query at any join level, and so
full table scans could be avoided even if they were one or more levels
of join below where the semi/anti join would be.  Now that we have
sufficient mechanism in the planner to handle such cases properly,
it should no longer be necessary to play dumb here.

This reverts commits 07b9936a0f and
cd1f0d04bf.  The latter was a stopgap
fix that wasn't really sufficiently analyzed at the time.  Rather
than just restricting ourselves to cases where the new join can be
stacked on the right-hand input, we should also consider whether it
can be stacked on the left-hand input.
2012-01-27 19:46:41 -05:00
..
backend Undo 8.4-era lobotomization of subquery pullup rules. 2012-01-27 19:46:41 -05:00
bin pg_dump: Move connection-setup code to a separate function. 2012-01-27 10:59:27 -05:00
include Use parameterized paths to generate inner indexscans more flexibly. 2012-01-27 19:26:38 -05:00
interfaces Ecpglib stores variables that are used in DECLARE statements in a global list. 2012-01-05 14:08:45 +01:00
makefiles Add pg_upgrade test suite 2011-11-27 22:42:32 +02:00
pl Improve efficiency of recent changes to plperl's sv2cstr(). 2012-01-15 16:15:04 -05:00
port Revert binary change in copyright year adjustment. 2012-01-01 19:40:13 -05:00
template Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
test Show default privileges in information schema 2012-01-27 21:58:51 +02:00
timezone Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
tools Fix pathname in pgindent README. 2012-01-09 13:31:58 -05:00
tutorial Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Fix some oversights in distprep and maintainer-clean targets. 2011-03-10 00:04:05 -05:00
Makefile.global.in Make distprep and *clean build targets recurse into all subdirectories. 2011-07-03 13:55:12 -04:00
Makefile.shlib Use single quotes in preference to double quotes for protecting pathnames. 2011-06-15 21:45:23 -04:00
nls-global.mk Sort compendium lists for msgmerge 2011-12-27 20:22:51 +02:00
win32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00