postgresql/src/backend
Tom Lane 6d2c8c0e2a Drop cheap-startup-cost paths during add_path() if we don't need them.
We can detect whether the planner top level is going to care at all about
cheap startup cost (it will only do so if query_planner's tuple_fraction
argument is greater than zero).  If it isn't, we might as well discard
paths immediately whose only advantage over others is cheap startup cost.
This turns out to get rid of quite a lot of paths in complex queries ---
I saw planner runtime reduction of more than a third on one large query.

Since add_path isn't currently passed the PlannerInfo "root", the easiest
way to tell it whether to do this was to add a bool flag to RelOptInfo.
That's a bit redundant, since all relations in a given query level will
have the same setting.  But in the future it's possible that we'd refine
the control decision to work on a per-relation basis, so this seems like
a good arrangement anyway.

Per my suggestion of a few months ago.
2012-09-01 18:16:24 -04:00
..
access Improve coding of gistchoose and gistRelocateBuildBuffersOnSplit. 2012-08-30 22:53:17 -04:00
bootstrap Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
catalog Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
commands Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
executor Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
foreign Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
lib Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
libpq Support having multiple Unix-domain sockets per postmaster. 2012-08-10 17:27:15 -04:00
main Unify calling conventions for postgres/postmaster sub-main functions 2012-06-25 21:30:12 +03:00
nodes Drop cheap-startup-cost paths during add_path() if we don't need them. 2012-09-01 18:16:24 -04:00
optimizer Drop cheap-startup-cost paths during add_path() if we don't need them. 2012-09-01 18:16:24 -04:00
parser Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
po Translation updates 2011-08-17 14:07:46 +03:00
port Remove misleading hints about reducing the System V request size. 2012-07-03 10:07:47 -04:00
postmaster Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
regex Prevent corner-case core dump in rfree(). 2012-07-15 13:27:54 -04:00
replication Fix typos in README. 2012-08-31 11:30:11 +03:00
rewrite Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
snowball Remove configure flag --disable-shared, as it is no longer used by any 2012-08-30 16:26:53 -04:00
storage Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
tcop Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
tsearch Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
utils Make configure probe for mbstowcs_l as well as wcstombs_l. 2012-08-31 14:17:56 -04:00
.gitignore Add gitignore for mingw/cygwin build outputs 2011-06-09 18:11:47 +02:00
Makefile Fix incorrect make maintainer-clean rule. 2012-04-07 18:16:50 -04:00
common.mk Call check_keywords.pl in maintainer-check 2012-02-27 13:53:12 +02:00
nls.mk Sort file list when creating gettext-files 2011-12-27 20:20:56 +02:00