Fix bug in pairingheap_SpGistSearchItem_cmp()
authorAlexander Korotkov
Tue, 24 Sep 2019 22:47:36 +0000 (01:47 +0300)
committerAlexander Korotkov
Tue, 24 Sep 2019 22:52:55 +0000 (01:52 +0300)
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

src/backend/access/spgist/spgscan.c

index 37d56771ca5e89e3cbbfd1ef7f78b0db6db7ce7d..34983ee5a7cd013895ef30482b1a152f695c2222 100644 (file)
@@ -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 */