Fixed LP bug #823826.

The method Item_func_isnull::update_used_tables() erroneously did not
update cached values stored in the fields used_tables_cache and
const_item_cache of the Item_func_isnull objects. As a result the
Item_func_isnull::used_tables() returned wrong bitmaps and, as a
consequence, push-down predicates could be attached to wrong tables.
This commit is contained in:
Igor Babaev 2011-08-11 12:11:04 -07:00
commit 4ddea0cb93
3 changed files with 57 additions and 2 deletions

View file

@ -1365,7 +1365,11 @@ public:
const_item_cache= 1;
}
else
{
args[0]->update_used_tables();
used_tables_cache= args[0]->used_tables();
const_item_cache= args[0]->const_item();
}
}
table_map not_null_tables() const { return 0; }
optimize_type select_optimize() const { return OPTIMIZE_NULL; }