summaryrefslogtreecommitdiff
path: root/sql/item_row.cc
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2011-09-23 01:25:08 +0400
committerSergey Petrunya <psergey@askmonty.org>2011-09-23 01:25:08 +0400
commitebbdb14a02daf36063effc8b734028578f7e4e90 (patch)
tree4502de918c214b3ba5633d6e632cd6cd9ba258b7 /sql/item_row.cc
parent42b928ca05fca3ae8858566622a3a483a70aa3fc (diff)
downloadmariadb-git-ebbdb14a02daf36063effc8b734028578f7e4e90.tar.gz
BUG#849776: Wrong result with semijoin + "Impossible where"
- Provide fix_after_pullout() function for Item_in_optimizer and other Item_XXX classes (basically, all of them that have eval_not_null_tables, which means they have special rules for calculating not_null_tables_cache value)
Diffstat (limited to 'sql/item_row.cc')
-rw-r--r--sql/item_row.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/item_row.cc b/sql/item_row.cc
index 09977d71bb7..46d5f13f6fa 100644
--- a/sql/item_row.cc
+++ b/sql/item_row.cc
@@ -149,11 +149,13 @@ void Item_row::fix_after_pullout(st_select_lex *new_parent, Item **ref)
{
used_tables_cache= 0;
const_item_cache= 1;
+ not_null_tables_cache= 0;
for (uint i= 0; i < arg_count; i++)
{
items[i]->fix_after_pullout(new_parent, &items[i]);
used_tables_cache|= items[i]->used_tables();
const_item_cache&= items[i]->const_item();
+ not_null_tables_cache|= items[i]->not_null_tables();
}
}