PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | RBTree |
Macros | |
#define | RBTBLACK (0) |
#define | RBTRED (1) |
#define | RBTNIL (&sentinel) |
Functions | |
RBTree * | rbt_create (Size node_size, rbt_comparator comparator, rbt_combiner combiner, rbt_allocfunc allocfunc, rbt_freefunc freefunc, void *arg) |
static void | rbt_copy_data (RBTree *rbt, RBTNode *dest, const RBTNode *src) |
RBTNode * | rbt_find (RBTree *rbt, const RBTNode *data) |
RBTNode * | rbt_leftmost (RBTree *rbt) |
static void | rbt_rotate_left (RBTree *rbt, RBTNode *x) |
static void | rbt_rotate_right (RBTree *rbt, RBTNode *x) |
static void | rbt_insert_fixup (RBTree *rbt, RBTNode *x) |
RBTNode * | rbt_insert (RBTree *rbt, const RBTNode *data, bool *isNew) |
static void | rbt_delete_fixup (RBTree *rbt, RBTNode *x) |
static void | rbt_delete_node (RBTree *rbt, RBTNode *z) |
void | rbt_delete (RBTree *rbt, RBTNode *node) |
static RBTNode * | rbt_left_right_iterator (RBTreeIterator *iter) |
static RBTNode * | rbt_right_left_iterator (RBTreeIterator *iter) |
void | rbt_begin_iterate (RBTree *rbt, RBTOrderControl ctrl, RBTreeIterator *iter) |
RBTNode * | rbt_iterate (RBTreeIterator *iter) |
Variables | |
static RBTNode | sentinel |
void rbt_begin_iterate | ( | RBTree * | rbt, |
RBTOrderControl | ctrl, | ||
RBTreeIterator * | iter | ||
) |
Definition at line 740 of file rbtree.c.
References elog, ERROR, RBTreeIterator::is_over, RBTreeIterator::iterate, RBTreeIterator::last_visited, LeftRightWalk, RBTreeIterator::rbt, rbt_left_right_iterator(), rbt_right_left_iterator(), RBTNIL, RightLeftWalk, and RBTree::root.
Referenced by ginBeginBAScan(), testleftright(), and testrightleft().
Definition at line 127 of file rbtree.c.
References generate_unaccent_rules::dest, and RBTree::node_size.
Referenced by rbt_delete_node(), and rbt_insert().
RBTree* rbt_create | ( | Size | node_size, |
rbt_comparator | comparator, | ||
rbt_combiner | combiner, | ||
rbt_allocfunc | allocfunc, | ||
rbt_freefunc | freefunc, | ||
void * | arg | ||
) |
Definition at line 102 of file rbtree.c.
References RBTree::allocfunc, RBTree::arg, arg, Assert(), RBTree::combiner, RBTree::comparator, RBTree::freefunc, RBTree::node_size, palloc(), RBTNIL, and RBTree::root.
Referenced by create_int_rbtree(), and ginInitBA().
Definition at line 459 of file rbtree.c.
References RBTNode::color, RBTNode::left, rbt_rotate_left(), rbt_rotate_right(), RBTBLACK, RBTRED, RBTNode::right, RBTree::root, and x.
Referenced by rbt_delete_node().
Definition at line 557 of file rbtree.c.
References RBTree::arg, RBTree::freefunc, RBTNode::left, rbt_copy_data(), rbt_delete_fixup(), RBTBLACK, RBTNIL, RBTNode::right, RBTree::root, x, and y.
Referenced by rbt_delete().
Definition at line 145 of file rbtree.c.
References RBTree::arg, cmp(), RBTree::comparator, data, RBTNode::left, RBTNIL, RBTNode::right, and RBTree::root.
Referenced by testdelete(), and testfind().
Definition at line 391 of file rbtree.c.
References RBTree::allocfunc, RBTree::arg, cmp(), RBTree::combiner, RBTree::comparator, data, RBTNode::left, rbt_copy_data(), rbt_insert_fixup(), RBTNIL, RBTRED, RBTNode::right, RBTree::root, and x.
Referenced by ginInsertBAEntry(), and rbt_populate().
Definition at line 282 of file rbtree.c.
References RBTNode::color, rbt_rotate_left(), rbt_rotate_right(), RBTBLACK, RBTRED, RBTree::root, x, and y.
Referenced by rbt_insert().
RBTNode* rbt_iterate | ( | RBTreeIterator * | iter | ) |
Definition at line 764 of file rbtree.c.
References RBTreeIterator::is_over, and RBTreeIterator::iterate.
Referenced by ginGetBAEntry(), testleftright(), and testrightleft().
|
static |
Definition at line 643 of file rbtree.c.
References RBTreeIterator::is_over, RBTreeIterator::last_visited, RBTNode::left, RBTNode::parent, RBTreeIterator::rbt, RBTNIL, RBTNode::right, and RBTree::root.
Referenced by rbt_begin_iterate().
Definition at line 173 of file rbtree.c.
References RBTNode::left, RBTNIL, and RBTree::root.
Referenced by testdelete(), and testleftmost().
|
static |
Definition at line 685 of file rbtree.c.
References RBTreeIterator::is_over, RBTreeIterator::last_visited, RBTNode::left, RBTNode::parent, RBTreeIterator::rbt, RBTNIL, RBTNode::right, and RBTree::root.
Referenced by rbt_begin_iterate().
Definition at line 201 of file rbtree.c.
References RBTNIL, RBTree::root, x, and y.
Referenced by rbt_delete_fixup(), and rbt_insert_fixup().
Definition at line 238 of file rbtree.c.
References RBTNIL, RBTree::root, x, and y.
Referenced by rbt_delete_fixup(), and rbt_insert_fixup().