#include <btree.h>
Public Member Functions | |
Key (const byte *p_) | |
const byte * | get_address () const |
void | read (string *key) const |
bool | operator== (Key key2) const |
bool | operator!= (Key key2) const |
bool | operator< (Key key2) const |
Compares this key with key2. | |
bool | operator>= (Key key2) const |
bool | operator> (Key key2) const |
bool | operator<= (Key key2) const |
int | length () const |
char | operator[] (size_t i) const |
Private Attributes | |
const byte * | p |
Definition at line 156 of file btree.h.
const byte* Key::get_address | ( | ) | const [inline] |
Definition at line 160 of file btree.h.
Referenced by Btree::enter_key(), Btree::find_in_block(), and Item_wr::set_key_and_block().
void Key::read | ( | string * | key | ) | const [inline] |
bool Key::operator== | ( | Key | key2 | ) | const |
bool Key::operator< | ( | Key | key2 | ) | const |
Compares this key with key2.
The result is true if this key precedes key2. The comparison is for byte sequence collating order, taking lengths into account. So if the keys are made up of lower case ASCII letters we get alphabetical ordering.
Now remember that items are added into the B-tree in fastest time when they are preordered by their keys. This is therefore the piece of code that needs to be followed to arrange for the preordering.
This is complicated by the fact that keys have two parts - a value and then a count. We first compare the values, and only if they are equal do we compare the counts.
int Key::length | ( | ) | const [inline] |
Definition at line 170 of file btree.h.
Referenced by Btree::add(), Btree::enter_key(), operator<(), operator==(), and Item_wr::set_key_and_block().
char Key::operator[] | ( | size_t | i | ) | const [inline] |