72
72
#define is_tree_inited(tree) ((tree)->root != 0)
74
74
/* Functions on leafs */
75
TREE_ELEMENT *tree_insert(TREE *tree,void *key, uint32_t key_size,
75
TREE_ELEMENT *tree_insert(TREE *tree,void *key, uint32_t key_size,
77
77
void *tree_search(TREE *tree, void *key, void *custom_arg);
78
78
int tree_walk(TREE *tree,tree_walk_action action,
79
79
void *argument, TREE_WALK visit);
80
80
int tree_delete(TREE *tree, void *key, uint32_t key_size, void *custom_arg);
81
void *tree_search_key(TREE *tree, const void *key,
81
void *tree_search_key(TREE *tree, const void *key,
82
82
TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos,
83
83
enum ha_rkey_function flag, void *custom_arg);
84
void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents,
84
void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents,
85
85
TREE_ELEMENT ***last_pos, int child_offs);
86
void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs,
86
void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs,
88
ha_rows tree_record_pos(TREE *tree, const void *key,
88
ha_rows tree_record_pos(TREE *tree, const void *key,
89
89
enum ha_rkey_function search_flag, void *custom_arg);
91
91
#define TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*))