agora inbox for pgsql-hackers@postgresql.org  
help / color / mirror / Atom feed
From: Nikita Glukhov <n.gluhov@postgrespro.ru>
To: Alexander Korotkov <a.korotkov@postgrespro.ru>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>
Subject: Re: Bug in GiST paring heap comparator
Date: Wed, 25 Sep 2019 01:19:52 +0300
Message-ID: <53536807-784c-e029-6e92-6da802ab8d60@postgrespro.ru> (raw)
In-Reply-To: <426580d3-a668-b9d1-7b8e-f74d1a6524e0@postgrespro.ru>
References: <CAPpHfdsNvNdA0DBS+wMpFrgwT6C3-q50sFVGLSiuWnV3FqOJuQ@mail.gmail.com>
	<7362fcac-3664-d960-f0fa-77c24e62a7b3@iki.fi>
	<CAPpHfdtaQZLC_9Zyn9rFMoxVKPimDBce0SwKvT5+7XH=z_xYvA@mail.gmail.com>
	<CAPpHfdvgx7hM4wJmeEeaiuYTTZjzsokJyhfL1h7Gt-sxKZidZQ@mail.gmail.com>
	<826f57ee-afc7-8977-c44c-6111d18b02ec@postgrespro.ru>
	<CAPpHfdskuYR5tN78u7Yk_H9SQdnjnYFZZ8aQ69jRbXrRVzV=9g@mail.gmail.com>
	<e9547b97-ed11-8e0e-6f40-0777d2407207@postgrespro.ru>
	<CAPpHfdvttSd3XsVp5dSgBKz=KxakWtBnbgCeJULJDRpVkB_K8A@mail.gmail.com>
	<ebcee467-547e-ca63-1858-4a485c4b8261@postgrespro.ru>
	<CAPpHfdtkvxXtxT7KADq+_Y894qM6ybAuF10rYp1bxfvYfW6dLw@mail.gmail.com>
	<907ff6e7-001c-8e86-e05f-ffe5483c2634@postgrespro.ru>
	<CAPpHfdsnNdryJ765=oqw16Nv4fKdHEJ+T5Tm07asOL6a4s3W9g@mail.gmail.com>
	<CAPpHfdsr-YceL5JyJ4DQ5O8mBksYBaS5S+rbei3Vap6hTZ4KKQ@mail.gmail.com>
	<426580d3-a668-b9d1-7b8e-f74d1a6524e0@postgrespro.ru>

On 20.09.2019 0:15, Nikita Glukhov wrote:
> On 19.09.2019 22:14, Alexander Korotkov wrote:
>> Pushed.
> Attached patch fixes premature xs_orderbynulls[] assignment.  The old value
> of NULL flag, not the new, should be checked before pfree()ing the old value.

Attached another one-line patch that fixes incorrect number of distances used
in pairingheap_SpGistSearchItem_cmp():

-    for (i = 0; i < so->numberOfOrderBys; i++)
+    for (i = 0; i < so->numberOfNonNullOrderBys; i++)


This change was present in my original commit, but it seems to have been
missed after the rebase.  Sorry.

--
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Attachments:

  [text/x-patch] 0001-Fix-number-of-distances-in-pairingheap_SpGistSearchI.patch (876B, ../53536807-784c-e029-6e92-6da802ab8d60@postgrespro.ru/3-0001-Fix-number-of-distances-in-pairingheap_SpGistSearchI.patch)
  download | inline diff:
From 2e58a94fd2f973257d1c8a3d9cd0b907c719a859 Mon Sep 17 00:00:00 2001
From: Nikita Glukhov <n.gluhov@postgrespro.ru>
Date: Tue, 24 Sep 2019 01:33:03 +0300
Subject: [PATCH] Fix number of distances in pairingheap_SpGistSearchItem_cmp()

---
 src/backend/access/spgist/spgscan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c
index cfba470..6e940fd 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 */
-- 
2.7.4

view thread (17+ messages)  latest in thread

Message-ID: <53536807-784c-e029-6e92-6da802ab8d60@postgrespro.ru>
Permalink:  ../53536807-784c-e029-6e92-6da802ab8d60@postgrespro.ru/
Also on:    postgresql.org/message-id/53536807-784c-e029-6e92-6da802ab8d60@postgrespro.ru

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: n.gluhov@postgrespro.ru, a.korotkov@postgrespro.ru, hlinnaka@iki.fi
  Subject: Re: Bug in GiST paring heap comparator
  In-Reply-To: <53536807-784c-e029-6e92-6da802ab8d60@postgrespro.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox