diff options
-rw-r--r-- | mysql-test/r/fulltext.result | 8 | ||||
-rw-r--r-- | mysql-test/t/fulltext.test | 13 | ||||
-rw-r--r-- | sql/item_func.h | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result index d1edce12cce..a5216189d9a 100644 --- a/mysql-test/r/fulltext.result +++ b/mysql-test/r/fulltext.result @@ -543,3 +543,11 @@ awrd bwrd cwrd awrd bwrd cwrd awrd bwrd cwrd DROP TABLE t1; +CREATE TABLE t1 (col text, FULLTEXT KEY full_text (col)); +PREPARE s FROM +"SELECT MATCH (col) AGAINST('findme') FROM t1 ORDER BY MATCH (col) AGAINST('findme')" + ; +EXECUTE s; +MATCH (col) AGAINST('findme') +DEALLOCATE PREPARE s; +DROP TABLE t1; diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test index b565485bab9..80c8658d35c 100644 --- a/mysql-test/t/fulltext.test +++ b/mysql-test/t/fulltext.test @@ -471,3 +471,16 @@ CREATE TABLE t1(a VARCHAR(64), FULLTEXT(a)); INSERT INTO t1 VALUES('awrd bwrd cwrd'),('awrd bwrd cwrd'),('awrd bwrd cwrd'); SELECT * FROM t1 WHERE MATCH(a) AGAINST('+awrd bwrd* +cwrd*' IN BOOLEAN MODE); DROP TABLE t1; + +# +# BUG#37740 Server crashes on execute statement with full text search and match against +# +CREATE TABLE t1 (col text, FULLTEXT KEY full_text (col)); + +PREPARE s FROM + "SELECT MATCH (col) AGAINST('findme') FROM t1 ORDER BY MATCH (col) AGAINST('findme')" + ; + +EXECUTE s; +DEALLOCATE PREPARE s; +DROP TABLE t1; diff --git a/sql/item_func.h b/sql/item_func.h index 514f93a39ea..025ac12fe07 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -1519,6 +1519,7 @@ public: ft_handler->please->close_search(ft_handler); ft_handler= 0; concat_ws= 0; + table= 0; // required by Item_func_match::eq() DBUG_VOID_RETURN; } enum Functype functype() const { return FT_FUNC; } |