]> granicus.if.org Git - postgresql/commit
Improve bit perturbation in TupleHashTableHash.
authorAndres Freund <andres@anarazel.de>
Mon, 29 Jan 2018 19:02:09 +0000 (11:02 -0800)
committerAndres Freund <andres@anarazel.de>
Mon, 29 Jan 2018 19:24:57 +0000 (11:24 -0800)
commitc068f87723ca9cded1f2aceb956ede49de651690
tree8f573c901557dbb7e909a491c9955e866d9052f5
parent15be27460191a9ffb149cc98f6fbf97c369a6b1e
Improve bit perturbation in TupleHashTableHash.

The changes in b81b5a96f424531b97cdd1dba97d9d1b9c9d372e did not fully
address the issue, because the bit-mixing of the IV into the final
hash-key didn't prevent clustering in the input-data survive in the
output data.

This didn't cause a lot of problems because of the additional growth
conditions added d4c62a6b623d6eef88218158e9fa3cf974c6c7e5. But as we
want to rein those in due to explosive growth in some edges, this
needs to be fixed.

Author: Andres Freund
Discussion: https://postgr.es/m/20171127185700.1470.20362@wrigleys.postgresql.org
Backpatch: 10, where simplehash was introduced
src/backend/executor/execGrouping.c
src/test/regress/expected/groupingsets.out
src/test/regress/sql/groupingsets.sql