2000-12-28 02:56:38 +01:00
|
|
|
|
#
|
|
|
|
|
# Test of fulltext index
|
|
|
|
|
#
|
|
|
|
|
|
2003-01-06 00:48:59 +01:00
|
|
|
|
--disable_warnings
|
2001-08-03 23:10:00 +02:00
|
|
|
|
drop table if exists t1,t2,t3;
|
2003-01-06 00:48:59 +01:00
|
|
|
|
--enable_warnings
|
2001-01-07 23:04:30 +01:00
|
|
|
|
|
2000-12-28 02:56:38 +01:00
|
|
|
|
CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
|
2001-10-09 14:53:54 +02:00
|
|
|
|
INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
|
|
|
|
|
('Full-text indexes', 'are called collections'),
|
|
|
|
|
('Only MyISAM tables','support collections'),
|
|
|
|
|
('Function MATCH ... AGAINST()','is used to do a search'),
|
|
|
|
|
('Full-text search in MySQL', 'implements vector space model');
|
2004-02-04 17:42:18 +01:00
|
|
|
|
SHOW INDEX FROM t1;
|
2001-11-28 17:55:45 +01:00
|
|
|
|
|
|
|
|
|
# nl search
|
2003-07-07 19:02:58 +02:00
|
|
|
|
|
2000-12-28 02:56:38 +01:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("collections");
|
2003-10-30 11:57:26 +01:00
|
|
|
|
explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
|
2000-12-28 02:56:38 +01:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("indexes");
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("indexes collections");
|
2003-01-21 19:24:34 +01:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("only");
|
2001-11-28 17:55:45 +01:00
|
|
|
|
|
2003-10-23 15:21:06 +02:00
|
|
|
|
# query expansion
|
2002-03-15 13:11:11 +01:00
|
|
|
|
|
2003-10-23 15:21:06 +02:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("collections" WITH QUERY EXPANSION);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("indexes" WITH QUERY EXPANSION);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("indexes collections" WITH QUERY EXPANSION);
|
2003-07-07 19:02:58 +02:00
|
|
|
|
|
|
|
|
|
# add_ft_keys() tests
|
|
|
|
|
|
|
|
|
|
explain select * from t1 where MATCH(a,b) AGAINST ("collections");
|
|
|
|
|
explain select * from t1 where MATCH(a,b) AGAINST ("collections")>0;
|
|
|
|
|
explain select * from t1 where MATCH(a,b) AGAINST ("collections")>1;
|
|
|
|
|
explain select * from t1 where MATCH(a,b) AGAINST ("collections")>=0;
|
|
|
|
|
explain select * from t1 where MATCH(a,b) AGAINST ("collections")>=1;
|
|
|
|
|
explain select * from t1 where 0<MATCH(a,b) AGAINST ("collections");
|
|
|
|
|
explain select * from t1 where 1<MATCH(a,b) AGAINST ("collections");
|
|
|
|
|
explain select * from t1 where 0<=MATCH(a,b) AGAINST ("collections");
|
|
|
|
|
explain select * from t1 where 1<=MATCH(a,b) AGAINST ("collections");
|
|
|
|
|
explain select * from t1 where MATCH(a,b) AGAINST ("collections")>0 and a like '%ll%';
|
2002-03-15 13:11:11 +01:00
|
|
|
|
|
2001-11-28 17:55:45 +01:00
|
|
|
|
# boolean search
|
|
|
|
|
|
2001-10-09 14:53:54 +02:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE);
|
2003-10-30 11:57:26 +01:00
|
|
|
|
explain extended select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE);
|
2001-10-09 14:53:54 +02:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("support +collections" IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("sear*" IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("+search" IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("+search +(support vector)" IN BOOLEAN MODE);
|
2001-10-17 14:49:54 +02:00
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
|
2002-03-04 14:17:49 +01:00
|
|
|
|
select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
|
|
|
|
|
select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
|
2001-11-28 17:55:45 +01:00
|
|
|
|
|
2002-05-15 20:31:24 +02:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
|
|
|
|
|
|
2002-06-28 15:18:45 +02:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"support now"' IN BOOLEAN MODE);
|
2002-04-18 16:12:29 +02:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
|
2002-05-08 18:47:27 +02:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE);
|
2002-11-20 15:17:17 +01:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"text i"' IN BOOLEAN MODE);
|
2004-05-10 12:39:01 +02:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
|
2002-04-18 16:12:29 +02:00
|
|
|
|
|
2004-02-22 00:19:36 +01:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
|
2003-10-14 16:19:13 +02:00
|
|
|
|
select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
|
2002-04-18 16:12:29 +02:00
|
|
|
|
|
2004-05-27 21:14:59 +02:00
|
|
|
|
# bug#2708, bug#3870 crash
|
|
|
|
|
|
|
|
|
|
select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE);
|
|
|
|
|
|
2001-11-28 17:55:45 +01:00
|
|
|
|
# boolean w/o index:
|
|
|
|
|
|
2001-12-12 12:25:20 +01:00
|
|
|
|
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
|
|
|
|
|
select * from t1 where MATCH b AGAINST ("sear*" IN BOOLEAN MODE);
|
2001-11-28 17:55:45 +01:00
|
|
|
|
|
2003-07-07 19:02:58 +02:00
|
|
|
|
# UNION of fulltext's
|
|
|
|
|
select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes");
|
|
|
|
|
|
2001-11-28 17:55:45 +01:00
|
|
|
|
#update/delete with fulltext index
|
|
|
|
|
|
2000-12-28 02:56:38 +01:00
|
|
|
|
delete from t1 where a like "MySQL%";
|
2001-11-21 18:25:44 +01:00
|
|
|
|
update t1 set a='some test foobar' where MATCH a,b AGAINST ('model');
|
|
|
|
|
delete from t1 where MATCH(a,b) AGAINST ("indexes");
|
|
|
|
|
select * from t1;
|
2000-12-28 02:56:38 +01:00
|
|
|
|
drop table t1;
|
2001-01-07 23:04:30 +01:00
|
|
|
|
|
2003-11-08 15:39:10 +01:00
|
|
|
|
#
|
|
|
|
|
# why to scan strings for trunc*
|
|
|
|
|
#
|
|
|
|
|
create table t1 (a varchar(200) not null, fulltext (a));
|
|
|
|
|
insert t1 values ("aaa10 bbb20"), ("aaa20 bbb15"), ("aaa30 bbb10");
|
|
|
|
|
select * from t1 where match a against ("+aaa* +bbb*" in boolean mode);
|
|
|
|
|
select * from t1 where match a against ("+aaa* +bbb1*" in boolean mode);
|
|
|
|
|
select * from t1 where match a against ("+aaa* +ccc*" in boolean mode);
|
2003-11-20 23:15:07 +01:00
|
|
|
|
select * from t1 where match a against ("+aaa10 +(bbb*)" in boolean mode);
|
2003-11-08 15:39:10 +01:00
|
|
|
|
drop table t1;
|
|
|
|
|
|
2001-01-07 23:04:30 +01:00
|
|
|
|
#
|
|
|
|
|
# Check bug reported by Matthias Urlichs
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
id int(11),
|
|
|
|
|
ticket int(11),
|
|
|
|
|
KEY ti (id),
|
|
|
|
|
KEY tit (ticket)
|
2001-02-28 11:43:08 +01:00
|
|
|
|
);
|
2001-01-07 23:04:30 +01:00
|
|
|
|
INSERT INTO t1 VALUES (2,3),(1,2);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t2 (
|
|
|
|
|
ticket int(11),
|
|
|
|
|
inhalt text,
|
|
|
|
|
KEY tig (ticket),
|
2001-02-28 11:43:08 +01:00
|
|
|
|
fulltext index tix (inhalt)
|
|
|
|
|
);
|
2001-01-07 23:04:30 +01:00
|
|
|
|
INSERT INTO t2 VALUES (1,'foo'),(2,'bar'),(3,'foobar');
|
|
|
|
|
|
2001-02-28 11:43:08 +01:00
|
|
|
|
select t1.id FROM t2 as ttxt,t1,t1 as ticket2
|
|
|
|
|
WHERE ticket2.id = ttxt.ticket AND t1.id = ticket2.ticket and
|
|
|
|
|
match(ttxt.inhalt) against ('foobar');
|
2001-01-07 23:04:30 +01:00
|
|
|
|
|
|
|
|
|
# In the following query MySQL didn't use the fulltext index
|
2001-02-28 11:43:08 +01:00
|
|
|
|
select t1.id FROM t2 as ttxt,t1 INNER JOIN t1 as ticket2 ON
|
|
|
|
|
ticket2.id = ttxt.ticket
|
|
|
|
|
WHERE t1.id = ticket2.ticket and match(ttxt.inhalt) against ('foobar');
|
2001-01-07 23:04:30 +01:00
|
|
|
|
|
|
|
|
|
INSERT INTO t1 VALUES (3,3);
|
2001-04-17 14:17:22 +02:00
|
|
|
|
select t1.id FROM t2 as ttxt,t1
|
|
|
|
|
INNER JOIN t1 as ticket2 ON ticket2.id = ttxt.ticket
|
|
|
|
|
WHERE t1.id = ticket2.ticket and
|
|
|
|
|
match(ttxt.inhalt) against ('foobar');
|
2001-01-07 23:04:30 +01:00
|
|
|
|
|
|
|
|
|
# Check that we get 'fulltext' index in SHOW CREATE
|
|
|
|
|
|
|
|
|
|
show keys from t2;
|
|
|
|
|
show create table t2;
|
2001-02-28 02:32:40 +01:00
|
|
|
|
|
|
|
|
|
# check for bug reported by Stephan Skusa
|
|
|
|
|
|
2001-02-28 11:43:08 +01:00
|
|
|
|
select * from t2 where MATCH inhalt AGAINST (NULL);
|
|
|
|
|
|
2001-04-17 14:17:22 +02:00
|
|
|
|
# MATCH in HAVING (pretty useless, but still it should work)
|
|
|
|
|
|
|
|
|
|
select * from t2 where MATCH inhalt AGAINST ('foobar');
|
|
|
|
|
select * from t2 having MATCH inhalt AGAINST ('foobar');
|
|
|
|
|
|
2001-08-03 23:10:00 +02:00
|
|
|
|
#
|
|
|
|
|
# check of fulltext errors
|
|
|
|
|
#
|
|
|
|
|
|
After merge fixes
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
Added DBUG statements
Added call of my_end() to free all used memory on exit
heap/hp_info.c:
After merge fixes
heap/hp_open.c:
After merge fixes
include/heap.h:
After merge fixes
include/m_ctype.h:
Use pchar instead of 'int' for character parameters.
Added 'my_binary_compare()'
include/m_string.h:
Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
After merge fixes
innobase/srv/srv0start.c:
After merge fixes
mysql-test/r/alter_table.result:
Fixed results after merge
mysql-test/r/auto_increment.result:
Fixed results after merge
mysql-test/r/bdb.result:
Fixed results after merge
mysql-test/r/binary.result:
Fixed results after merge
mysql-test/r/create.result:
Fixed results after merge
mysql-test/r/ctype_mb.result:
Fixed results after merge
mysql-test/r/ctype_tis620.result:
Fixed results after merge
mysql-test/r/ctype_utf8.result:
Fixed results after merge
mysql-test/r/delete.result:
Fixed results after merge
mysql-test/r/func_compress.result:
Fixed results after merge
mysql-test/r/func_gconcat.result:
Fixed results after merge
mysql-test/r/func_group.result:
Fixed results after merge
mysql-test/r/func_str.result:
Fixed results after merge
mysql-test/r/innodb.result:
Fixed results after merge
mysql-test/r/insert.result:
Fixed results after merge
mysql-test/r/insert_select.result:
Fixed results after merge
mysql-test/r/key.result:
Fixed results after merge
mysql-test/r/loaddata.result:
Fixed results after merge
mysql-test/r/lock.result:
Fixed results after merge
mysql-test/r/myisam.result:
Fixed results after merge
mysql-test/r/null.result:
Fixed results after merge
mysql-test/r/null_key.result:
Fixed results after merge
mysql-test/r/order_by.result:
Fixed results after merge
mysql-test/r/query_cache.result:
Fixed results after merge
mysql-test/r/range.result:
Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
Fixed results after merge
mysql-test/r/rpl_until.result:
Fixed results after merge
mysql-test/r/subselect.result:
Fixed results after merge
mysql-test/r/subselect_innodb.result:
Fixed results after merge
mysql-test/r/type_blob.result:
Fixed results after merge
mysql-test/r/type_datetime.result:
Fixed results after merge
mysql-test/r/type_decimal.result:
Fixed results after merge
mysql-test/r/type_enum.result:
Fixed results after merge
mysql-test/r/type_float.result:
Fixed results after merge
mysql-test/r/type_ranges.result:
Fixed results after merge
mysql-test/r/type_time.result:
Fixed results after merge
mysql-test/r/type_timestamp.result:
Fixed results after merge
mysql-test/r/type_uint.result:
Fixed results after merge
mysql-test/r/type_year.result:
Fixed results after merge
mysql-test/r/variables.result:
Fixed results after merge
mysql-test/r/warnings.result:
Fixed results after merge
mysql-test/t/case.test:
Fixed shifted error messages
mysql-test/t/create.test:
Fixed shifted error messages
mysql-test/t/ctype_collate.test:
Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
Fixed shifted error messages
mysql-test/t/derived.test:
Fixed shifted error messages
mysql-test/t/fulltext.test:
Fixed shifted error messages
mysql-test/t/func_in.test:
Fixed shifted error messages
mysql-test/t/func_str.test:
Fixed shifted error messages
mysql-test/t/func_test.test:
Fixed shifted error messages
mysql-test/t/grant.test:
Fixed shifted error messages
mysql-test/t/innodb.test:
Change to 4.1 syntax
mysql-test/t/key_cache.test:
Fixed shifted error messages
mysql-test/t/myisam.test:
New test of blob and end space
mysql-test/t/row.test:
Fixed shifted error messages
mysql-test/t/rpl_until.test:
Fixed shifted error messages
mysql-test/t/subselect.test:
Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
Fix test to take into account foreign key constraints
mysql-test/t/union.test:
Fixed shifted error messages
mysql-test/t/user_var.test:
Fixed shifted error messages
mysql-test/t/variables.test:
Fixed shifted error messages
mysys/my_handler.c:
Merge with 4.0 code
sql/ha_heap.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
After merge fixes
sql/item_cmpfunc.cc:
Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
More DBUG statements
Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
After merge fixes
sql/sql_db.cc:
After merge fixes
sql/sql_handler.cc:
After merge fixes
Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Added function comment for setup_group()
sql/sql_string.cc:
Added stringcmp() for binary comparison.
Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
Added stringcmp()
sql/sql_table.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
sql/sql_yacc.yy:
Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
Strip only end space, not other space characters.
strings/ctype-bin.c:
Removed some not needed functions.
Added function comments
Don't remove end space in comparisons
Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
Strip only end space, not other space characters.
strings/ctype-gbk.c:
Strip only end space, not other space characters.
strings/ctype-latin1.c:
Strip only end space, not other space characters.
strings/ctype-mb.c:
Strip only end space, not other space characters.
strings/ctype-simple.c:
Strip only end space, not other space characters.
strings/ctype-sjis.c:
Strip only end space, not other space characters.
strings/ctype-tis620.c:
Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
Strip only end space, not other space characters.
Fixed indentation
strings/strto.c:
Code cleanup
2004-02-16 09:03:25 +01:00
|
|
|
|
--error 1283
|
2003-10-15 13:40:20 +02:00
|
|
|
|
CREATE TABLE t3 (t int(11),i text,fulltext tix (t,i));
|
After merge fixes
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
Delete: mysql-test/r/ctype_tis620.result-old
BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
Delete: mysql-test/t/ctype_tis620.test-old
client/mysqlbinlog.cc:
Added DBUG statements
Added call of my_end() to free all used memory on exit
heap/hp_info.c:
After merge fixes
heap/hp_open.c:
After merge fixes
include/heap.h:
After merge fixes
include/m_ctype.h:
Use pchar instead of 'int' for character parameters.
Added 'my_binary_compare()'
include/m_string.h:
Fixed wrong define
innobase/ibuf/ibuf0ibuf.c:
After merge fixes
innobase/srv/srv0start.c:
After merge fixes
mysql-test/r/alter_table.result:
Fixed results after merge
mysql-test/r/auto_increment.result:
Fixed results after merge
mysql-test/r/bdb.result:
Fixed results after merge
mysql-test/r/binary.result:
Fixed results after merge
mysql-test/r/create.result:
Fixed results after merge
mysql-test/r/ctype_mb.result:
Fixed results after merge
mysql-test/r/ctype_tis620.result:
Fixed results after merge
mysql-test/r/ctype_utf8.result:
Fixed results after merge
mysql-test/r/delete.result:
Fixed results after merge
mysql-test/r/func_compress.result:
Fixed results after merge
mysql-test/r/func_gconcat.result:
Fixed results after merge
mysql-test/r/func_group.result:
Fixed results after merge
mysql-test/r/func_str.result:
Fixed results after merge
mysql-test/r/innodb.result:
Fixed results after merge
mysql-test/r/insert.result:
Fixed results after merge
mysql-test/r/insert_select.result:
Fixed results after merge
mysql-test/r/key.result:
Fixed results after merge
mysql-test/r/loaddata.result:
Fixed results after merge
mysql-test/r/lock.result:
Fixed results after merge
mysql-test/r/myisam.result:
Fixed results after merge
mysql-test/r/null.result:
Fixed results after merge
mysql-test/r/null_key.result:
Fixed results after merge
mysql-test/r/order_by.result:
Fixed results after merge
mysql-test/r/query_cache.result:
Fixed results after merge
mysql-test/r/range.result:
Fixed results after merge
mysql-test/r/rpl_multi_delete.result:
Fixed results after merge
mysql-test/r/rpl_until.result:
Fixed results after merge
mysql-test/r/subselect.result:
Fixed results after merge
mysql-test/r/subselect_innodb.result:
Fixed results after merge
mysql-test/r/type_blob.result:
Fixed results after merge
mysql-test/r/type_datetime.result:
Fixed results after merge
mysql-test/r/type_decimal.result:
Fixed results after merge
mysql-test/r/type_enum.result:
Fixed results after merge
mysql-test/r/type_float.result:
Fixed results after merge
mysql-test/r/type_ranges.result:
Fixed results after merge
mysql-test/r/type_time.result:
Fixed results after merge
mysql-test/r/type_timestamp.result:
Fixed results after merge
mysql-test/r/type_uint.result:
Fixed results after merge
mysql-test/r/type_year.result:
Fixed results after merge
mysql-test/r/variables.result:
Fixed results after merge
mysql-test/r/warnings.result:
Fixed results after merge
mysql-test/t/case.test:
Fixed shifted error messages
mysql-test/t/create.test:
Fixed shifted error messages
mysql-test/t/ctype_collate.test:
Fixed shifted error messages
mysql-test/t/ctype_tis620.test:
Merge with 4.0 ctype_tis620 test
mysql-test/t/delete.test:
Fixed shifted error messages
mysql-test/t/derived.test:
Fixed shifted error messages
mysql-test/t/fulltext.test:
Fixed shifted error messages
mysql-test/t/func_in.test:
Fixed shifted error messages
mysql-test/t/func_str.test:
Fixed shifted error messages
mysql-test/t/func_test.test:
Fixed shifted error messages
mysql-test/t/grant.test:
Fixed shifted error messages
mysql-test/t/innodb.test:
Change to 4.1 syntax
mysql-test/t/key_cache.test:
Fixed shifted error messages
mysql-test/t/myisam.test:
New test of blob and end space
mysql-test/t/row.test:
Fixed shifted error messages
mysql-test/t/rpl_until.test:
Fixed shifted error messages
mysql-test/t/subselect.test:
Fixed shifted error messages
mysql-test/t/subselect_innodb.test:
Fix test to take into account foreign key constraints
mysql-test/t/union.test:
Fixed shifted error messages
mysql-test/t/user_var.test:
Fixed shifted error messages
mysql-test/t/variables.test:
Fixed shifted error messages
mysys/my_handler.c:
Merge with 4.0 code
sql/ha_heap.cc:
After merge fixes
sql/handler.cc:
After merge fixes
sql/item.cc:
After merge fixes
sql/item_cmpfunc.cc:
Ensure that we are comparing end space with BINARY strings
sql/item_cmpfunc.h:
Ensure that we are comparing end space with BINARY strings
sql/log_event.cc:
More DBUG statements
Ensure that we use all options to LOAD DATA in replication
sql/opt_range.cc:
After merge fixes
sql/sql_db.cc:
After merge fixes
sql/sql_handler.cc:
After merge fixes
Use 'any_db' instead of '' to mean 'no database comparison'
sql/sql_parse.cc:
After merge fixes
sql/sql_select.cc:
After merge fixes
Added function comment for setup_group()
sql/sql_string.cc:
Added stringcmp() for binary comparison.
Added function comments for sortcmp() and stringcmp()
sql/sql_string.h:
Added stringcmp()
sql/sql_table.cc:
After merge fixes
sql/sql_update.cc:
After merge fixes
sql/sql_yacc.yy:
Use 'any_db' instead of '' to mean any database. Using "" causes a 'wrong db name' error.
strings/ctype-big5.c:
Strip only end space, not other space characters.
strings/ctype-bin.c:
Removed some not needed functions.
Added function comments
Don't remove end space in comparisons
Change my_wildcmp_bin() to be 'identical' with other similar code
strings/ctype-czech.c:
Strip only end space, not other space characters.
strings/ctype-gbk.c:
Strip only end space, not other space characters.
strings/ctype-latin1.c:
Strip only end space, not other space characters.
strings/ctype-mb.c:
Strip only end space, not other space characters.
strings/ctype-simple.c:
Strip only end space, not other space characters.
strings/ctype-sjis.c:
Strip only end space, not other space characters.
strings/ctype-tis620.c:
Added usage of my_instr_simple. This needs to be cleaned up!
strings/ctype-utf8.c:
Strip only end space, not other space characters.
strings/ctype-win1250ch.c:
Strip only end space, not other space characters.
Fixed indentation
strings/strto.c:
Code cleanup
2004-02-16 09:03:25 +01:00
|
|
|
|
--error 1283
|
2003-10-15 13:40:20 +02:00
|
|
|
|
CREATE TABLE t3 (t int(11),i text,
|
|
|
|
|
j varchar(200) CHARACTER SET latin2,
|
|
|
|
|
fulltext tix (i,j));
|
|
|
|
|
|
2001-08-03 23:10:00 +02:00
|
|
|
|
CREATE TABLE t3 (
|
|
|
|
|
ticket int(11),
|
|
|
|
|
inhalt text,
|
|
|
|
|
KEY tig (ticket),
|
|
|
|
|
fulltext index tix (inhalt)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
--error 1210
|
2001-08-13 14:24:29 +02:00
|
|
|
|
select * from t2 where MATCH inhalt AGAINST (t2.inhalt);
|
|
|
|
|
--error 1191
|
|
|
|
|
select * from t2 where MATCH ticket AGAINST ('foobar');
|
2001-08-03 23:10:00 +02:00
|
|
|
|
--error 1210
|
2001-08-13 14:24:29 +02:00
|
|
|
|
select * from t2,t3 where MATCH (t2.inhalt,t3.inhalt) AGAINST ('foobar');
|
2001-08-03 23:10:00 +02:00
|
|
|
|
|
|
|
|
|
drop table t1,t2,t3;
|
2001-10-20 16:37:26 +02:00
|
|
|
|
|
|
|
|
|
#
|
2002-04-18 20:44:18 +02:00
|
|
|
|
# three more bugtests
|
2001-10-20 16:37:26 +02:00
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t1 (
|
|
|
|
|
id int(11) auto_increment,
|
|
|
|
|
title varchar(100) default '',
|
|
|
|
|
PRIMARY KEY (id),
|
2003-06-16 00:13:23 +02:00
|
|
|
|
KEY ind5 (title)
|
2003-12-10 05:31:42 +01:00
|
|
|
|
) ENGINE=MyISAM;
|
2001-10-20 16:37:26 +02:00
|
|
|
|
|
2003-06-16 00:13:23 +02:00
|
|
|
|
CREATE FULLTEXT INDEX ft1 ON t1(title);
|
2001-10-20 16:37:26 +02:00
|
|
|
|
insert into t1 (title) values ('this is a test');
|
2002-04-18 20:44:18 +02:00
|
|
|
|
select * from t1 where match title against ('test' in boolean mode);
|
2001-10-20 16:37:26 +02:00
|
|
|
|
update t1 set title='this is A test' where id=1;
|
|
|
|
|
check table t1;
|
|
|
|
|
update t1 set title='this test once revealed a bug' where id=1;
|
|
|
|
|
select * from t1;
|
2002-01-13 16:35:12 +01:00
|
|
|
|
update t1 set title=NULL where id=1;
|
2002-03-01 17:57:08 +01:00
|
|
|
|
|
|
|
|
|
drop table t1;
|
|
|
|
|
|
|
|
|
|
# one more bug - const_table related
|
|
|
|
|
|
2003-12-10 05:31:42 +01:00
|
|
|
|
CREATE TABLE t1 (a int(11), b text, FULLTEXT KEY (b)) ENGINE=MyISAM;
|
2002-03-01 17:57:08 +01:00
|
|
|
|
insert into t1 values (1,"I wonder why the fulltext index doesnt work?");
|
|
|
|
|
SELECT * from t1 where MATCH (b) AGAINST ('apples');
|
|
|
|
|
|
2002-05-07 20:27:39 +02:00
|
|
|
|
insert into t1 values (2,"fullaaa fullzzz");
|
|
|
|
|
select * from t1 where match b against ('full*' in boolean mode);
|
|
|
|
|
|
2002-03-01 17:57:08 +01:00
|
|
|
|
drop table t1;
|
2003-12-10 05:31:42 +01:00
|
|
|
|
CREATE TABLE t1 ( id int(11) NOT NULL auto_increment primary key, mytext text NOT NULL, FULLTEXT KEY mytext (mytext)) ENGINE=MyISAM;
|
2002-06-14 14:06:01 +02:00
|
|
|
|
INSERT INTO t1 VALUES (1,'my small mouse'),(2,'la-la-la'),(3,'It is so funny'),(4,'MySQL Tutorial');
|
|
|
|
|
select 8 from t1;
|
|
|
|
|
drop table t1;
|
2002-05-07 20:27:39 +02:00
|
|
|
|
|
2002-10-09 20:57:13 +02:00
|
|
|
|
#
|
|
|
|
|
# Check bug reported by Julian Ladisch
|
|
|
|
|
# ERROR 1030: Got error 127 from table handler
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
create table t1 (a text, fulltext key (a));
|
|
|
|
|
insert into t1 values ('aaaa');
|
|
|
|
|
repair table t1;
|
|
|
|
|
select * from t1 where match (a) against ('aaaa');
|
|
|
|
|
drop table t1;
|
|
|
|
|
|
2003-04-23 13:44:39 +02:00
|
|
|
|
#
|
2003-07-31 13:45:35 +02:00
|
|
|
|
# bug #283 by jocelyn fournier <joc@presence-pc.com>
|
2003-04-23 13:44:39 +02:00
|
|
|
|
# FULLTEXT index on a TEXT filed converted to a CHAR field doesn't work anymore
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
create table t1 ( ref_mag text not null, fulltext (ref_mag));
|
|
|
|
|
insert into t1 values ('test');
|
|
|
|
|
select ref_mag from t1 where match ref_mag against ('+test' in boolean mode);
|
|
|
|
|
alter table t1 change ref_mag ref_mag char (255) not null;
|
|
|
|
|
select ref_mag from t1 where match ref_mag against ('+test' in boolean mode);
|
|
|
|
|
drop table t1;
|
|
|
|
|
|
2003-07-31 13:45:35 +02:00
|
|
|
|
#
|
|
|
|
|
# bug #942: JOIN
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
create table t1 (t1_id int(11) primary key, name varchar(32));
|
|
|
|
|
insert into t1 values (1, 'data1');
|
|
|
|
|
insert into t1 values (2, 'data2');
|
|
|
|
|
create table t2 (t2_id int(11) primary key, t1_id int(11), name varchar(32));
|
|
|
|
|
insert into t2 values (1, 1, 'xxfoo');
|
|
|
|
|
insert into t2 values (2, 1, 'xxbar');
|
|
|
|
|
insert into t2 values (3, 1, 'xxbuz');
|
|
|
|
|
select * from t1 join t2 using(`t1_id`) where match (t1.name, t2.name) against('xxfoo' in boolean mode);
|
2003-11-03 23:18:55 +01:00
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# bug with many short (< ft_min_word_len) words in boolean search
|
|
|
|
|
#
|
|
|
|
|
select * from t2 where match name against ('a* b* c* d* e* f*' in boolean mode);
|
|
|
|
|
|
2003-07-31 13:45:35 +02:00
|
|
|
|
drop table t1,t2;
|
2003-10-20 15:53:48 +02:00
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# UTF8
|
|
|
|
|
#
|
|
|
|
|
SET NAMES latin1;
|
|
|
|
|
CREATE TABLE t1 (t text character set utf8 not null, fulltext(t));
|
|
|
|
|
INSERT t1 VALUES ('Mit freundlichem Gr<47><72>'), ('aus Osnabr<62>ck');
|
|
|
|
|
SET NAMES koi8r;
|
|
|
|
|
INSERT t1 VALUES ("<22><><EFBFBD> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>!"),
|
|
|
|
|
("<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>!"),("<22> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>!");
|
2003-11-08 15:41:24 +01:00
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('<27><><EFBFBD>*' IN BOOLEAN MODE);
|
2003-10-20 15:53:48 +02:00
|
|
|
|
SELECT * FROM t1 WHERE MATCH t AGAINST ('<27><><EFBFBD>' IN BOOLEAN MODE);
|
2003-11-08 15:41:24 +01:00
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabr<62>ck');
|
2003-10-20 15:53:48 +02:00
|
|
|
|
SET NAMES latin1;
|
2003-11-08 15:41:24 +01:00
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabr<62>ck');
|
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck');
|
2004-02-29 22:58:45 +01:00
|
|
|
|
SELECT t, collation(t),MATCH t AGAINST ('Osnabruck') FROM t1 WHERE MATCH t AGAINST ('Osnabruck');
|
2003-11-08 15:41:24 +01:00
|
|
|
|
#alter table t1 modify t text character set latin1 collate latin1_german2_ci not null;
|
|
|
|
|
alter table t1 modify t varchar(200) collate latin1_german2_ci not null;
|
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabr<62>ck');
|
|
|
|
|
SELECT t, collation(t) FROM t1 WHERE MATCH t AGAINST ('Osnabrueck');
|
2003-10-20 15:53:48 +02:00
|
|
|
|
DROP TABLE t1;
|
|
|
|
|
|
2004-06-10 21:18:57 +02:00
|
|
|
|
#
|
|
|
|
|
# bug#3964
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
CREATE TABLE t1 (s varchar(255), FULLTEXT (s)) DEFAULT CHARSET=utf8;
|
|
|
|
|
insert into t1 (s) values ('p<>ra para para'),('para para para');
|
|
|
|
|
select * from t1 where match(s) against('para' in boolean mode);
|
|
|
|
|
select * from t1 where match(s) against('par*' in boolean mode);
|
|
|
|
|
DROP TABLE t1;
|