#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 | |
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. More... | |
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.