postgresql/src/include
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 Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
bootstrap Fix management of pendingOpsTable in auxiliary processes. 2012-07-18 15:28:10 -04:00
catalog Collect and use histograms of lower and upper bounds for range types. 2012-08-27 15:58:46 +03:00
commands Split heapam_xlog.h from heapam.h 2012-08-28 19:02:00 -04:00
datatype Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
executor Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
foreign Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
lib Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
libpq Support having multiple Unix-domain sockets per postmaster. 2012-08-10 17:27:15 -04:00
mb Fix bogus macro definition. 2012-07-10 22:36:11 -04: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 Suppress creation of backwardly-indexed paths for LATERAL join clauses. 2012-08-30 14:33:00 -04:00
parser Allow OLD and NEW in multi-row VALUES within rules. 2012-08-19 14:12:16 -04:00
port Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
portability Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
postmaster Support having multiple Unix-domain sockets per postmaster. 2012-08-10 17:27:15 -04:00
regex Re-implement extraction of fixed prefixes from regular expressions. 2012-07-10 14:54:37 -04:00
replication syncrep.h must include xlogdefs.h 2012-08-28 09:46:08 -04:00
rewrite Centralize the logic for detecting misplaced aggregates, window funcs, etc. 2012-08-10 11:36:15 -04:00
snowball Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
storage Improve coding around the fsync request queue. 2012-07-17 16:56:54 -04:00
tcop Make new event trigger facility actually do something. 2012-07-20 11:39:01 -04:00
tsearch Replace int2/int4 in C code with int16/int32 2012-06-25 01:51:46 +03:00
utils Split tuple struct defs from htup.h to htup_details.h 2012-08-30 16:52:35 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
c.h Replace int2/int4 in C code with int16/int32 2012-06-25 01:51:46 +03:00
fmgr.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
funcapi.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
getaddrinfo.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
getopt_long.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
Makefile Fix server header file installation with vpath builds 2011-11-10 20:52:54 +02:00
miscadmin.h Support having multiple Unix-domain sockets per postmaster. 2012-08-10 17:27:15 -04:00
pg_config.h.in Make configure probe for mbstowcs_l as well as wcstombs_l. 2012-08-31 14:17:56 -04:00
pg_config.h.win32 Make configure probe for mbstowcs_l as well as wcstombs_l. 2012-08-31 14:17:56 -04:00
pg_config_manual.h Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
pg_trace.h Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
pgstat.h Unify calling conventions for postgres/postmaster sub-main functions 2012-06-25 21:30:12 +03:00
pgtime.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
port.h Make new event trigger facility actually do something. 2012-07-20 11:39:01 -04:00
postgres.h Run pgindent on 9.2 source tree in preparation for first 9.3 2012-06-10 15:20:04 -04:00
postgres_ext.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
postgres_fe.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
rusagestub.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
windowapi.h Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00