summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorserg@serg.mysql.com <>2001-01-05 23:31:34 +0100
committerserg@serg.mysql.com <>2001-01-05 23:31:34 +0100
commit0b7331710b77e1f23239652c311eb81c26bc8e4f (patch)
treeeec5cfb66123feac695ebe8853213eee6e42b296
parent235323220d35e45f448ac2eac9b2a58f37a9d7b5 (diff)
downloadmariadb-git-0b7331710b77e1f23239652c311eb81c26bc8e4f.tar.gz
sql_select.cc check for cond==NULL in add_ft_keys()
fulltext_left_join.result BitKeeper file /usr/home/serg/Abk/mysql/mysql-test/r/fulltext_left_join.result fulltext_left_join.test BitKeeper file /usr/home/serg/Abk/mysql/mysql-test/t/fulltext_left_join.test
-rw-r--r--mysql-test/r/fulltext_left_join.result5
-rw-r--r--mysql-test/t/fulltext_left_join.test25
-rw-r--r--sql/sql_select.cc3
3 files changed, 33 insertions, 0 deletions
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 <jean-cedric.costa@ensmp.fr>
+#
+
+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,