Fix logic bug in gistchoose and gistRelocateBuildBuffersOnSplit. Every time the best-tuple-found-so-far changes, we need to reset all the penalty values in which_grow[] to the penalties for the new best tuple. The old code failed to do this, resulting in inferior index quality.
The original patch from Alexander Korotkov was just two lines; I took the liberty of fleshing that out by adding a bunch of comments that I hope will make this logic easier for others to understand than it was for me. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/c8ba697a4bdb934f0c51424c654e8db6133ea255 Modified Files -------------- src/backend/access/gist/gistbuildbuffers.c | 43 +++++++++++++++++++++++---- src/backend/access/gist/gistutil.c | 45 ++++++++++++++++++++++++++- 2 files changed, 80 insertions(+), 8 deletions(-) -- Sent via pgsql-committers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers
