Re: [PATCH] binary heap implementation - Mailing list pgsql-hackers

From Abhijit Menon-Sen
Subject Re: [PATCH] binary heap implementation
Date
Msg-id 20121121033059.GA21808@toroid.org
Whole thread Raw
In response to Re: [PATCH] binary heap implementation  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [PATCH] binary heap implementation  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi.

A brief response to earlier messages in this thread:

1. I agree that it's a good idea to use Datum rather than void *.
2. I don't think it's worth getting rid of binaryheap_node.
3. I agree that it makes sense to go with what we have now (after  Robert's reworking of my patch) and reconsider if
neededwhen  there are more users of the code.
 
4. I agree with all of Tom's suggestions as well.

At 2012-11-20 18:01:10 -0500, tgl@sss.pgh.pa.us wrote:
>
> Is it actually required that the output be exactly these three values,
> or is the specification really <0, 0, >0 ?

The code did require -1/0/+1, but I changed it to expect only <0, 0, >0.
So you're right, the comment should be changed.

> This in binaryheap_replace_first is simply bizarre:
> 
>     if (key)
>         heap->nodes[0].key = key;
>     if (val)
>         heap->nodes[0].value = val;

It's a leftover from the earlier implementation that used pointers,
where you could pass in NULL to leave either key or value unchanged.

> While I'm thinking about it, why are the fields of a binaryheap_node
> called "key" and "value"?  That implies a semantics not actually used
> here.  Maybe "value1" and "value2" instead?

Yes, I discussed this with Andres earlier (and considered ptr and value
or p1 and p2), but decided to wait for others to comment on the naming.
I have no problem with value1 and value2, though I'd very slightly
prefer d1 and d2 (d for Datum) now.

Robert: thanks again for your work on the patch. Do you want me to make
the changes Tom suggests above, or are you already doing it?

-- Abhijit



pgsql-hackers by date:

Previous
From: Craig Ringer
Date:
Subject: Re: Timing events WIP v1
Next
From: Tom Lane
Date:
Subject: Re: [PATCH] binary heap implementation