| 
| join_type  | calc_join_type (AccessPath *path) | 
|   | 
| bool  | sj_is_materialize_strategy (uint strategy) | 
|   | 
| void  | count_field_types (const Query_block *query_block, Temp_table_param *param, const mem_root_deque< Item * > &fields, bool reset_with_sum_func, bool save_sum_fields) | 
|   | Update TMP_TABLE_PARAM with count of the different type of fields.  More...
  | 
|   | 
| uint  | find_shortest_key (TABLE *table, const Key_map *usable_keys) | 
|   | Find shortest key suitable for full table scan.  More...
  | 
|   | 
| bool  | is_simple_predicate (Item_func *func_item, Item **args, bool *inv_order) | 
|   | Test if the predicate compares a field with constants.  More...
  | 
|   | 
| bool  | optimize_aggregated_query (THD *thd, Query_block *select, const mem_root_deque< Item * > &all_fields, Item *conds, aggregate_evaluated *decision) | 
|   | Substitute constants for some COUNT(), MIN() and MAX() functions in an aggregated (implicitly grouped) query.  More...
  | 
|   | 
| int  | refpos_order_cmp (const void *arg, const void *a, const void *b) | 
|   | 
| bool  | check_privileges_for_join (THD *thd, mem_root_deque< Table_ref * > *tables) | 
|   | Check privileges for all columns referenced from join expression.  More...
  | 
|   | 
| bool  | check_privileges_for_list (THD *thd, const mem_root_deque< Item * > &items, Access_bitmask privileges) | 
|   | Check privileges for all columns referenced from an expression list.  More...
  | 
|   | 
| bool  | set_statement_timer (THD *thd) | 
|   | Set the time until the currently running statement is aborted.  More...
  | 
|   | 
| void  | reset_statement_timer (THD *thd) | 
|   | Deactivate the timer associated with the statement that was executed.  More...
  | 
|   | 
| void  | free_underlaid_joins (Query_block *select) | 
|   | Free joins of subselect of this select.  More...
  | 
|   | 
| void  | calc_used_field_length (TABLE *table, bool needs_rowid, uint *p_used_fieldlength) | 
|   | Find how much space the previous read not const tables takes in cache.  More...
  | 
|   | 
| ORDER *  | simple_remove_const (ORDER *order, Item *where) | 
|   | Filter out ORDER BY items that are equal to constants in WHERE condition.  More...
  | 
|   | 
| bool  | check_field_is_const (Item *cond, const Item *order_item, const Field *order_field=nullptr, Item **const_item=nullptr) | 
|   | Check if a field is equal to a constant value in a condition.  More...
  | 
|   | 
| bool  | test_if_subpart (ORDER *a, ORDER *b) | 
|   | Return 1 if second is a subpart of first argument.  More...
  | 
|   | 
| void  | calc_group_buffer (JOIN *join, ORDER *group, Temp_table_param *tmp_table_param=nullptr) | 
|   | calc how big buffer we need for comparing group entries.  More...
  | 
|   | 
| bool  | make_join_readinfo (JOIN *join, uint no_jbuf_after) | 
|   | Plan refinement stage: do various setup things for the executor.  More...
  | 
|   | 
| bool  | create_ref_for_key (JOIN *join, JOIN_TAB *j, Key_use *org_keyuse, table_map used_tables) | 
|   | Setup a ref access for looking up rows via an index (a key).  More...
  | 
|   | 
| bool  | types_allow_materialization (Item *outer, Item *inner) | 
|   | Check if two items are compatible wrt.  More...
  | 
|   | 
| bool  | and_conditions (Item **e1, Item *e2) | 
|   | Extend e1 by AND'ing e2 to the condition e1 points to.  More...
  | 
|   | 
| static Item *  | and_items (Item *cond, Item *item) | 
|   | Create a AND item of two existing items.  More...
  | 
|   | 
| static Item_bool_func *  | and_items (Item *cond, Item_bool_func *item) | 
|   | A variant of the above, guaranteed to return Item_bool_func.  More...
  | 
|   | 
| uint  | actual_key_parts (const KEY *key_info) | 
|   | Returns number of key parts depending on OPTIMIZER_SWITCH_USE_INDEX_EXTENSIONS flag.  More...
  | 
|   | 
| uint  | get_index_for_order (ORDER_with_src *order, TABLE *table, ha_rows limit, AccessPath *range_scan, bool *need_sort, bool *reverse) | 
|   | Find a key to apply single table UPDATE/DELETE by a given ORDER.  More...
  | 
|   | 
| int  | test_if_order_by_key (ORDER_with_src *order, TABLE *table, uint idx, uint *used_key_parts, bool *skip_quick) | 
|   | Test if one can use the key to resolve ordering.  More...
  | 
|   | 
| bool  | test_if_cheaper_ordering (const JOIN_TAB *tab, ORDER_with_src *order, TABLE *table, Key_map usable_keys, int key, ha_rows select_limit, int *new_key, int *new_key_direction, ha_rows *new_select_limit, uint *new_used_key_parts=nullptr, uint *saved_best_key_parts=nullptr, double *new_read_time=nullptr) | 
|   | Find a cheaper access key than a given key.  More...
  | 
|   | 
| void  | calc_length_and_keyparts (Key_use *keyuse, JOIN_TAB *tab, const uint key, table_map used_tables, Key_use **chosen_keyuses, uint *length_out, uint *keyparts_out, table_map *dep_map, bool *maybe_null) | 
|   | Calculate properties of ref key: key length, number of used key parts, dependency map, possibility of null.  More...
  | 
|   | 
| bool  | init_ref (THD *thd, unsigned keyparts, unsigned length, unsigned keyno, Index_lookup *ref) | 
|   | Initialize the given TABLE_REF; setting basic fields and allocating memory for arrays.  More...
  | 
|   | 
| bool  | init_ref_part (THD *thd, unsigned part_no, Item *val, bool *cond_guard, bool null_rejecting, table_map const_tables, table_map used_tables, bool nullable, const KEY_PART_INFO *key_part_info, uchar *key_buff, Index_lookup *ref) | 
|   | Initialize a given keypart in the table ref.  More...
  | 
|   | 
| SJ_TMP_TABLE *  | create_sj_tmp_table (THD *thd, JOIN *join, SJ_TMP_TABLE_TAB *first_tab, SJ_TMP_TABLE_TAB *last_tab) | 
|   | Set up the support structures (NULL bits, row offsets, etc.) for a semijoin duplicate weedout table.  More...
  | 
|   | 
| uint  | actual_key_flags (const KEY *key_info) | 
|   | Returns key flags depending on OPTIMIZER_SWITCH_USE_INDEX_EXTENSIONS flag.  More...
  | 
|   | 
| bool  | equality_determines_uniqueness (const Item_func_comparison *func, const Item *v, const Item *c) | 
|   | Check if equality can be used to remove sub-clause of GROUP BY/ORDER BY.  More...
  | 
|   | 
| bool  | equality_has_no_implicit_casts (const Item_func_comparison *func, const Item *item1, const Item *item2) | 
|   | Check whether equality between two items is exact, ie., there are no implicit casts involved.  More...
  | 
|   | 
| bool  | CreateFramebufferTable (THD *thd, const Temp_table_param &tmp_table_param, const Query_block &query_block, const mem_root_deque< Item * > &source_fields, const mem_root_deque< Item * > &window_output_fields, Func_ptr_array *mapping_from_source_to_window_output, Window *window) | 
|   | 
| bool  | validate_use_secondary_engine (const LEX *lex) | 
|   | Validates a query that uses the secondary engine.  More...
  | 
|   | 
| bool  | optimize_secondary_engine (THD *thd) | 
|   | Perform query optimizations that are specific to a secondary storage engine.  More...
  | 
|   | 
| const handlerton *  | get_secondary_engine_handlerton (const LEX *lex) | 
|   | Returns secondary_engine handler for the statement.  More...
  | 
|   | 
| void  | set_external_engine_fail_reason (const LEX *lex, const char *reason) | 
|   | Sets the reason of failure for the statement to the external engine.  More...
  | 
|   | 
| void  | notify_plugins_after_select (THD *thd, const Sql_cmd *cmd) | 
|   | Notify plugins about an executed SELECT statement.  More...
  | 
|   | 
| std::string_view  | get_secondary_engine_fail_reason (const LEX *lex) | 
|   | 
| bool  | set_secondary_engine_fail_reason (const LEX *lex, std::string_view reason) | 
|   | 
| void  | set_fail_reason_and_raise_error (const LEX *lex, std::string_view reason) | 
|   | 
| bool  | equal_engines (const LEX_CSTRING &engine1, const LEX_CSTRING &engine2) | 
|   | 
| const MYSQL_LEX_CSTRING *  | get_eligible_secondary_engine_from (const LEX *lex) | 
|   | 
| std::string_view  | find_secondary_engine_fail_reason (const LEX *lex) | 
|   | 
| void  | find_and_set_offload_fail_reason (const LEX *lex) | 
|   | 
| bool  | reads_not_secondary_columns (const LEX *lex, std::string_view *not_secondary_col_str) | 
|   | Checks if a query reads a column that is not available in the secondary engine (i.e.  More...
  | 
|   |