1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-12 12:25:37 +03:00

Merge 5.3->5.5

This commit is contained in:
Igor Babaev
2013-09-06 10:34:38 -07:00
4 changed files with 57 additions and 3 deletions

View File

@@ -13482,7 +13482,6 @@ void propagate_new_equalities(THD *thd, Item *cond,
Item_cond_and *cond_and= (Item_cond_and *) cond;
List<Item_equal> *cond_equalities= &cond_and->cond_equal.current_level;
cond_and->cond_equal.upper_levels= inherited;
inherited= &cond_and->cond_equal;
if (!cond_equalities->is_empty() && cond_equalities != new_equalities)
{
Item_equal *equal_item;
@@ -13507,7 +13506,10 @@ void propagate_new_equalities(THD *thd, Item *cond,
List_iterator<Item> li(*((Item_cond*) cond)->argument_list());
while ((item= li++))
{
propagate_new_equalities(thd, item, new_equalities, inherited,
COND_EQUAL *new_inherited= and_level && item->type() == Item::COND_ITEM ?
&((Item_cond_and *) cond)->cond_equal :
inherited;
propagate_new_equalities(thd, item, new_equalities, new_inherited,
is_simplifiable_cond);
}
}
@@ -13811,6 +13813,7 @@ internal_remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value)
List_iterator_fast<Item_equal> it(new_equalities);
while ((equality= it++))
{
equality->upper_levels= cond_equal->upper_levels;
equality->merge_into_list(cond_equalities, false, false);
List_iterator_fast<Item_equal> ei(*cond_equalities);
while ((equality= ei++))