postgresql/src
Tom Lane 2e824a8ea9 Rewrite choose_bitmap_and() to make it more robust in the presence of
competing alternatives for indexes to use in a bitmap scan.  The former
coding took estimated selectivity as an overriding factor, causing it to
sometimes choose indexes that were much slower to scan than ones with a
slightly worse selectivity.  It was also too narrow-minded about which
combinations of indexes to consider ANDing.  The rewrite makes it pay more
attention to index scan cost than selectivity; this seems sane since it's
impossible to have very bad selectivity with low cost, whereas the reverse
isn't true.  Also, we now consider each index alone, as well as adding
each index to an AND-group led by each prior index, for a total of about
O(N^2) rather than O(N) combinations considered.  This makes the results
much less dependent on the exact order in which the indexes are
considered.  It's still a lot cheaper than an O(2^N) exhaustive search.
A prefilter step eliminates all but the cheapest of those indexes using
the same set of WHERE conditions, to keep the effective value of N down in
scenarios where the DBA has created lots of partially-redundant indexes.
2007-04-17 20:03:03 +00:00
..
backend Rewrite choose_bitmap_and() to make it more robust in the presence of 2007-04-17 20:03:03 +00:00
bin Don't write timing output in quiet mode. 2007-04-16 20:15:38 +00:00
include Enable IPV6 for all MSVC builds, including the VC6 libpq-only build. 2007-04-16 18:39:19 +00:00
interfaces Complete cleaning 2007-04-01 08:56:58 +00:00
makefiles Add $(CFLAGS) to the simplified build rule for .so libraries on Darwin. 2006-11-28 05:45:43 +00:00
pl Support scrollable cursors (ie, 'direction' clause in FETCH) in plpgsql. 2007-04-16 17:21:24 +00:00
port Add O_DIRECT support on Windows. 2007-04-13 10:30:30 +00:00
template Make --with-ldap build on Unixware, per Olivier Prenant. 2006-12-14 21:49:54 +00:00
test Support scrollable cursors (ie, 'direction' clause in FETCH) in plpgsql. 2007-04-16 17:21:24 +00:00
timezone Arrange to install a "posixrules" entry in our timezone database, so that 2007-03-14 17:38:06 +00:00
tools Enable IPV6 for all MSVC builds, including the VC6 libpq-only build. 2007-04-16 18:39:19 +00:00
tutorial Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). 2007-02-27 23:48:10 +00:00
bcc32.mak Remove old-style win32 client-only visual c++ build infrastructure for everything except 2007-03-05 14:18:38 +00:00
DEVELOPERS Testing commit stuff 2006-07-10 15:50:02 +00:00
Makefile Remove remains of old depend target. 2007-01-20 17:16:17 +00:00
Makefile.global.in Add --with-libxslt configure option 2007-04-15 12:48:24 +00:00
Makefile.shlib Change $(CC) to $(COMPILER) on Solaris gcc so -m64 is passed into the 2007-02-20 22:45:57 +00:00
nls-global.mk When merging PO files, take into consideration translations in other PO 2006-04-05 13:40:15 +00:00
win32.mak Remove old-style win32 client-only visual c++ build infrastructure for everything except 2007-03-05 14:18:38 +00:00