Loading sql/item_cmpfunc.cc +2 −2 Original line number Diff line number Diff line Loading @@ -3740,7 +3740,7 @@ void Item_equal::sort(Item_field_cmpfunc cmp, void *arg) Check appearance of new constant items in the multiple equality object SYNOPSIS check() update_const() DESCRIPTION The function checks appearance of new constant items among Loading @@ -3753,7 +3753,7 @@ void Item_equal::sort(Item_field_cmpfunc cmp, void *arg) none */ void Item_equal::check_const() void Item_equal::update_const() { List_iterator<Item_field> it(fields); Item *item; Loading sql/item_cmpfunc.h +1 −1 Original line number Diff line number Diff line Loading @@ -1196,7 +1196,7 @@ class Item_equal: public Item_bool_func bool contains(Field *field); Item_field* get_first() { return fields.head(); } void merge(Item_equal *item); void check_const(); void update_const(); enum Functype functype() const { return MULT_EQUAL_FUNC; } longlong val_int(); const char *func_name() const { return "multiple equal"; } Loading sql/sql_select.cc +13 −14 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ static enum_nested_loop_state end_write_group(JOIN *join, JOIN_TAB *join_tab, bool end_of_records); static int test_if_group_changed(List<Cached_item> &list); static int join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos); static int join_read_const_table(JOIN_TAB *tab, POSITION *pos); static int join_read_system(JOIN_TAB *tab); static int join_read_const(JOIN_TAB *tab); static int join_read_key(JOIN_TAB *tab); Loading Loading @@ -2111,7 +2111,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, s= p_pos->table; s->type=JT_SYSTEM; join->const_table_map|=s->table->map; if ((tmp=join_read_const_table(join, s, p_pos))) if ((tmp=join_read_const_table(s, p_pos))) { if (tmp > 0) DBUG_RETURN(1); // Fatal error Loading Loading @@ -2148,8 +2148,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, s->type=JT_SYSTEM; join->const_table_map|=table->map; set_position(join,const_count++,s,(KEYUSE*) 0); if ((tmp= join_read_const_table(join, s, join->positions+const_count-1))) if ((tmp= join_read_const_table(s, join->positions+const_count-1))) { if (tmp > 0) DBUG_RETURN(1); // Fatal error Loading Loading @@ -2201,7 +2200,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, if (create_ref_for_key(join, s, start_keyuse, found_const_table_map)) DBUG_RETURN(1); if ((tmp=join_read_const_table(join, s, if ((tmp=join_read_const_table(s, join->positions+const_count-1))) { if (tmp > 0) Loading Loading @@ -7183,7 +7182,7 @@ static COND* substitute_for_best_equal_field(COND *cond, of a condition after reading a constant table SYNOPSIS check_const_equal_item() update_const_equal_items() cond condition whose multiple equalities are to be checked table constant table that has been read Loading @@ -7194,8 +7193,7 @@ static COND* substitute_for_best_equal_field(COND *cond, the multiple equality appropriately. */ static void check_const_equal_items(COND *cond, JOIN_TAB *tab) static void update_const_equal_items(COND *cond, JOIN_TAB *tab) { if (!(cond->used_tables() & tab->table->map)) return; Loading @@ -7206,13 +7204,13 @@ static void check_const_equal_items(COND *cond, List_iterator_fast<Item> li(*cond_list); Item *item; while ((item= li++)) check_const_equal_items(item, tab); update_const_equal_items(item, tab); } else if (cond->type() == Item::FUNC_ITEM && ((Item_cond*) cond)->functype() == Item_func::MULT_EQUAL_FUNC) { Item_equal *item_equal= (Item_equal *) cond; item_equal->check_const(); item_equal->update_const(); } } Loading Loading @@ -10139,7 +10137,7 @@ int safe_index_read(JOIN_TAB *tab) static int join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos) join_read_const_table(JOIN_TAB *tab, POSITION *pos) { int error; DBUG_ENTER("join_read_const_table"); Loading Loading @@ -10193,8 +10191,9 @@ join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos) table->maybe_null=0; /* Check appearance of new constant items in Item_equal objects */ JOIN *join= tab->join; if (join->conds) check_const_equal_items(join->conds, tab); update_const_equal_items(join->conds, tab); TABLE_LIST *tbl; for (tbl= join->select_lex->leaf_tables; tbl; tbl= tbl->next_leaf) { Loading @@ -10204,7 +10203,7 @@ join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos) { embedded= embedding; if (embedded->on_expr) check_const_equal_items(embedded->on_expr, tab); update_const_equal_items(embedded->on_expr, tab); embedding= embedded->embedding; } while (embedding && Loading Loading
sql/item_cmpfunc.cc +2 −2 Original line number Diff line number Diff line Loading @@ -3740,7 +3740,7 @@ void Item_equal::sort(Item_field_cmpfunc cmp, void *arg) Check appearance of new constant items in the multiple equality object SYNOPSIS check() update_const() DESCRIPTION The function checks appearance of new constant items among Loading @@ -3753,7 +3753,7 @@ void Item_equal::sort(Item_field_cmpfunc cmp, void *arg) none */ void Item_equal::check_const() void Item_equal::update_const() { List_iterator<Item_field> it(fields); Item *item; Loading
sql/item_cmpfunc.h +1 −1 Original line number Diff line number Diff line Loading @@ -1196,7 +1196,7 @@ class Item_equal: public Item_bool_func bool contains(Field *field); Item_field* get_first() { return fields.head(); } void merge(Item_equal *item); void check_const(); void update_const(); enum Functype functype() const { return MULT_EQUAL_FUNC; } longlong val_int(); const char *func_name() const { return "multiple equal"; } Loading
sql/sql_select.cc +13 −14 Original line number Diff line number Diff line Loading @@ -136,7 +136,7 @@ static enum_nested_loop_state end_write_group(JOIN *join, JOIN_TAB *join_tab, bool end_of_records); static int test_if_group_changed(List<Cached_item> &list); static int join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos); static int join_read_const_table(JOIN_TAB *tab, POSITION *pos); static int join_read_system(JOIN_TAB *tab); static int join_read_const(JOIN_TAB *tab); static int join_read_key(JOIN_TAB *tab); Loading Loading @@ -2111,7 +2111,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, s= p_pos->table; s->type=JT_SYSTEM; join->const_table_map|=s->table->map; if ((tmp=join_read_const_table(join, s, p_pos))) if ((tmp=join_read_const_table(s, p_pos))) { if (tmp > 0) DBUG_RETURN(1); // Fatal error Loading Loading @@ -2148,8 +2148,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, s->type=JT_SYSTEM; join->const_table_map|=table->map; set_position(join,const_count++,s,(KEYUSE*) 0); if ((tmp= join_read_const_table(join, s, join->positions+const_count-1))) if ((tmp= join_read_const_table(s, join->positions+const_count-1))) { if (tmp > 0) DBUG_RETURN(1); // Fatal error Loading Loading @@ -2201,7 +2200,7 @@ make_join_statistics(JOIN *join, TABLE_LIST *tables, COND *conds, if (create_ref_for_key(join, s, start_keyuse, found_const_table_map)) DBUG_RETURN(1); if ((tmp=join_read_const_table(join, s, if ((tmp=join_read_const_table(s, join->positions+const_count-1))) { if (tmp > 0) Loading Loading @@ -7183,7 +7182,7 @@ static COND* substitute_for_best_equal_field(COND *cond, of a condition after reading a constant table SYNOPSIS check_const_equal_item() update_const_equal_items() cond condition whose multiple equalities are to be checked table constant table that has been read Loading @@ -7194,8 +7193,7 @@ static COND* substitute_for_best_equal_field(COND *cond, the multiple equality appropriately. */ static void check_const_equal_items(COND *cond, JOIN_TAB *tab) static void update_const_equal_items(COND *cond, JOIN_TAB *tab) { if (!(cond->used_tables() & tab->table->map)) return; Loading @@ -7206,13 +7204,13 @@ static void check_const_equal_items(COND *cond, List_iterator_fast<Item> li(*cond_list); Item *item; while ((item= li++)) check_const_equal_items(item, tab); update_const_equal_items(item, tab); } else if (cond->type() == Item::FUNC_ITEM && ((Item_cond*) cond)->functype() == Item_func::MULT_EQUAL_FUNC) { Item_equal *item_equal= (Item_equal *) cond; item_equal->check_const(); item_equal->update_const(); } } Loading Loading @@ -10139,7 +10137,7 @@ int safe_index_read(JOIN_TAB *tab) static int join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos) join_read_const_table(JOIN_TAB *tab, POSITION *pos) { int error; DBUG_ENTER("join_read_const_table"); Loading Loading @@ -10193,8 +10191,9 @@ join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos) table->maybe_null=0; /* Check appearance of new constant items in Item_equal objects */ JOIN *join= tab->join; if (join->conds) check_const_equal_items(join->conds, tab); update_const_equal_items(join->conds, tab); TABLE_LIST *tbl; for (tbl= join->select_lex->leaf_tables; tbl; tbl= tbl->next_leaf) { Loading @@ -10204,7 +10203,7 @@ join_read_const_table(JOIN *join, JOIN_TAB *tab, POSITION *pos) { embedded= embedding; if (embedded->on_expr) check_const_equal_items(embedded->on_expr, tab); update_const_equal_items(embedded->on_expr, tab); embedding= embedded->embedding; } while (embedding && Loading