postgresql/src/backend
Tom Lane 4adc2f72a4 Change hash indexes to store only the hash code rather than the whole indexed
value.  This means that hash index lookups are always lossy and have to be
rechecked when the heap is visited; however, the gain in index compactness
outweighs this when the indexed values are wide.  Also, we only need to
perform datatype comparisons when the hash codes match exactly, rather than
for every entry in the hash bucket; so it could also win for datatypes that
have expensive comparison functions.  A small additional win is gained by
keeping hash index pages sorted by hash code and using binary search to reduce
the number of index tuples we have to look at.

Xiao Meng

This commit also incorporates Zdenek Kotala's patch to isolate hash metapages
and hash bitmaps a bit better from the page header datastructures.
2008-09-15 18:43:41 +00:00
..
access Change hash indexes to store only the hash code rather than the whole indexed 2008-09-15 18:43:41 +00:00
bootstrap Prevent memory leaks in our various bison parsers when an error occurs 2008-09-02 20:37:55 +00:00
catalog Change hash indexes to store only the hash code rather than the whole indexed 2008-09-15 18:43:41 +00:00
commands Initialize the minimum frozen Xid in vac_update_datfrozenxid using 2008-09-11 14:01:10 +00:00
executor Initialize the minimum frozen Xid in vac_update_datfrozenxid using 2008-09-11 14:01:10 +00:00
lib Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
libpq Parse pg_hba.conf in postmaster, instead of once in each backend for 2008-09-15 12:32:57 +00:00
main Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
nodes Improve the plan cache invalidation mechanism to make it invalidate plans 2008-09-09 18:58:09 +00:00
optimizer Skip opfamily check in eclass_matches_any_index() when the index isn't a 2008-09-12 14:56:13 +00:00
parser Adjust the parser to accept the typename syntax INTERVAL ... SECOND(n) 2008-09-11 15:27:30 +00:00
po Translation updates 2008-01-31 18:04:52 +00:00
port Fix a couple of bugs in win32 shmem name generation: 2008-07-04 10:50:18 +00:00
postmaster Parse pg_hba.conf in postmaster, instead of once in each backend for 2008-09-15 12:32:57 +00:00
regex Refactor backend makefiles to remove lots of duplicate code 2008-02-19 10:30:09 +00:00
rewrite Add a bunch of new error location reports to parse-analysis error messages. 2008-09-01 20:42:46 +00:00
snowball Implement a few changes to how shared libraries and dynamically loadable 2008-04-07 14:15:58 +00:00
storage Introduce the concept of relation forks. An smgr relation can now consist 2008-08-11 11:05:11 +00:00
tcop Add a bunch of new error location reports to parse-analysis error messages. 2008-09-01 20:42:46 +00:00
tsearch Create a type-specific typanalyze routine for tsvector, which collects stats 2008-07-14 00:51:46 +00:00
utils Change hash indexes to store only the hash code rather than the whole indexed 2008-09-15 18:43:41 +00:00
Makefile Remove all traces that suggest that a non-Bison yacc might be supported, and 2008-08-29 13:02:33 +00:00
common.mk Code coverage testing with gcov. Documentation is in the regression test 2008-09-05 12:11:18 +00:00
nls.mk Add a new ereport auxiliary function errdetail_log(), which works the same as 2008-03-24 18:08:47 +00:00