#include <config.h>#include <float.h>#include <math.h>#include <drizzled/item/cache.h>#include <drizzled/item/cmpfunc.h>#include <drizzled/item/copy_string.h>#include <drizzled/item/uint.h>#include <drizzled/cached_item.h>#include <drizzled/sql_base.h>#include <drizzled/sql_select.h>#include <drizzled/lock.h>#include <drizzled/nested_join.h>#include <drizzled/join.h>#include <drizzled/join_cache.h>#include <drizzled/show.h>#include <drizzled/field/blob.h>#include <drizzled/open_tables_state.h>#include <drizzled/optimizer/position.h>#include <drizzled/optimizer/sargable_param.h>#include <drizzled/optimizer/key_use.h>#include <drizzled/optimizer/range.h>#include <drizzled/optimizer/sum.h>#include <drizzled/optimizer/explain_plan.h>#include <drizzled/optimizer/access_method_factory.h>#include <drizzled/optimizer/access_method.h>#include <drizzled/records.h>#include <drizzled/probes.h>#include <drizzled/internal/my_bit.h>#include <drizzled/internal/my_sys.h>#include <drizzled/internal/iocache.h>#include <drizzled/plugin/storage_engine.h>#include <drizzled/session.h>#include <drizzled/select_result.h>#include <drizzled/debug.h>#include <drizzled/item/subselect.h>#include <drizzled/my_hash.h>#include <drizzled/sql_lex.h>#include <drizzled/statistics_variables.h>#include <drizzled/system_variables.h>#include <algorithm>Go to the source code of this file.
Namespaces | |
| namespace | drizzled |
| TODO: Rename this file - func.h is stupid. | |
Functions | |
| static bool | drizzled::make_group_fields (Join *main_join, Join *curr_join) |
| static void | drizzled::calc_group_buffer (Join *join, Order *group) |
| static bool | drizzled::alloc_group_fields (Join *join, Order *group) |
| static uint32_t | drizzled::cache_record_length (Join *join, uint32_t index) |
| static double | drizzled::prev_record_reads (Join *join, uint32_t idx, table_map found_ref) |
| static bool | drizzled::get_best_combination (Join *join) |
| static void | drizzled::set_position (Join *join, uint32_t index, JoinTable *table, optimizer::KeyUse *key) |
| static bool | drizzled::choose_plan (Join *join, table_map join_tables) |
| static void | drizzled::best_access_path (Join *join, JoinTable *s, Session *session, table_map remaining_tables, uint32_t idx, double record_count, double read_time) |
| static void | drizzled::optimize_straight_join (Join *join, table_map join_tables) |
| static bool | drizzled::greedy_search (Join *join, table_map remaining_tables, uint32_t depth, uint32_t prune_level) |
| static bool | drizzled::best_extension_by_limited_search (Join *join, table_map remaining_tables, uint32_t idx, double record_count, double read_time, uint32_t depth, uint32_t prune_level) |
| static uint32_t | drizzled::determine_search_depth (Join *join) |
| static void | drizzled::make_simple_join (Join *, Table *) |
| static void | drizzled::make_outerjoin_info (Join *join) |
| static bool | drizzled::make_join_select (Join *join, optimizer::SqlSelect *select, COND *item) |
| static void | drizzled::make_join_readinfo (Join &) |
| static void | drizzled::update_depend_map (Join *join) |
| static void | drizzled::update_depend_map (Join *join, Order *order) |
| static Order * | drizzled::remove_constants (Join *join, Order *first_order, COND *cond, bool change_list, bool *simple_order) |
| static void | drizzled::return_zero_rows (Join *join, select_result *res, TableList *tables, List< Item > &fields, bool send_row, uint64_t select_options, const char *info, Item *having) |
| static COND * | drizzled::simplify_joins (Join *join, List< TableList > *join_list, COND *conds, bool top) |
| static int | drizzled::remove_duplicates (Join *join, Table *entry, List< Item > &fields, Item *having) |
| static int | drizzled::setup_without_group (Session *session, Item **ref_pointer_array, TableList *tables, TableList *, List< Item > &fields, List< Item > &all_fields, COND **conds, Order *order, Order *group, bool *hidden_group_fields) |
| static bool | drizzled::make_join_statistics (Join *join, TableList *leaves, COND *conds, DYNAMIC_ARRAY *keyuse) |
| static uint32_t | drizzled::build_bitmap_for_nested_joins (List< TableList > *join_list, uint32_t first_unused) |
| static Table * | drizzled::get_sort_by_table (Order *a, Order *b, TableList *tables) |
| static void | drizzled::reset_nj_counters (List< TableList > *join_list) |
| static bool | drizzled::test_if_subpart (Order *a, Order *b) |
| static void | drizzled::restore_prev_nj_state (JoinTable *last) |
| static bool | drizzled::add_ref_to_table_cond (Session *session, JoinTable *join_tab) |
| static void | drizzled::free_blobs (Field **ptr) |
| static void | drizzled::clear_tables (Join *join) |
| enum_nested_loop_state | drizzled::evaluate_join_record (Join *join, JoinTable *join_tab, int error) |
| Process one record of the nested loop join. | |
| enum_nested_loop_state | drizzled::evaluate_null_complemented_join_record (Join *join, JoinTable *join_tab) |
| enum_nested_loop_state | drizzled::flush_cached_records (Join *join, JoinTable *join_tab, bool skip_last) |
| enum_nested_loop_state | drizzled::end_send (Join *join, JoinTable *, bool end_of_records) |
| enum_nested_loop_state | drizzled::end_write (Join *join, JoinTable *, bool end_of_records) |
| enum_nested_loop_state | drizzled::end_update (Join *join, JoinTable *, bool end_of_records) |
| enum_nested_loop_state | drizzled::end_unique_update (Join *join, JoinTable *, bool end_of_records) |
Implementation of the Join class
Definition in file join.cc.