Re: [PATCH] binary heap implementation
| От | Abhijit Menon-Sen |
|---|---|
| Тема | Re: [PATCH] binary heap implementation |
| Дата | |
| Msg-id | 20121121033059.GA21808@toroid.org обсуждение исходный текст |
| Ответ на | Re: [PATCH] binary heap implementation (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: [PATCH] binary heap implementation
|
| Список | 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 по дате отправления: