|
void | CopyBasicProperties (const AccessPath &from, AccessPath *to) |
|
AccessPath * | NewTableScanAccessPath (THD *thd, TABLE *table, bool count_examined_rows) |
|
AccessPath * | NewSampleScanAccessPath (THD *thd, TABLE *table, double sampling_percentage, bool count_examined_rows) |
|
AccessPath * | NewIndexScanAccessPath (THD *thd, TABLE *table, int idx, bool use_order, bool reverse, bool count_examined_rows) |
|
AccessPath * | NewRefAccessPath (THD *thd, TABLE *table, Index_lookup *ref, bool use_order, bool reverse, bool count_examined_rows) |
|
AccessPath * | NewRefOrNullAccessPath (THD *thd, TABLE *table, Index_lookup *ref, bool use_order, bool count_examined_rows) |
|
AccessPath * | NewEQRefAccessPath (THD *thd, TABLE *table, Index_lookup *ref, bool count_examined_rows) |
|
AccessPath * | NewPushedJoinRefAccessPath (THD *thd, TABLE *table, Index_lookup *ref, bool use_order, bool is_unique, bool count_examined_rows) |
|
AccessPath * | NewFullTextSearchAccessPath (THD *thd, TABLE *table, Index_lookup *ref, Item_func_match *ft_func, bool use_order, bool use_limit, bool count_examined_rows) |
|
AccessPath * | NewConstTableAccessPath (THD *thd, TABLE *table, Index_lookup *ref, bool count_examined_rows) |
|
AccessPath * | NewMRRAccessPath (THD *thd, TABLE *table, Index_lookup *ref, int mrr_flags) |
|
AccessPath * | NewFollowTailAccessPath (THD *thd, TABLE *table, bool count_examined_rows) |
|
AccessPath * | NewDynamicIndexRangeScanAccessPath (THD *thd, TABLE *table, QEP_TAB *qep_tab, bool count_examined_rows) |
|
AccessPath * | NewMaterializedTableFunctionAccessPath (THD *thd, TABLE *table, Table_function *table_function, AccessPath *table_path) |
|
AccessPath * | NewUnqualifiedCountAccessPath (THD *thd) |
|
AccessPath * | NewTableValueConstructorAccessPath (const THD *thd, const JOIN *join) |
|
AccessPath * | NewNestedLoopSemiJoinWithDuplicateRemovalAccessPath (THD *thd, AccessPath *outer, AccessPath *inner, const TABLE *table, KEY *key, size_t key_len) |
|
AccessPath * | NewFilterAccessPath (THD *thd, AccessPath *child, Item *condition) |
|
AccessPath * | NewSortAccessPath (THD *thd, AccessPath *child, Filesort *filesort, ORDER *order, bool count_examined_rows) |
|
AccessPath * | NewAggregateAccessPath (THD *thd, AccessPath *child, olap_type olap) |
|
AccessPath * | NewTemptableAggregateAccessPath (THD *thd, AccessPath *subquery_path, Temp_table_param *temp_table_param, TABLE *table, AccessPath *table_path, int ref_slice) |
|
AccessPath * | NewLimitOffsetAccessPath (THD *thd, AccessPath *child, ha_rows limit, ha_rows offset, bool count_all_rows, bool reject_multiple_rows, ha_rows *send_records_override) |
|
AccessPath * | NewFakeSingleRowAccessPath (THD *thd, bool count_examined_rows) |
|
AccessPath * | NewZeroRowsAccessPath (THD *thd, AccessPath *child, const char *cause) |
|
AccessPath * | NewZeroRowsAccessPath (THD *thd, const char *cause) |
|
AccessPath * | NewZeroRowsAggregatedAccessPath (THD *thd, const char *cause) |
|
AccessPath * | NewStreamingAccessPath (THD *thd, AccessPath *child, JOIN *join, Temp_table_param *temp_table_param, TABLE *table, int ref_slice) |
|
Mem_root_array< MaterializePathParameters::Operand > | SingleMaterializeQueryBlock (THD *thd, AccessPath *path, int select_number, JOIN *join, bool copy_items, Temp_table_param *temp_table_param) |
|
AccessPath * | NewMaterializeAccessPath (THD *thd, Mem_root_array< MaterializePathParameters::Operand > operands, Mem_root_array< const AccessPath * > *invalidators, TABLE *table, AccessPath *table_path, Common_table_expr *cte, Query_expression *unit, int ref_slice, bool rematerialize, ha_rows limit_rows, bool reject_multiple_rows) |
|
AccessPath * | NewMaterializeInformationSchemaTableAccessPath (THD *thd, AccessPath *table_path, Table_ref *table_list, Item *condition) |
|
double | AddCost (double c1, double c2) |
| Add path costs c1 and c2, but handle kUnknownCost correctly. More...
|
|
AccessPath * | NewAppendAccessPath (THD *thd, Mem_root_array< AppendPathParameters > *children) |
|
AccessPath * | NewWindowAccessPath (THD *thd, AccessPath *child, Window *window, Temp_table_param *temp_table_param, int ref_slice, bool needs_buffering) |
|
AccessPath * | NewWeedoutAccessPath (THD *thd, AccessPath *child, SJ_TMP_TABLE *weedout_table) |
|
AccessPath * | NewRemoveDuplicatesAccessPath (THD *thd, AccessPath *child, Item **group_items, int group_items_size) |
|
AccessPath * | NewRemoveDuplicatesOnIndexAccessPath (THD *thd, AccessPath *child, TABLE *table, KEY *key, unsigned loosescan_key_len) |
|
AccessPath * | NewAlternativeAccessPath (THD *thd, AccessPath *child, AccessPath *table_scan_path, Index_lookup *used_ref) |
|
AccessPath * | NewInvalidatorAccessPath (THD *thd, AccessPath *child, const char *name) |
|
AccessPath * | NewDeleteRowsAccessPath (THD *thd, AccessPath *child, table_map delete_tables, table_map immediate_tables) |
|
AccessPath * | NewUpdateRowsAccessPath (THD *thd, AccessPath *child, table_map delete_tables, table_map immediate_tables) |
|
void | FindTablesToGetRowidFor (AccessPath *path) |
| Modifies "path" and the paths below it so that they provide row IDs for all tables. More...
|
|
unique_ptr_destroy_only< RowIterator > | CreateIteratorFromAccessPath (THD *thd, MEM_ROOT *mem_root, AccessPath *path, JOIN *join, bool eligible_for_batch_mode) |
|
unique_ptr_destroy_only< RowIterator > | CreateIteratorFromAccessPath (THD *thd, AccessPath *path, JOIN *join, bool eligible_for_batch_mode) |
|
void | SetCostOnTableAccessPath (const Cost_model_server &cost_model, const POSITION *pos, bool is_after_filter, AccessPath *path) |
|
TABLE * | GetBasicTable (const AccessPath *path) |
| Return the TABLE* referred from 'path' if it is a basic access path, else a nullptr is returned. More...
|
|
table_map | GetUsedTableMap (const AccessPath *path, bool include_pruned_tables) |
| Returns a map of all tables read when path or any of its children are executed. More...
|
|
Mem_root_array< TABLE * > | CollectTables (THD *thd, AccessPath *root_path) |
| Find the list of all tables used by this root, stopping at materializations. More...
|
|
void | ExpandFilterAccessPaths (THD *thd, AccessPath *path, const JOIN *join, const Mem_root_array< Predicate > &predicates, unsigned num_where_predicates) |
| For each access path in the (sub)tree rooted at “path”, expand any use of “filter_predicates” into newly-inserted FILTER access paths, using the given predicate list. More...
|
|
Item * | ConditionFromFilterPredicates (const Mem_root_array< Predicate > &predicates, OverflowBitset mask, int num_where_predicates) |
| Extracts the Item expression from the given “filter_predicates” corresponding to the given “mask”. More...
|
|
void | ExpandSingleFilterAccessPath (THD *thd, AccessPath *path, const JOIN *join, const Mem_root_array< Predicate > &predicates, unsigned num_where_predicates) |
| Like ExpandFilterAccessPaths(), but expands only the single access path at “path”. More...
|
|
table_map | GetHashJoinTables (AccessPath *path) |
| Returns the tables that are part of a hash join. More...
|
|
const Mem_root_array< Item * > * | GetExtraHashJoinConditions (MEM_ROOT *mem_root, bool using_hypergraph_optimizer, const std::vector< HashJoinCondition > &equijoin_conditions, const Mem_root_array< Item * > &other_conditions) |
| Get the conditions to put into the extra conditions of the HashJoinIterator. More...
|
|