Improve hash_any() to use word-wide fetches when hashing suitably aligned
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 6 Apr 2008 16:54:49 +0000 (16:54 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 6 Apr 2008 16:54:49 +0000 (16:54 +0000)
commitca99e6a2c9468286904c78f01653ca96cd12cc76
treebd2a85cd6f33a0b943e309926bf72e88af662dcd
parent15bd443a6e9f11a0d045b2be7e8ce22f57cdd366
Improve hash_any() to use word-wide fetches when hashing suitably aligned
data.  This makes for a significant speedup at the cost that the results
now vary between little-endian and big-endian machines; which forces us
to add explicit ORDER BYs in a couple of regression tests to preserve
machine-independent comparison results.  Also, force initdb by bumping
catversion, since the contents of hash indexes will change (at least on
big-endian machines).

Kenneth Marshall and Tom Lane, based on work from Bob Jenkins.  This commit
does not adopt Bob's new faster mix() algorithm, however, since we still need
to convince ourselves that that doesn't degrade the quality of the hashing.
contrib/dblink/expected/dblink.out
contrib/dblink/sql/dblink.sql
src/backend/access/hash/hashfunc.c
src/include/catalog/catversion.h
src/test/regress/expected/portals.out
src/test/regress/sql/portals.sql