| 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] |