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/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 <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 bool drizzled::make_simple_join (Join *join, Table *tmp_table)
static void drizzled::make_outerjoin_info (Join *join)
static bool drizzled::make_join_select (Join *join, optimizer::SqlSelect *select, COND *item)
static bool drizzled::make_join_readinfo (Join *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 int 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)

Detailed Description

Implementation of the Join class

Definition in file join.cc.