Drizzled Public API Documentation

join.cc File Reference
#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)
 

Detailed Description

Implementation of the Join class

Definition in file join.cc.