#include <xapian/visibility.h>
#include <algorithm>
#include <string>
#include "quartz_types.h"
#include "btree_base.h"
#include "btree_util.h"
#include "bcursor.h"
#include "noreturn.h"
Include dependency graph for btree.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Classes | |
class | Key |
class | Item_base< T > |
class | Item |
class | Item_wr |
class | Btree |
Class managing a Btree table in a Quartz database. More... | |
Defines | |
#define | BYTES_PER_BLOCK_NUMBER 4 |
#define | K1 1 |
#define | I2 2 |
#define | D2 2 |
#define | C2 2 |
#define | GETK(p, c) GETINT1(p, c) |
#define | SETD(p, c, x) SETINT2(p, c, x) |
#define | REVISION(b) static_cast<unsigned int>(get_int4(b, 0)) |
#define | GET_LEVEL(b) GETINT1(b, 4) |
#define | MAX_FREE(b) GETINT2(b, 5) |
#define | TOTAL_FREE(b) GETINT2(b, 7) |
#define | DIR_END(b) GETINT2(b, 9) |
#define | DIR_START 11 |
#define | SET_REVISION(b, x) set_int4(b, 0, x) |
#define | SET_LEVEL(b, x) SETINT1(b, 4, x) |
#define | SET_MAX_FREE(b, x) SETINT2(b, 5, x) |
#define | SET_TOTAL_FREE(b, x) SETINT2(b, 7, x) |
#define | SET_DIR_END(b, x) SETINT2(b, 9, x) |
#define | SEQ_START_POINT (-10) |
Flip to sequential addition block-splitting after this number of observed sequential additions (in negated form). | |
#define | BLOCK_CAPACITY 4 |
Even for items of at maximum size, it must be possible to get this number of items in a block. | |
#define | BTREE_CURSOR_LEVELS 10 |
Variables | |
const string::size_type | BTREE_MAX_KEY_LEN = 252 |
The largest possible value of a key_len. |
#define GETK | ( | p, | |||
c | ) | GETINT1(p, c) |
Definition at line 64 of file btree.h.
Referenced by Item_base< const byte * >::append_chunk(), Item_base< const byte * >::component_of(), Item_base< const byte * >::components_of(), Key::length(), Item_wr::set_component_of(), and Item_wr::set_components_of().
#define SETD | ( | p, | |||
c, | |||||
x | ) | SETINT2(p, c, x) |
Definition at line 65 of file btree.h.
Referenced by Btree::add_item_to_block(), Btree::add_kt(), Btree::compact(), and Btree::read_root().
#define REVISION | ( | b | ) | static_cast<unsigned int>(get_int4(b, 0)) |
#define SEQ_START_POINT (-10) |
#define BLOCK_CAPACITY 4 |
const string::size_type BTREE_MAX_KEY_LEN = 252 |
The largest possible value of a key_len.
This gives the upper limit of the size of a key that may be stored in the B-tree (252 bytes with the present implementation).
Definition at line 42 of file btree.h.
Referenced by Btree::add(), Btree::del(), Bcursor::find_entry(), Item_wr::form_key(), Btree::get_exact_entry(), and process_lines().