pgsql: Fix building of large (bigger than shared_buffers) hash indexes.
От | Tom Lane |
---|---|
Тема | pgsql: Fix building of large (bigger than shared_buffers) hash indexes. |
Дата | |
Msg-id | E1bGYAd-0005KJ-77@gemulon.postgresql.org обсуждение исходный текст |
Ответы |
Re: pgsql: Fix building of large (bigger than
shared_buffers) hash indexes.
|
Список | pgsql-committers |
Fix building of large (bigger than shared_buffers) hash indexes. When the index is predicted to need more than NBuffers buckets, CREATE INDEX attempts to sort the index entries by hash key before insertion, so as to reduce thrashing. This code path got broken by commit 9f03ca915196dfc8, which overlooked that _hash_form_tuple() is not just an alias for index_form_tuple(). The index got built anyway, but with garbage data, so that searches for pre-existing tuples always failed. Fix by refactoring to separate construction of the indexable data from calling index_form_tuple(). Per bug #14210 from Daniel Newman. Back-patch to 9.5 where the bug was introduced. Report: <20160623162507.17237.39471@wrigleys.postgresql.org> Branch ------ REL9_5_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/07f69137b15e594edfaec29f73efa86aa442902c Modified Files -------------- src/backend/access/hash/hash.c | 34 +++++++++++++++-------------- src/backend/access/hash/hashutil.c | 44 +++++++++++++++++++++++--------------- src/include/access/hash.h | 5 +++-- 3 files changed, 48 insertions(+), 35 deletions(-)
В списке pgsql-committers по дате отправления: