27#ifndef TEMPTABLE_CURSOR_H 
   28#define TEMPTABLE_CURSOR_H 
   49      const Hash_duplicates_container::const_iterator &iterator);
 
   54      const Tree_container::const_iterator &iterator);
 
   80      unsigned char *mysql_row,
 
   82      size_t mysql_row_length) const;
 
  110      const 
Cursor &other) const;
 
  116      const 
Cursor &other) const;
 
  145    : m_type(
Type::
HASH), m_is_positioned(true), m_hash_iterator(iterator) {}
 
  148    : m_type(
Type::
TREE), m_is_positioned(true), m_tree_iterator(iterator) {}
 
  177                                        unsigned char *mysql_row,
 
  178                                        size_t mysql_row_length)
 const {
 
  258  return !(*
this == other);
 
A cursor for iterating over an Index.
Definition: cursor.h:41
 
Cursor()
Constructor.
Definition: cursor.h:142
 
Cursor & operator--()
Recede the cursor backwards.
Definition: cursor.h:232
 
bool m_is_positioned
Indicate whether the cursor is positioned.
Definition: cursor.h:131
 
bool operator==(const Cursor &other) const
Check if equal to another cursor.
Definition: cursor.h:246
 
void unposition()
Unposition the cursor.
Definition: cursor.h:152
 
Tree_container::const_iterator m_tree_iterator
Iterator that is used if m_type == Type::TREE.
Definition: cursor.h:137
 
Type
Type of the index the cursor iterates over.
Definition: cursor.h:120
 
const Hash_duplicates_container::const_iterator & hash_iterator() const
Get the underlying hash iterator.
Definition: cursor.h:191
 
Cursor & operator++()
Advance the cursor forward.
Definition: cursor.h:219
 
void export_row_to_mysql(const Columns &columns, unsigned char *mysql_row, size_t mysql_row_length) const
Export the row that is pointed to by this cursor in mysql write_row() format.
Definition: cursor.h:176
 
Type m_type
Type of the index the cursor iterates over.
Definition: cursor.h:128
 
Storage::Element * row() const
Get a pointer to the row of the current cursor position.
Definition: cursor.h:165
 
const Indexed_cells & indexed_cells() const
Get the indexed cells of the current cursor position.
Definition: cursor.h:154
 
Cursor & operator=(const Cursor &rhs)
Copy-assign from another cursor.
Definition: cursor.h:202
 
Cursor(const Cursor &)=default
 
bool is_positioned() const
Check if the cursor is positioned.
Definition: cursor.h:150
 
bool operator!=(const Cursor &other) const
Check if not equal to another cursor.
Definition: cursor.h:257
 
Hash_duplicates_container::const_iterator m_hash_iterator
Iterator that is used if m_type == Type::HASH.
Definition: cursor.h:134
 
const Tree_container::const_iterator & tree_iterator() const
Get the underlying tree iterator.
Definition: cursor.h:197
 
Cursor(Cursor &&) noexcept=default
 
Indexed cells represent one or more cells that are covered by an index.
Definition: indexed_cells.h:46
 
Storage container.
Definition: storage.h:43
 
void Element
Type used for elements.
Definition: storage.h:46
 
TempTable index containers declarations.
 
TempTable Indexed Cells declaration.
 
void my_abort()
Calls our own implementation of abort, if specified, or std's abort().
Definition: my_init.cc:263
 
Definition: allocator.h:45
 
std::multiset< Indexed_cells, Indexed_cells_less, Allocator< Indexed_cells > > Tree_container
The container used by tree unique and non-unique indexes.
Definition: containers.h:42
 
std::unordered_multiset< Indexed_cells, Indexed_cells_hash, Indexed_cells_equal_to, Allocator< Indexed_cells > > Hash_duplicates_container
The container used by hash non-unique indexes.
Definition: containers.h:48
 
std::vector< Column, Allocator< Column > > Columns
A type that designates all the columns of a table.
Definition: column.h:227
 
TempTable Column declaration.
 
TempTable Row declarations.