My Project
|
mysql_select and join optimization More...
#include "sql_select.h"
#include "sql_optimizer.h"
#include "sql_resolver.h"
#include "sql_executor.h"
#include "sql_planner.h"
#include "debug_sync.h"
#include "opt_trace.h"
#include "sql_derived.h"
#include "sql_test.h"
#include "sql_base.h"
#include "sql_parse.h"
#include "my_bit.h"
#include "lock.h"
#include "abstract_query_plan.h"
#include "opt_explain_format.h"
#include <algorithm>
Classes | |
class | COND_CMP |
struct | Key_field |
Used when finding key fields. More... | |
Defines | |
#define | KEY_OPTIMIZE_EXISTS 1 |
#define | KEY_OPTIMIZE_REF_OR_NULL 2 |
Functions | |
void | reset_nj_counters (List< TABLE_LIST > *join_list) |
Item_equal * | find_item_equal (COND_EQUAL *cond_equal, Field *field, bool *inherited_fl) |
Item_field * | get_best_field (Item_field *item_field, COND_EQUAL *cond_equal) |
Item * | build_equal_items (THD *thd, Item *cond, COND_EQUAL *inherited, bool do_inherit, List< TABLE_LIST > *join_list, COND_EQUAL **cond_equal_ref) |
Item * | substitute_for_best_equal_field (Item *cond, COND_EQUAL *cond_equal, void *table_join_idx) |
void | update_depend_map (JOIN *join) |
bool | uses_index_fields_only (Item *item, TABLE *tbl, uint keyno, bool other_tbls_ok) |
bool | is_indexed_agg_distinct (JOIN *join, List< Item_field > *out_args) |
Key_use_array * | create_keyuse_for_table (THD *thd, TABLE *table, uint keyparts, Item_field **fields, List< Item > outer_exprs) |
Item * | make_cond_for_table (Item *cond, table_map tables, table_map used_table, bool exclude_expensive_cond) |
Item * | optimize_cond (THD *thd, Item *conds, COND_EQUAL **cond_equal, List< TABLE_LIST > *join_list, bool build_equalities, Item::cond_result *cond_value) |
Item * | remove_eq_conds (THD *thd, Item *cond, Item::cond_result *cond_value) |
mysql_select and join optimization