Hi Victor,
> Postgres now has its own red-black tree implementation. This tree has 4
> types of traversals. In the attachment, you can find module test that
> checks the correctness of tree traversal strategies.
>
> I hope that someone can find it useful.
Great job! However, according to lcov report, some procedures declared
in rbtree.c are still not test covered even with your patch,
particularly:
* rb_find
* rb_leftmost
* rb_delete + dependencies (rb_delete_fixup, etc)
You can generate a corresponding report using this script [1].
I must say, I was a little surprised that rb_find is not used anywhere
in PostgreSQL code. Turned out that rbtree currently is used only by GIN
and it uses a small subset of all procedures.
If it's not too much trouble perhaps you could write a few more test so
we would have 100% test coverage for rbtree, could modify it safely and
be sure that it actually works when someone will need the rest of its
functionality?
[1]: https://github.com/afiskon/pgscripts/blob/master/code-coverage.sh
--
Best regards,
Aleksander Alekseev