Tanl Linguistic Pipeline |
A Cursor on a Table<T, IndexerClass>. More...
#include <table.h>
Public Member Functions | |
Cursor (TableType *table, Field *field=0) | |
Create a cursor on a column (default primary key). | |
Cursor (TableType *table, char const *name) | |
Create a cursor into the named column (must be indexed). | |
void | setKey (int8 const value) |
Prepare cursor for retrieving rows with specified key. | |
void | setKey (char const *value) |
void | setKey (byte const *value) |
DocID | getKey () |
void | getPrimaryKey (byte *key) |
Fetches into. | |
byte * | fetchRowData () |
bool | MoveNext () |
Implements Enumerator interface. | |
byte * | NextSame () |
Retrieve next row with same key as current row. | |
T * | first () |
T * | last () |
T * | previous () |
virtual T * | get () |
Implements Enumerator interface. | |
byte * | getKeyData () |
byte * | getRowData () |
int | size () const |
byte * | getNext () |
Retrieve next row. | |
byte * | getPrevious () |
Retrieve previous row. | |
T * | get (DocID docID) |
Retrieve object from DocID. | |
T * | get (byte const *key) |
Retrieve object from key. | |
T * | get (ItemType *obj) |
Retrieve the object identified by the value of the key for this Cursor in object. | |
byte * | getEQ () |
Retrieve next row with key == given key key_ must have been filled by setKey(). | |
byte * | getGE () |
Retrieve object with smallest key >= given key key_ must have been filled by setKey(). | |
byte * | getGT () |
Retrieve object with smallest key > given key key_ must have been filled by setKey(). | |
byte * | getLE () |
Retrieve object with smallest key <= given key key_ must have been filled by setKey(). | |
byte * | getLT () |
Retrieve object with smallest key < given key key_ must have been filled by setKey(). | |
ItemType * | operator-> () |
Behave as fetched object. | |
bool | update () |
Update just row data, not fulltext field. | |
Protected Attributes | |
ItemType | object |
Table< ItemType, IndexerClass > * | table |
DBT | key_ |
DBT | row_ |
Field * | field |
field scanned by cursor | |
Field * | fieldStart |
first field to retrieve | |
Field * | fieldEnd |
end field to retrieve |
A Cursor on a Table<T, IndexerClass>.
IXE::Table< T, IndexerClass >::Cursor::Cursor | ( | TableType * | table, | |
Field * | field = 0 | |||
) | [inline] |
Create a cursor on a column (default primary key).
References IXE::Table< T, IndexerClass >::Cursor::field.
IXE::Table< T, IndexerClass >::Cursor::Cursor | ( | TableType * | table, | |
char const * | name | |||
) | [inline] |
Create a cursor into the named column (must be indexed).
References IXE::MetaClass::find().
byte* IXE::Table< T, IndexerClass >::Cursor::fetchRowData | ( | ) | [inline] |
References IXE::Table< T, IndexerClass >::row, and IXE::DBT::size.
Referenced by IXE::Table< T, IndexerClass >::Cursor::get(), IXE::Table< T, IndexerClass >::Cursor::getEQ(), IXE::Table< T, IndexerClass >::Cursor::getGE(), IXE::Table< T, IndexerClass >::Cursor::getGT(), IXE::Table< T, IndexerClass >::Cursor::getLE(), IXE::Table< T, IndexerClass >::Cursor::getLT(), IXE::Table< T, IndexerClass >::Cursor::getNext(), IXE::Table< T, IndexerClass >::Cursor::getPrevious(), IXE::Table< T, IndexerClass >::Cursor::MoveNext(), and IXE::Table< T, IndexerClass >::Cursor::NextSame().
T* IXE::Table< T, IndexerClass >::Cursor::first | ( | ) | [inline] |
T* IXE::Table< T, IndexerClass >::Cursor::get | ( | ItemType * | obj | ) | [inline] |
Retrieve the object identified by the value of the key for this Cursor in object.
obj. |
References IXE::Table< T, IndexerClass >::Cursor::field, and IXE::Table< T, IndexerClass >::key.
T* IXE::Table< T, IndexerClass >::Cursor::get | ( | byte const * | key | ) | [inline] |
Retrieve object from key.
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
key | requested key |
References IXE::Table< T, IndexerClass >::key, and IXE::Table< T, IndexerClass >::Cursor::setKey().
T* IXE::Table< T, IndexerClass >::Cursor::get | ( | DocID | docID | ) | [inline] |
Retrieve object from DocID.
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
docID | requested DocID |
References IXE::Table< T, IndexerClass >::Cursor::field, and IXE::Field::setKey().
virtual T* IXE::Table< T, IndexerClass >::Cursor::get | ( | ) | [inline, virtual] |
Implements Enumerator interface.
Object returned is volatile: caller must make its own copy if needed. Only fields from fieldStart to fieldEnd are fetched.
Reimplemented from IXE::Enumerator< ItemType * >.
Reimplemented in IXE::DynamicTable::Cursor.
References IXE::Field::fetch(), IXE::Table< T, IndexerClass >::Cursor::fetchRowData(), IXE::Table< T, IndexerClass >::Cursor::field, IXE::Table< T, IndexerClass >::Cursor::fieldEnd, IXE::Table< T, IndexerClass >::Cursor::fieldStart, IXE::Table< T, IndexerClass >::Cursor::getPrimaryKey(), IXE::Table< T, IndexerClass >::mappedField(), IXE::Field::name, IXE::Field::next, IXE::Table< T, IndexerClass >::row, IXE::DBT::size, and IXE::Table< T, IndexerClass >::subFields.
byte* IXE::Table< T, IndexerClass >::Cursor::getEQ | ( | ) | [inline] |
Retrieve next row with key == given key key_ must have been filled by setKey().
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().
byte* IXE::Table< T, IndexerClass >::Cursor::getGE | ( | ) | [inline] |
Retrieve object with smallest key >= given key key_ must have been filled by setKey().
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().
byte* IXE::Table< T, IndexerClass >::Cursor::getGT | ( | ) | [inline] |
Retrieve object with smallest key > given key key_ must have been filled by setKey().
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().
DocID IXE::Table< T, IndexerClass >::Cursor::getKey | ( | ) | [inline] |
References IXE::Field::fetchKey(), and IXE::Table< T, IndexerClass >::Cursor::field.
byte* IXE::Table< T, IndexerClass >::Cursor::getKeyData | ( | ) | [inline] |
byte* IXE::Table< T, IndexerClass >::Cursor::getLE | ( | ) | [inline] |
Retrieve object with smallest key <= given key key_ must have been filled by setKey().
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().
byte* IXE::Table< T, IndexerClass >::Cursor::getLT | ( | ) | [inline] |
Retrieve object with smallest key < given key key_ must have been filled by setKey().
Relies on sort order for BDB Btrees, determined by dup_compare function (revlex_cmp, compare byte from right to left, up to smaller size).
References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().
void IXE::Table< T, IndexerClass >::Cursor::getPrimaryKey | ( | byte * | key | ) | [inline] |
Fetches into.
key | the primary key from the current row of a secondary cursor |
References IXE::Field::fetchKey(), and IXE::Table< T, IndexerClass >::Cursor::getRowData().
Referenced by IXE::Table< T, IndexerClass >::Cursor::get().
byte* IXE::Table< T, IndexerClass >::Cursor::getRowData | ( | ) | [inline] |
Referenced by IXE::Table< T, IndexerClass >::Cursor::getPrimaryKey().
T* IXE::Table< T, IndexerClass >::Cursor::last | ( | ) | [inline] |
bool IXE::Table< T, IndexerClass >::Cursor::MoveNext | ( | ) | [inline] |
Implements Enumerator interface.
Moves to then next row in the table, if there is one. For DB_HASH tables, since we don't use locking, if there several cursors open on the same table, there is no guarantee that all rows will be returned.
Reimplemented from IXE::Enumerator< ItemType * >.
References IXE::Table< T, IndexerClass >::Cursor::fetchRowData().
ItemType* IXE::Table< T, IndexerClass >::Cursor::operator-> | ( | ) | [inline] |
Behave as fetched object.
A get() must have been issued before.
T* IXE::Table< T, IndexerClass >::Cursor::previous | ( | ) | [inline] |
void IXE::Table< T, IndexerClass >::Cursor::setKey | ( | int8 const | value | ) | [inline] |
Prepare cursor for retrieving rows with specified key.
References IXE::Table< T, IndexerClass >::Cursor::field, and IXE::Field::setKey().
Referenced by IXE::Table< T, IndexerClass >::Cursor::get().
int IXE::Table< T, IndexerClass >::Cursor::size | ( | ) | const [inline] |