24#ifndef SQL_RANGE_OPTIMIZER_GROUP_INDEX_SKIP_SCAN_PLAN_H_
25#define SQL_RANGE_OPTIMIZER_GROUP_INDEX_SKIP_SCAN_PLAN_H_
90 enum_order order_direction,
bool skip_records_in_range,
double cost_est);
94 bool skip_records_in_range,
Used to store optimizer cost estimates.
Definition: handler.h:3877
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:426
A JSON object (unordered set of key/value pairs).
Definition: opt_trace.h:802
Definition: range_opt_param.h:29
A graph of (possible multiple) key ranges, represented as a red-black binary tree.
Definition: tree.h:68
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
void trace_basic_info_group_index_skip_scan(THD *thd, const AccessPath *path, const RANGE_OPT_PARAM *, Opt_trace_object *trace_object)
Definition: group_index_skip_scan_plan.cc:79
Mem_root_array< AccessPath * > get_all_group_skip_scans(THD *thd, RANGE_OPT_PARAM *param, SEL_TREE *tree, enum_order order_direction, bool skip_records_in_range, double cost_est)
Test if group index skip scan is applicable and if so, construct a new AccessPath for every candidate...
Definition: group_index_skip_scan_plan.cc:911
void dbug_dump_group_index_skip_scan(int indent, bool verbose, const AccessPath *path)
Definition: group_index_skip_scan_plan.cc:1837
AccessPath * get_best_group_skip_scan(THD *thd, RANGE_OPT_PARAM *param, SEL_TREE *tree, enum_order order_direction, bool skip_records_in_range, double cost_est)
Test if this access method is applicable to a GROUP query with MIN/MAX functions, and if so,...
Definition: group_index_skip_scan_plan.cc:301
enum_order
Definition: key_spec.h:65
This file includes constants used by all storage engines.
my_off_t ha_rows
Definition: my_base.h:1141
Some integer typedefs for easier portability.
static uint verbose
Definition: mysqlcheck.cc:66
static char * path
Definition: mysqldump.cc:149
File containing constants that can be used throughout the server.
Access paths are a query planning structure that correspond 1:1 to iterators, in that an access path ...
Definition: access_path.h:227
Definition: group_index_skip_scan_plan.h:75
uint param_idx
Definition: group_index_skip_scan_plan.h:78
GroupIndexSkipScanParameters * param
Definition: group_index_skip_scan_plan.h:84
Cost_estimate cost
Definition: group_index_skip_scan_plan.h:76
ha_rows records
Definition: group_index_skip_scan_plan.h:77
uint num_used_key_parts
Definition: group_index_skip_scan_plan.h:79
ha_rows quick_prefix_records
Definition: group_index_skip_scan_plan.h:80
Item_field * min_max_arg_item
Definition: group_index_skip_scan_plan.h:82
Definition: group_index_skip_scan_plan.h:45
Quick_ranges_array key_infix_ranges
Definition: group_index_skip_scan_plan.h:69
uint group_key_parts
Number of index key parts in the group prefix.
Definition: group_index_skip_scan_plan.h:60
Mem_root_array< Item_sum * > max_functions
Definition: group_index_skip_scan_plan.h:47
uint real_key_parts
Definition: group_index_skip_scan_plan.h:66
Mem_root_array< Item_sum * > min_functions
Definition: group_index_skip_scan_plan.h:46
uint group_prefix_len
Length of all key parts in the group prefix.
Definition: group_index_skip_scan_plan.h:59
SEL_ROOT * index_tree
The sub-tree corresponding to index_info.
Definition: group_index_skip_scan_plan.h:63
bool have_agg_distinct
true if there is an aggregate distinct function, e.g.
Definition: group_index_skip_scan_plan.h:52
uint max_used_key_length
Definition: group_index_skip_scan_plan.h:67
uint key_infix_len
Longest key for equality predicates.
Definition: group_index_skip_scan_plan.h:62
Quick_ranges prefix_ranges
Definition: group_index_skip_scan_plan.h:68
KEY_PART * used_key_part
Definition: group_index_skip_scan_plan.h:65
bool is_index_scan
Use index_next() instead of random read.
Definition: group_index_skip_scan_plan.h:64
Quick_ranges min_max_ranges
Definition: group_index_skip_scan_plan.h:70
KEY_PART_INFO * min_max_arg_part
The key_part of the only field used by all MIN/MAX functions.
Definition: group_index_skip_scan_plan.h:58
KEY * index_info
The index chosen for data access.
Definition: group_index_skip_scan_plan.h:61
Definition: range_optimizer.h:55