29 #include <drizzled/dynamic_array.h>
30 #include <drizzled/optimizer/position.h>
31 #include <drizzled/sql_select.h>
32 #include <drizzled/tmp_table_param.h>
68 uint32_t const_tables;
69 uint32_t send_group_parts;
117 bool hidden_group_fields;
119 table_map const_table_map;
120 table_map found_const_table_map;
121 table_map outer_join;
123 ha_rows send_records;
124 ha_rows found_records;
125 ha_rows examined_rows;
127 ha_rows select_limit;
165 Table *exec_tmp_table2;
174 uint64_t select_options;
182 Item::cond_result cond_value;
183 Item::cond_result having_value;
208 Item **current_ref_pointer_array;
220 Table **table_reexec;
227 uint64_t select_options_arg,
238 uint64_t select_options_arg,
250 Select_Lex_Unit *
unit);
261 bool before_group_by,
262 bool recompute=
false);
264 inline void set_items_ref_array(
Item **ptr)
267 current_ref_pointer_array= ptr;
269 inline void init_items_ref_array()
273 current_ref_pointer_array=
items0;
282 void remove_subq_pushed_predicates(Item **where);
293 void save_join_tab();
295 bool send_row_on_empty_set()
297 return (do_send_rows && tmp_table_param.sum_func_count != 0 &&
301 bool is_top_level_join()
const;
enum_nested_loop_state evaluate_join_record(Join *join, JoinTable *join_tab, int error)
Process one record of the nested loop join.
bool make_sum_func_list(List< Item > &all_fields, List< Item > &send_fields, bool before_group_by, bool recompute=false)
Join(Session *session_arg, List< Item > &fields_arg, uint64_t select_options_arg, select_result *result_arg)
int rollup_send_data(uint32_t idx)
enum_nested_loop_state end_update(Join *join, JoinTable *, bool end_of_records)
List< Item > tmp_all_fields1
const char * zero_result_cause
not 0 if exec must return zero result
bool change_result(select_result *result)
int prepare(Item ***rref_pointer_array, TableList *tables, uint32_t wind_num, COND *conds, uint32_t og_num, Order *order, Order *group, Item *having, Select_Lex *select, Select_Lex_Unit *unit)
Item ** ref_pointer_array
bool rollup_make_fields(List< Item > &all_fields, List< Item > &fields, Item_sum ***func)
uint32_t ref_pointer_array_size
size of above in bytes
optimizer::Position positions[MAX_TABLES+1]
optimizer::Position * getFirstPosInPartialPlan()
optimizer::Position best_positions[MAX_TABLES+1]
bool setup_subquery_materialization()
optimizer::Position & getPosFromPartialPlan(uint32_t index)
enum_nested_loop_state evaluate_null_complemented_join_record(Join *join, JoinTable *join_tab)
JoinTable * join_tab_save
List< TableList > * join_list
void copyPartialPlanIntoOptimalPlan(uint32_t size)
enum_nested_loop_state end_unique_update(Join *join, JoinTable *, bool end_of_records)
void reset(Session *session_arg, List< Item > &fields_arg, uint64_t select_options_arg, select_result *result_arg)
std::bitset< 64 > cur_embedding_map
optimizer::Position * getSpecificPosInPartialPlan(int32_t index)
List< Item > & fields_list
optimizer::SqlSelect * select
bool group_optimized_away
List< Item > tmp_fields_list1
void setPosInPartialPlan(uint32_t index, optimizer::Position &in_pos)
optimizer::Position & getPosFromOptimalPlan(uint32_t index)
void init_save_join_tab()
Save the original join layout.
int rollup_write_data(uint32_t idx, Table *table)