My Project
Classes | Defines | Functions
sql_optimizer.cc File Reference

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_equalfind_item_equal (COND_EQUAL *cond_equal, Field *field, bool *inherited_fl)
Item_fieldget_best_field (Item_field *item_field, COND_EQUAL *cond_equal)
Itembuild_equal_items (THD *thd, Item *cond, COND_EQUAL *inherited, bool do_inherit, List< TABLE_LIST > *join_list, COND_EQUAL **cond_equal_ref)
Itemsubstitute_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_arraycreate_keyuse_for_table (THD *thd, TABLE *table, uint keyparts, Item_field **fields, List< Item > outer_exprs)
Itemmake_cond_for_table (Item *cond, table_map tables, table_map used_table, bool exclude_expensive_cond)
Itemoptimize_cond (THD *thd, Item *conds, COND_EQUAL **cond_equal, List< TABLE_LIST > *join_list, bool build_equalities, Item::cond_result *cond_value)
Itemremove_eq_conds (THD *thd, Item *cond, Item::cond_result *cond_value)

Detailed Description

mysql_select and join optimization

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines