| От | Aleksander Alekseev |
|---|---|
| Тема | [Patch] RBTree iteration interface improvement |
| Дата | |
| Msg-id | 20160727172645.3180b2e0@fujitsu обсуждение исходный текст |
| Ответы |
Re: [Patch] RBTree iteration interface improvement
Re: [Patch] RBTree iteration interface improvement |
| Список | pgsql-hackers |
Hello While working on some new feature for PostgreSQL (which is still in development and is irrelevant in this context) I noticed that current RBTree implementation interface is following: ``` extern void rb_begin_iterate(RBTree *rb, RBOrderControl ctrl); extern RBNode *rb_iterate(RBTree *rb); ``` As you see it doesn't allow to do multiple iterations over a single tree. I believe it's a major flaw for a general-purpose container. Proposed patch introduces a new iteration interface that doesn't has such a flaw. Naturally I wrote some unit tests, but I was not sure where exactly to place them in PostgreSQL source code. For now I've just uploaded them to GitHub: https://github.com/afiskon/c-algorithms-examples/blob/master/rbtree_example.c According to these tests new implementation works as fast as current implementation and produces exactly same results. I didn't dare to remove current interface since in theory some extensions can use it. Still I believe such a move is worth considering. -- Best regards, Aleksander Alekseev
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера