|
span< const constraint > | constraints () const noexcept |
| Returns the table of WHERE clause constraints.
|
|
span< const orderby > | orderbys () const noexcept |
| Returns the table of ORDER BY clause constraints.
|
|
uint64_t | columns_used () const noexcept |
| Returns mask of columns used by statement.
|
|
const char * | collation (int constraint_idx) const noexcept |
| Determine the collation for a constraint.
|
|
int | distinct () const noexcept |
| Determine if the query is DISTINCT.
|
|
bool | is_in (int constraint_idx) const noexcept |
| Determine if a constraint is an IN that can be processed all at once.
|
|
void | handle_in (int constraint_idx, bool handle) const noexcept |
| Set all-at-once processing of an IN operator.
|
|
span< const constraint_usage > | constraints_usage () const noexcept |
| Returns the desired usage of the constraints.
|
|
span< constraint_usage > | constraints_usage () noexcept |
| Returns the desired usage of the constraints.
|
|
int | index_number () const noexcept |
| Returns number used to identify the index.
|
|
void | set_index_number (int val) noexcept |
| Sets number used to identify the index.
|
|
T | index_data () const noexcept |
| Returns data associated with the index.
|
|
template<class X > |
void | set_index_data (X *data, bool allocated=false) noexcept |
| Set the index data.
|
|
template<class X > |
void | set_index_data (std::unique_ptr< X, sqlite_deleter< X > > data) noexcept |
| Set the index data.
|
|
template<class X > |
void | set_index_data (std::unique_ptr< X > data) noexcept |
| Set the index data.
|
|
bool | order_by_consumed () const noexcept |
| Returns whether the cursor output is already ordered.
|
|
void | set_order_by_consumed (bool val) noexcept |
| Sets whether the cursor output is already ordered.
|
|
double | estimated_cost () const noexcept |
| Returns estimated cost of using this index.
|
|
void | set_estimated_cost (double val) noexcept |
| Sets estimated cost of using this index.
|
|
int64_t | estimated_rows () const noexcept |
| Returns estimated number of rows returned.
|
|
void | set_estimated_rows (int64_t val) noexcept |
| Sets estimated number of rows returned.
|
|
int | index_flags () const noexcept |
| Returns mask of SQLITE_INDEX_SCAN_ flags.
|
|
void | set_index_flags (int val) noexcept |
| Sets mask of SQLITE_INDEX_SCAN_ flags.
|
|
void | operator delete (void *) noexcept |
| Operator delete for a fake pointer is no-op.
|
|
sqlite3_index_info * | c_ptr () const noexcept |
| Access the real underlying SQLite type.
|
|
template<class T = void>
class thinsqlitepp::index_info< T >
Virtual Table Indexing Information.
This is a fake wrapper class for sqlite3_index_info.
It is used by your functions overriding vtab::best_index but can also be used standalone if manually implementing xBestIndex.
Unlike other SQLite data types sqlite3_index_info is a real struct, not an opaque data type. If desired you can directly access the struct members via c_ptr() but this wrapper provides convenient and safe inline accessor methods for all members.
- Template Parameters
-
T | The type of the index data in sqlite3_index_info::idxStr. Must be a pointer or void . If void storing data is disabled. |
#include <thinsqlitepp/vtab.hpp>