From: | Aleksander Alekseev <a(dot)alekseev(at)postgrespro(dot)ru> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [Patch] RBTree iteration interface improvement |
Date: | 2016-07-28 15:00:23 |
Message-ID: | 20160728180023.7f452258@fujitsu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> Can you explain use case where you need it?
Sure. You can consider RBTree as a container that always keeps its
elements in sorted order. Now imagine you would like to write a code
like this:
```
/* iterate over items in sorted order */
while(item1 = left_right_walk(tree))
{
/* another iteration, probably even in different procedure */
while(item2 = left_right_walk(tree))
{
/* ... some logic ... */
}
}
```
Currently you can't do it.
Or maybe you have different objects, e.g. IndexScanDesc's, that should
iterate over some tree's independently somewhere in indexam.c
procedures. Exact order may depend on user's query so you don't even
control it.
--
Best regards,
Aleksander Alekseev
From | Date | Subject | |
---|---|---|---|
Next Message | Alex Ignatov | 2016-07-28 15:05:14 | Re: Why we lost Uber as a user |
Previous Message | Tom Lane | 2016-07-28 14:58:24 | Re: pg_upgrade: exit_hook_registered variable |