summaryrefslogtreecommitdiff
path: root/sql/item_func.h
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2010-10-18 14:47:26 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2010-10-18 14:47:26 +0400
commit9a8f22fa2d9126cf7344cdd90e258f72dfa2e51e (patch)
tree2531ef5b40462491747a2d3283a13f594835277f /sql/item_func.h
parentab3417b636c5b3f2514ccdfbf166a7f1361527ad (diff)
downloadmariadb-git-9a8f22fa2d9126cf7344cdd90e258f72dfa2e51e.tar.gz
Bug#54484 explain + prepared statement: crash and Got error -1 from storage engine
Subquery executes twice, at top level JOIN::optimize and ::execute stages. At first execution create_sort_index() function is called and FT_SELECT object is created and destroyed. HANDLER::ft_handler is cleaned up in the object destructor and at second execution FT_SELECT::get_next() method returns error. The fix is to reinit HANDLER::ft_handler field before re-execution of subquery.
Diffstat (limited to 'sql/item_func.h')
-rw-r--r--sql/item_func.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/item_func.h b/sql/item_func.h
index 256348eee08..26a7e033692 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -1531,7 +1531,7 @@ public:
join_key(0), ft_handler(0), table(0), master(0), concat_ws(0) { }
void cleanup()
{
- DBUG_ENTER("Item_func_match");
+ DBUG_ENTER("Item_func_match::cleanup");
Item_real_func::cleanup();
if (!master && ft_handler)
ft_handler->please->close_search(ft_handler);