From: Alexander Korotkov Date: Tue, 24 Sep 2019 22:47:36 +0000 (+0300) Subject: Fix bug in pairingheap_SpGistSearchItem_cmp() X-Git-Tag: REL_13_BETA1~1440 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=90c0987258264de07780f0329db2fce83098fba8;p=thirdparty%2Fpostgresql.git Fix bug in pairingheap_SpGistSearchItem_cmp() Our item contains only so->numberOfNonNullOrderBys of distances. Reflect that in the loop upper bound. Discussion: https://postgr.es/m/53536807-784c-e029-6e92-6da802ab8d60%40postgrespro.ru Author: Nikita Glukhov Backpatch-through: 12 --- diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c index cfba47067cc..6e940fd3def 100644 --- a/src/backend/access/spgist/spgscan.c +++ b/src/backend/access/spgist/spgscan.c @@ -56,7 +56,7 @@ pairingheap_SpGistSearchItem_cmp(const pairingheap_node *a, else { /* Order according to distance comparison */ - for (i = 0; i < so->numberOfOrderBys; i++) + for (i = 0; i < so->numberOfNonNullOrderBys; i++) { if (isnan(sa->distances[i]) && isnan(sb->distances[i])) continue; /* NaN == NaN */