Drizzled Public API Documentation

drizzled::JoinTable Class Reference

Public Types

enum  { KEEP_ROWID = 1, CALL_POSITION = 2 }

Public Member Functions

void cleanup ()
bool is_using_loose_index_scan ()
void readCachedRecord ()
int joinReadConstTable (optimizer::Position *pos)
int joinReadSystem ()

Public Attributes

Tabletable
optimizer::KeyUsekeyuse
optimizer::SqlSelectselect
CONDselect_cond
optimizer::QuickSelectInterfacequick
Itempre_idx_push_select_cond
Item ** on_expr_ref
COND_EQUALcond_equal
JoinTablefirst_inner
bool found
bool not_null_compl
JoinTablelast_inner
JoinTablefirst_upper
JoinTablefirst_unmatched
const char * info
uint32_t packed_info
Read_record_func read_first_record
Next_select_func next_select
ReadRecord read_record
Read_record_func save_read_first_record
int(* save_read_record )(ReadRecord *)
double worst_seeks
key_map const_keys
key_map checked_keys
key_map needed_reg
key_map keys
ha_rows records
ha_rows found_records
ha_rows read_time
table_map dependent
table_map key_dependent
uint32_t use_quick
uint32_t index
uint32_t status
uint32_t used_fields
uint32_t used_fieldlength
uint32_t used_blobs
enum access_method type
bool cached_eq_ref_table
bool eq_ref_table
bool not_used_in_distinct
bool sorted
ha_rows limit
table_reference_st ref
JoinCache cache
Joinjoin
JoinTableinsideout_match_tab
unsigned char * insideout_buf
bool found_match
int rowid_keep_flags
std::bitset< 64 > embedding_map

Detailed Description

Definition at line 67 of file join_table.h.

Member Data Documentation

key_map drizzled::JoinTable::checked_keys

Keys checked in find_best

Definition at line 159 of file join_table.h.

Referenced by drizzled::make_join_statistics(), and drizzled::update_ref_and_keys().

COND_EQUAL* drizzled::JoinTable::cond_equal

multiple equalities for the on expression

Definition at line 131 of file join_table.h.

Referenced by drizzled::make_outerjoin_info().

key_map drizzled::JoinTable::const_keys
std::bitset<64> drizzled::JoinTable::embedding_map

Bitmap of nested joins this table is part of

Definition at line 229 of file join_table.h.

Referenced by drizzled::check_interleaving_with_nj(), and drizzled::make_join_statistics().

JoinTable* drizzled::JoinTable::first_inner

first inner table for including outerjoin

Definition at line 132 of file join_table.h.

Referenced by drizzled::eq_ref_table(), drizzled::Join::exec(), drizzled::optimizer::Scan::getStats(), and drizzled::make_outerjoin_info().

JoinTable* drizzled::JoinTable::first_unmatched

used for optimization purposes only

Definition at line 137 of file join_table.h.

Referenced by drizzled::evaluate_join_record(), drizzled::evaluate_null_complemented_join_record(), and drizzled::sub_select().

JoinTable* drizzled::JoinTable::first_upper

first inner table for embedding outer join

Definition at line 136 of file join_table.h.

Referenced by drizzled::evaluate_join_record(), drizzled::evaluate_null_complemented_join_record(), and drizzled::make_outerjoin_info().

bool drizzled::JoinTable::found

true after all matches or null complement

Definition at line 133 of file join_table.h.

Referenced by drizzled::evaluate_join_record(), drizzled::evaluate_null_complemented_join_record(), and drizzled::sub_select().

bool drizzled::JoinTable::found_match

Used by InsideOut scan. Just set to true when have found a row.

Definition at line 211 of file join_table.h.

Referenced by drizzled::evaluate_join_record().

ha_rows drizzled::JoinTable::found_records

Number of records that will be scanned (yes scanned, not returned) by the best 'independent' access method, i.e. table scan or QUICK_*_SELECT)

Definition at line 169 of file join_table.h.

Referenced by drizzled::best_access_path(), drizzled::join_tab_cmp(), and drizzled::make_join_statistics().

unsigned char* drizzled::JoinTable::insideout_buf

Buffer to save index tuple to be able to skip dups

Definition at line 208 of file join_table.h.

JoinTable* drizzled::JoinTable::insideout_match_tab

ptr - this join tab should do an InsideOut scan. Points to the tab for which we'll need to check tab->found_match.

NULL - Not an insideout scan.

Definition at line 207 of file join_table.h.

Referenced by drizzled::optimizer::Index::getStats(), and drizzled::optimizer::Scan::getStats().

key_map drizzled::JoinTable::keys

all keys with can be used

Definition at line 161 of file join_table.h.

Referenced by drizzled::get_best_combination(), and drizzled::make_join_statistics().

JoinTable* drizzled::JoinTable::last_inner
ha_rows drizzled::JoinTable::limit

If it's not 0 the number stored this field indicates that the index scan has been chosen to access the table data and we expect to scan this number of rows for the table.

Definition at line 196 of file join_table.h.

Referenced by drizzled::test_if_skip_sort_order().

bool drizzled::JoinTable::not_null_compl

true before null complement is added

Definition at line 134 of file join_table.h.

Referenced by drizzled::evaluate_null_complemented_join_record(), and drizzled::sub_select().

Item** drizzled::JoinTable::on_expr_ref
Item* drizzled::JoinTable::pre_idx_push_select_cond

The value of select_cond before we've attempted to do Index Condition Pushdown. We may need to restore everything back if we first choose one index but then reconsider (see test_if_skip_sort_order() for such scenarios). NULL means no index condition pushdown was performed.

Definition at line 129 of file join_table.h.

Referenced by drizzled::test_if_skip_sort_order().

ha_rows drizzled::JoinTable::read_time

Cost of accessing the table using "ALL" or range/index_merge access method (but not 'index' for some reason), i.e. this matches method which E(records) is in found_records.

Definition at line 175 of file join_table.h.

Referenced by drizzled::best_access_path(), and drizzled::make_join_statistics().

ha_rows drizzled::JoinTable::records

Either #rows in the table or 1 for const table.

Definition at line 164 of file join_table.h.

Referenced by drizzled::best_access_path(), and drizzled::make_join_statistics().

int drizzled::JoinTable::rowid_keep_flags

A set of flags from the above enum

Definition at line 226 of file join_table.h.

Read_record_func drizzled::JoinTable::save_read_first_record

to save read_first_record

Definition at line 155 of file join_table.h.

int(* drizzled::JoinTable::save_read_record)(ReadRecord *)

to save read_record.read_record

Definition at line 156 of file join_table.h.

bool drizzled::JoinTable::sorted

True if index-based access method must return records in order

Definition at line 190 of file join_table.h.

Referenced by drizzled::Join::exec(), and drizzled::join_read_last_key().

uint32_t drizzled::JoinTable::status

Save status for cache

Definition at line 181 of file join_table.h.

uint32_t drizzled::JoinTable::used_blobs

Number of BLOB fields in join set

Definition at line 184 of file join_table.h.

Referenced by drizzled::calc_used_field_length().

uint32_t drizzled::JoinTable::used_fieldlength

Not sure...

Definition at line 183 of file join_table.h.

Referenced by drizzled::calc_used_field_length().

uint32_t drizzled::JoinTable::used_fields

Number of used fields in join set

Definition at line 182 of file join_table.h.

Referenced by drizzled::calc_used_field_length().


The documentation for this class was generated from the following files: