summaryrefslogtreecommitdiffstats
path: root/sql/opt_split.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sql/opt_split.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/opt_split.cc b/sql/opt_split.cc
index 85ca234f..8e2b7e12 100644
--- a/sql/opt_split.cc
+++ b/sql/opt_split.cc
@@ -1335,6 +1335,7 @@ bool JOIN::fix_all_splittings_in_plan()
{
table_map prev_tables= 0;
table_map all_tables= (table_map(1) << table_count) - 1;
+ table_map prev_sjm_lookup_tables= 0;
for (uint tablenr= 0; tablenr < table_count; tablenr++)
{
POSITION *cur_pos= &best_positions[tablenr];
@@ -1343,7 +1344,7 @@ bool JOIN::fix_all_splittings_in_plan()
{
SplM_plan_info *spl_plan= cur_pos->spl_plan;
table_map excluded_tables= (all_tables & ~prev_tables) |
- sjm_lookup_tables;
+ prev_sjm_lookup_tables;
;
if (spl_plan)
{
@@ -1361,6 +1362,8 @@ bool JOIN::fix_all_splittings_in_plan()
return true;
}
prev_tables|= tab->table->map;
+ if (cur_pos->sj_strategy == SJ_OPT_MATERIALIZE)
+ prev_sjm_lookup_tables|= tab->table->map;
}
return false;
}