summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2013-04-06 15:14:46 +0200
committerSergei Golubchik <sergii@pisem.net>2013-04-06 15:14:46 +0200
commit6770a9a836fcc8aa9f49f6b91ce237851638916b (patch)
tree7bb7d4fd838813b1fd7054c6c32a79b5541561cf /sql/sql_select.cc
parent385de8743added00cfaece08720e3a9a789760a5 (diff)
downloadmariadb-git-6770a9a836fcc8aa9f49f6b91ce237851638916b.tar.gz
MDEV-4316 MariaDB server crash with signal 11
fulltext search was initialized for all MATCH ... AGAINST items at the end of the JOIN::optimize(). But since 5.3 derived tables are initialized lazily on first use, very late in the sub_select(). Skip Item_func_match::init_search initialization if the corresponding table isn't open yet; repeat fulltext initialization for all not-yet-initialized MATCH ... AGAINST items after creating derived tables.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index e0a670bdf1c..6432142597f 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -10191,6 +10191,11 @@ bool JOIN_TAB::preread_init()
preread_init_done= TRUE;
if (select && select->quick)
select->quick->replace_handler(table->file);
+
+ /* init ftfuns for just initialized derived table */
+ if (table->fulltext_searched)
+ init_ftfuncs(join->thd, join->select_lex, test(join->order));
+
return FALSE;
}