30 #include <drizzled/enum_nested_loop_state.h>
32 #include <drizzled/optimizer/range.h>
33 #include <drizzled/join_cache.h>
34 #include <drizzled/optimizer/key_use.h>
36 #include <drizzled/records.h>
43 #define TAB_INFO_HAVE_VALUE 1
44 #define TAB_INFO_USING_INDEX 2
45 #define TAB_INFO_USING_WHERE 4
46 #define TAB_INFO_FULL_SCAN_ON_NULL 8
86 read_first_record(NULL),
105 cached_eq_ref_table(0),
107 not_used_in_distinct(0),
145 uint32_t packed_info;
147 Read_record_func read_first_record;
148 Next_select_func next_select;
178 table_map key_dependent;
186 bool cached_eq_ref_table;
188 bool not_used_in_distinct;
233 inline bool is_using_loose_index_scan()
235 return (select && select->
quick &&
237 optimizer::QuickSelectInterface::QS_TYPE_GROUP_MIN_MAX));
240 void readCachedRecord();
242 int joinReadSystem();
245 int join_read_system(JoinTable *tab);
JoinTable * first_unmatched
unsigned char * insideout_buf
Read_record_func save_read_first_record
JoinTable * insideout_match_tab
TODO: Rename this file - func.h is stupid.
int(* save_read_record)(ReadRecord *)
QuickSelectInterface * quick
uint32_t used_fieldlength
std::bitset< 64 > embedding_map
Item * pre_idx_push_select_cond
virtual int get_type() const =0
optimizer::KeyUse * keyuse