diff --git a/mysql-test/r/fulltext_left_join.result b/mysql-test/r/fulltext_left_join.result new file mode 100644 index 00000000000..04244e309e5 --- /dev/null +++ b/mysql-test/r/fulltext_left_join.result @@ -0,0 +1,5 @@ +match(t1.texte,t1.sujet,t1.motsclefs) against('droit') +0 +0 +0.67003110026735 +0 diff --git a/mysql-test/t/fulltext_left_join.test b/mysql-test/t/fulltext_left_join.test new file mode 100644 index 00000000000..bbe2beb7d0e --- /dev/null +++ b/mysql-test/t/fulltext_left_join.test @@ -0,0 +1,25 @@ +# +# Test for bug from Jean-Cédric COSTA +# + +CREATE TABLE t1 ( + id VARCHAR(255) NOT NULL PRIMARY KEY, + sujet VARCHAR(255), + motsclefs TEXT, + texte MEDIUMTEXT, + FULLTEXT(sujet, motsclefs, texte) +); +INSERT INTO t1 VALUES('123','toto','essai','test'); +INSERT INTO t1 VALUES('456','droit','penal','lawyer'); +INSERT INTO t1 VALUES('789','aaaaa','bbbbb','cccccc'); +CREATE TABLE t2 ( + id VARCHAR(255) NOT NULL, + author VARCHAR(255) NOT NULL +); +INSERT INTO t2 VALUES('123', 'moi'); +INSERT INTO t2 VALUES('123', 'lui'); +INSERT INTO t2 VALUES('456', 'lui'); + +select match(t1.texte,t1.sujet,t1.motsclefs) against('droit') + from t1 left join t2 on t2.id=t1.id; + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index fdd4541cfc8..8e11d60fb6e 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1329,6 +1329,9 @@ add_ft_keys(DYNAMIC_ARRAY *keyuse_array, { Item_func_match *cond_func=NULL; + if (!cond) + return; + if (cond->type() == Item::FUNC_ITEM) { Item_func *func=(Item_func *)cond,