postgresql/src
Tom Lane e54b10a62d Remove the "last ditch" code path in join_search_one_level().
So far as I can tell, it is no longer possible for this heuristic to do
anything useful, because the new weaker definition of
have_relevant_joinclause means that any relation with a joinclause must be
considered joinable to at least one other relation.  It would still be
possible for the code block to be entered, for example if there are join
order restrictions that prevent any join of the current level from being
formed; but in that case it's just a waste of cycles to attempt to form
cartesian joins, since the restrictions will still apply.

Furthermore, IMO the existence of this code path can mask bugs elsewhere;
we would have noticed the problem with cartesian joins a lot sooner if
this code hadn't compensated for it in the simplest case.

Accordingly, let's remove it and see what happens.  I'm committing this
separately from the prerequisite changes in have_relevant_joinclause,
just to make the question easier to revisit if there is some fault in
my logic.
2012-04-13 16:07:18 -04:00
..
backend Remove the "last ditch" code path in join_search_one_level(). 2012-04-13 16:07:18 -04:00
bin Consistently quote encoding and locale names in messages 2012-04-13 20:37:07 +03:00
include Rename bytea_agg to string_agg and add delimiter argument 2012-04-13 21:36:59 +03:00
interfaces Accept postgres:// URIs in libpq connection functions 2012-04-11 04:33:51 -03:00
makefiles pgxs: Supply default values for BISON and FLEX variables 2012-03-30 20:36:49 +03:00
pl Fix plpgsql named-cursor-parameter feature for variable name conflicts. 2012-04-04 21:50:31 -04:00
port Remove now redundant pgpipe code. 2012-03-28 23:24:07 -04:00
template Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
test Weaken the planner's tests for relevant joinclauses. 2012-04-13 16:07:17 -04:00
timezone Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
tools Remove now redundant pgpipe code. 2012-03-28 23:24:07 -04: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
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 ecpg: Improve test building 2012-02-02 20:33:29 +02:00
Makefile.shlib Use single quotes in preference to double quotes for protecting pathnames. 2011-06-15 21:45:23 -04:00
bcc32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
nls-global.mk NLS: Initialize Project-Id-Version field by xgettext 2012-04-10 21:26:17 +03:00
win32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00