Commit 8dc8acbb authored by unknown's avatar unknown
Browse files

Merge olga.mysql.com:/home/igor/mysql-4.1-opt

into  olga.mysql.com:/home/igor/mysql-5.0-opt


mysql-test/r/fulltext_left_join.result:
  Auto merged
mysql-test/t/fulltext_left_join.test:
  Auto merged
sql/item_func.cc:
  Auto merged
parents 6447a7b6 6d04643a
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -67,3 +67,26 @@ id d e m_id f
4	bword	aword	NULL	NULL
5	aword and bword	NULL	5	
drop table t1,t2;
CREATE TABLE t1 (
id int(10) NOT NULL auto_increment,
link int(10) default NULL,
name mediumtext default NULL,
PRIMARY KEY (id),
FULLTEXT (name)
);
INSERT INTO t1 VALUES (1, 1, 'string');
INSERT INTO t1 VALUES (2, 0, 'string');
CREATE TABLE t2 (
id int(10) NOT NULL auto_increment,
name mediumtext default NULL,
PRIMARY KEY (id),
FULLTEXT (name)
);
INSERT INTO t2 VALUES (1, 'string');
SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance 
FROM t1 LEFT JOIN t2 ON t1.link = t2.id
WHERE MATCH(t1.name, t2.name) AGAINST('string' IN BOOLEAN MODE);
id	link	name	relevance
1	1	string	0
2	0	string	0
DROP TABLE t1,t2;
+41 −0
Original line number Diff line number Diff line
@@ -58,4 +58,45 @@ insert into t2 values (1, 'bword'), (3, 'aword'), (5, '');
select * from t1 left join t2 on m_id = id where match(d, e, f) against ('+aword +bword' in boolean mode);
drop table t1,t2;

#
# BUG#14708
# Inconsistent treatment of NULLs in LEFT JOINed FULLTEXT matching without index
#

create table t1 (id int not null primary key, d char(200) not null, e char(200));
insert into t1 values (1, 'aword', null), (2, 'aword', 'bword'), (3, 'bword', null), (4, 'bword', 'aword'), (5, 'aword and bword', null);
select * from t1 where match(d, e) against ('+aword +bword' in boolean mode);
create table t2 (m_id int not null, f char(200), key (m_id));
insert into t2 values (1, 'bword'), (3, 'aword'), (5, '');
select * from t1 left join t2 on m_id = id where match(d, e, f) against ('+aword +bword' in boolean mode);
drop table t1,t2;

#
# BUG#25637: LEFT JOIN with BOOLEAN FULLTEXT loses left table matches
#            (this is actually the same bug as bug #14708)
#

CREATE TABLE t1 (
  id int(10) NOT NULL auto_increment,
  link int(10) default NULL,
  name mediumtext default NULL,
  PRIMARY KEY (id),
  FULLTEXT (name)
);
INSERT INTO t1 VALUES (1, 1, 'string');
INSERT INTO t1 VALUES (2, 0, 'string');
CREATE TABLE t2 (
    id int(10) NOT NULL auto_increment,
    name mediumtext default NULL,
    PRIMARY KEY (id),
    FULLTEXT (name)
);
INSERT INTO t2 VALUES (1, 'string');

SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance 
  FROM t1 LEFT JOIN t2 ON t1.link = t2.id
    WHERE MATCH(t1.name, t2.name) AGAINST('string' IN BOOLEAN MODE);

DROP TABLE t1,t2;

# End of 4.1 tests