postgresql/src/backend
Heikki Linnakangas 918eee0c49 Collect and use histograms of lower and upper bounds for range types.
This enables selectivity estimation of the <<, >>, &<, &> and && operators,
as well as the normal inequality operators: <, <=, >=, >. "range @> element"
is also supported, but the range-variant @> and <@ operators are not,
because they cannot be sensibly estimated with lower and upper bound
histograms alone. We would need to make some assumption about the lengths of
the ranges for that. Alexander's patch included a separate histogram of
lengths for that, but I left that out of the patch for simplicity. Hopefully
that will be added as a followup patch.

The fraction of empty ranges is also calculated and used in estimation.

Alexander Korotkov, heavily modified by me.
2012-08-27 15:58:46 +03:00
..
access Avoid somewhat-theoretical overflow risks in RecordIsValid(). 2012-08-21 18:41:52 -04:00
bootstrap Fix management of pendingOpsTable in auxiliary processes. 2012-07-18 15:28:10 -04:00
catalog Make use of LATERAL in information_schema.sequences view. 2012-08-18 16:14:57 -04:00
commands Fix issues with checks for unsupported transaction states in Hot Standby. 2012-08-24 13:09:04 -04:00
executor Fix rescan logic in nodeCtescan. 2012-08-15 19:02:33 -04:00
foreign Add GetForeignColumnOptions() to foreign.c, and add some documentation. 2012-03-07 18:20:58 -05: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 Fix up planner infrastructure to support LATERAL properly. 2012-08-26 22:50:23 -04:00
optimizer Fix up planner infrastructure to support LATERAL properly. 2012-08-26 22:50:23 -04:00
parser Allow OLD and NEW in multi-row VALUES within rules. 2012-08-19 14:12:16 -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 Remove external PID file on postmaster exit 2012-08-20 23:47:11 -04:00
regex Prevent corner-case core dump in rfree(). 2012-07-15 13:27:54 -04:00
replication Turn off WalSender keepalives by default, users can enable if desired 2012-08-09 17:07:03 +01:00
rewrite Fix up planner infrastructure to support LATERAL properly. 2012-08-26 22:50:23 -04:00
snowball Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
storage Fix issues with checks for unsupported transaction states in Hot Standby. 2012-08-24 13:09:04 -04:00
tcop Support having multiple Unix-domain sockets per postmaster. 2012-08-10 17:27:15 -04:00
tsearch Make new event trigger facility actually do something. 2012-07-20 11:39:01 -04:00
utils Collect and use histograms of lower and upper bounds for range types. 2012-08-27 15:58:46 +03:00
.gitignore Add gitignore for mingw/cygwin build outputs 2011-06-09 18:11:47 +02:00
common.mk Call check_keywords.pl in maintainer-check 2012-02-27 13:53:12 +02:00
Makefile Fix incorrect make maintainer-clean rule. 2012-04-07 18:16:50 -04:00
nls.mk Sort file list when creating gettext-files 2011-12-27 20:20:56 +02:00