Add regression test case exercising the sorting path for hash index build.
We've broken this code path at least twice in the past, so it's prudent
to have a test case that covers it. To allow exercising the code path
without creating a very large (and slow to run) test case, redefine the
sort threshold to be bounded by maintenance_work_mem as well as the number
of available buffers. While at it, fix an ancient oversight that when
building a temp index, the number of available buffers is not NBuffers but
NLocBuffer. Also, if assertions are enabled, apply a direct test that the
sort actually does return the tuples in the expected order.
Peter Geoghegan
Patch: <CAM3SWZTBAo4hjbBd780+MrOKiKp_TMo1N3A0Rw9_im8gbD7fQA@mail.gmail.com>
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/9563d5b5e4c75e676d73a45546bd47b77c2bd739
Modified Files
--------------
src/backend/access/hash/hash.c | 20 +++++++++++++++++---
src/backend/access/hash/hashsort.c | 23 ++++++++++++++++++++---
src/test/regress/expected/create_index.out | 7 +++++++
src/test/regress/sql/create_index.sql | 7 +++++++
4 files changed, 51 insertions(+), 6 deletions(-)