summaryrefslogtreecommitdiff
path: root/src/include/lib
diff options
context:
space:
mode:
authorTom Lane2017-09-10 17:19:11 +0000
committerTom Lane2017-09-10 17:19:11 +0000
commitf80e782a6b4dcdea78f053f1505fff316f3a3289 (patch)
tree304f778d044172dcfdbd535e8015262399be5583 /src/include/lib
parentc824c7e29fe752110346fc821ad6d01357aa12f8 (diff)
Remove pre-order and post-order traversal logic for red-black trees.
This code isn't used, and there's no clear reason why anybody would ever want to use it. These traversal mechanisms don't yield a visitation order that is semantically meaningful for any external purpose, nor are they any faster or simpler than the left-to-right or right-to-left traversals. (In fact, some rough testing suggests they are slower :-(.) Moreover, these mechanisms are impossible to test in any arm's-length fashion; doing so requires knowledge of the red-black tree's internal implementation. Hence, let's just jettison them. Discussion: https://postgr.es/m/17735.1505003111@sss.pgh.pa.us
Diffstat (limited to 'src/include/lib')
-rw-r--r--src/include/lib/rbtree.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/include/lib/rbtree.h b/src/include/lib/rbtree.h
index a7183bb0b48..a4288d4fc49 100644
--- a/src/include/lib/rbtree.h
+++ b/src/include/lib/rbtree.h
@@ -35,9 +35,7 @@ typedef struct RBTree RBTree;
typedef enum RBOrderControl
{
LeftRightWalk, /* inorder: left child, node, right child */
- RightLeftWalk, /* reverse inorder: right, node, left */
- DirectWalk, /* preorder: node, left child, right child */
- InvertedWalk /* postorder: left child, right child, node */
+ RightLeftWalk /* reverse inorder: right, node, left */
} RBOrderControl;
/*
@@ -52,7 +50,6 @@ struct RBTreeIterator
RBTree *rb;
RBNode *(*iterate) (RBTreeIterator *iter);
RBNode *last_visited;
- char next_step;
bool is_over;
};