~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/t/fulltext_left_join.test

  • Committer: Monty Taylor
  • Date: 2008-10-16 06:32:30 UTC
  • mto: (511.1.5 codestyle)
  • mto: This revision was merged to the branch mainline in revision 521.
  • Revision ID: monty@inaugust.com-20081016063230-4brxsra0qsmsg84q
Added -Wunused-macros.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#
2
 
# Test for bug from Jean-C�dric COSTA <jean-cedric.costa@ensmp.fr>
3
 
#
4
 
 
5
 
--disable_warnings
6
 
drop table if exists t1, t2;
7
 
--enable_warnings
8
 
 
9
 
CREATE TABLE t1 (
10
 
       id           VARCHAR(255) NOT NULL PRIMARY KEY,
11
 
       sujet        VARCHAR(255),
12
 
       motsclefs    TEXT,
13
 
       texte        MEDIUMTEXT,
14
 
       FULLTEXT(sujet, motsclefs, texte)
15
 
);
16
 
INSERT INTO t1 VALUES('123','toto','essai','test');
17
 
INSERT INTO t1 VALUES('456','droit','penal','lawyer');
18
 
INSERT INTO t1 VALUES('789','aaaaa','bbbbb','cccccc');
19
 
CREATE TABLE t2 (
20
 
       id         VARCHAR(255) NOT NULL,
21
 
       author     VARCHAR(255) NOT NULL
22
 
);
23
 
INSERT INTO t2 VALUES('123', 'moi');
24
 
INSERT INTO t2 VALUES('123', 'lui');
25
 
INSERT INTO t2 VALUES('456', 'lui');
26
 
 
27
 
select round(match(t1.texte,t1.sujet,t1.motsclefs) against('droit'),5)
28
 
       from t1 left join t2 on t2.id=t1.id;
29
 
select match(t1.texte,t1.sujet,t1.motsclefs) against('droit' IN BOOLEAN MODE)
30
 
       from t1 left join t2 on t2.id=t1.id;
31
 
 
32
 
drop table t1, t2;
33
 
 
34
 
#
35
 
# BUG#484, reported by Stephen Brandon <stephen@brandonitconsulting.co.uk>
36
 
#
37
 
 
38
 
create table t1 (venue_id int(11) default null, venue_text varchar(255) default null, dt datetime default null) engine=myisam;
39
 
insert into t1 (venue_id, venue_text, dt) values (1, 'a1', '2003-05-23 19:30:00'),(null, 'a2', '2003-05-23 19:30:00');
40
 
create table t2 (name varchar(255) not null default '', entity_id int(11) not null auto_increment, primary key  (entity_id), fulltext key name (name)) engine=myisam;
41
 
insert into t2 (name, entity_id) values ('aberdeen town hall', 1), ('glasgow royal concert hall', 2), ('queen\'s hall, edinburgh', 3);
42
 
select * from t1 left join t2 on venue_id = entity_id where match(name) against('aberdeen' in boolean mode) and dt = '2003-05-23 19:30:00';
43
 
select * from t1 left join t2 on venue_id = entity_id where match(name) against('aberdeen') and dt = '2003-05-23 19:30:00';
44
 
select * from t1 left join t2 on (venue_id = entity_id and match(name) against('aberdeen' in boolean mode)) where dt = '2003-05-23 19:30:00';
45
 
select * from t1 left join t2 on (venue_id = entity_id and match(name) against('aberdeen')) where dt = '2003-05-23 19:30:00';
46
 
drop table t1,t2;
47
 
 
48
 
#
49
 
# BUG#14708
50
 
# Inconsistent treatment of NULLs in LEFT JOINed FULLTEXT matching without index
51
 
#
52
 
 
53
 
create table t1 (id int not null primary key, d char(200) not null, e char(200));
54
 
insert into t1 values (1, 'aword', null), (2, 'aword', 'bword'), (3, 'bword', null), (4, 'bword', 'aword'), (5, 'aword and bword', null);
55
 
select * from t1 where match(d, e) against ('+aword +bword' in boolean mode);
56
 
create table t2 (m_id int not null, f char(200), key (m_id));
57
 
insert into t2 values (1, 'bword'), (3, 'aword'), (5, '');
58
 
select * from t1 left join t2 on m_id = id where match(d, e, f) against ('+aword +bword' in boolean mode);
59
 
drop table t1,t2;
60
 
 
61
 
#
62
 
# BUG#25637: LEFT JOIN with BOOLEAN FULLTEXT loses left table matches
63
 
#            (this is actually the same bug as bug #14708)
64
 
#
65
 
 
66
 
CREATE TABLE t1 (
67
 
  id int(10) NOT NULL auto_increment,
68
 
  link int(10) default NULL,
69
 
  name mediumtext default NULL,
70
 
  PRIMARY KEY (id),
71
 
  FULLTEXT (name)
72
 
);
73
 
INSERT INTO t1 VALUES (1, 1, 'string');
74
 
INSERT INTO t1 VALUES (2, 0, 'string');
75
 
CREATE TABLE t2 (
76
 
    id int(10) NOT NULL auto_increment,
77
 
    name mediumtext default NULL,
78
 
    PRIMARY KEY (id),
79
 
    FULLTEXT (name)
80
 
);
81
 
INSERT INTO t2 VALUES (1, 'string');
82
 
 
83
 
SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance 
84
 
  FROM t1 LEFT JOIN t2 ON t1.link = t2.id
85
 
    WHERE MATCH(t1.name, t2.name) AGAINST('string' IN BOOLEAN MODE);
86
 
 
87
 
DROP TABLE t1,t2;
88
 
 
89
 
# End of 4.1 tests
90
 
 
91
 
#
92
 
# BUG#25729 - boolean full text search is confused by NULLs produced by LEFT
93
 
#             JOIN
94
 
#
95
 
CREATE TABLE t1 (a INT);
96
 
CREATE TABLE t2 (b INT, c TEXT, KEY(b));
97
 
INSERT INTO t1 VALUES(1);
98
 
INSERT INTO t2(b,c) VALUES(2,'castle'),(3,'castle');
99
 
SELECT * FROM t1 LEFT JOIN t2 ON a=b WHERE MATCH(c) AGAINST('+castle' IN BOOLEAN MODE);
100
 
DROP TABLE t1, t2;