24 #include <drizzled/field.h>
25 #include <drizzled/item/sum.h>
30 #include <boost/dynamic_bitset.hpp>
39 uint16_t store_length;
152 virtual int init() = 0;
171 virtual int reset(
void) = 0;
178 virtual bool reverse_sorted()
const = 0;
180 virtual bool unique_key_range()
const
188 QS_TYPE_INDEX_MERGE= 1,
189 QS_TYPE_RANGE_DESC= 2,
190 QS_TYPE_ROR_INTERSECT= 4,
191 QS_TYPE_ROR_UNION= 5,
192 QS_TYPE_GROUP_MIN_MAX= 6
230 std::string *used_lengths)=0;
248 virtual bool is_keys_used(
const boost::dynamic_bitset<>& fields);
262 range_seq_t quick_range_seq_init(
void *init_param, uint32_t n_ranges, uint32_t flags);
264 uint32_t quick_range_seq_next(range_seq_t rseq,
KEY_MULTI_RANGE *range);
285 table_map const_tables;
286 table_map read_tables;
292 bool check_quick(
Session *session,
bool force_quick_range, ha_rows limit);
294 int test_quick_select(
Session *session, key_map keys, table_map prev_tables,
295 ha_rows limit,
bool force_quick_range,
296 bool ordered_output);
330 uint32_t mrr_buf_size,
333 uint32_t get_index_for_order(
Table *table,
Order *order, ha_rows limit);
336 table_map const_tables,
337 table_map read_tables,
339 bool allow_null_cond,
346 unsigned char *min_key,
347 uint32_t min_key_flag,
348 unsigned char *max_key,
349 uint32_t max_key_flag);
virtual void add_info_string(std::string *)
virtual bool is_keys_used(const boost::dynamic_bitset<> &fields)
TODO: Rename this file - func.h is stupid.
uint32_t max_used_key_length
QuickSelectInterface * quick
virtual void add_keys_and_lengths(std::string *key_names, std::string *used_lengths)=0
virtual int reset(void)=0
unsigned char * last_rowid
virtual int get_type() const =0
virtual void save_last_pos()
internal::io_cache_st * file
virtual int init_ror_merged_scan(bool)