From d6b0767c8c819655e0a90b8f9c33356f92832c87 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Thu, 23 Jun 2011 22:12:22 -0700 Subject: [PATCH] Fixed a valgrind problem. The function setup_tables should handle table_list elements for semijoin materialized tables in a special way when executing a prepared statement for the second time. --- sql/sql_base.cc | 13 ++++++++++--- sql/sql_select.cc | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/sql/sql_base.cc b/sql/sql_base.cc index c42551100ae..57775146b90 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -7830,9 +7830,16 @@ bool setup_tables(THD *thd, Name_resolution_context *context, select_lex->leaf_tables.empty(); while ((table_list= ti++)) { - table_list->table->tablenr= table_list->tablenr_exec; - table_list->table->map= table_list->map_exec; - table_list->table->pos_in_table_list= table_list; + if(table_list->jtbm_subselect) + { + table_list->jtbm_table_no= table_list->tablenr_exec; + } + else + { + table_list->table->tablenr= table_list->tablenr_exec; + table_list->table->map= table_list->map_exec; + table_list->table->pos_in_table_list= table_list; + } select_lex->leaf_tables.push_back(table_list); } } diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 9363964f846..fa957fbe21b 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -826,6 +826,7 @@ inject_jtbm_conds(JOIN *join, List *join_list, Item **join_where) //repeat of convert_subq_to_jtbm: table->table= hash_sj_engine->tmp_table; + table->table->pos_in_table_list= table; setup_table_map(table->table, table, table->jtbm_table_no);