null+****@clear*****
null+****@clear*****
2011年 6月 9日 (木) 16:31:40 JST
Kouhei Sutou 2011-06-09 07:31:40 +0000 (Thu, 09 Jun 2011)
New Revision: 2e719b395919d6ce680544acf49f6ea0fa71fca3
Log:
add tests for fulltext search on wrapper mode. refs #925
NOTE: It's not worked yet.
Added files:
test/sql/r/fulltext_wrapper.result
test/sql/t/fulltext_wrapper.test
Modified files:
test/sql/r/Makefile.am
test/sql/t/Makefile.am
Modified: test/sql/r/Makefile.am (+12 -0)
===================================================================
--- test/sql/r/Makefile.am 2011-06-09 07:01:41 +0000 (4857fd1)
+++ test/sql/r/Makefile.am 2011-06-09 07:31:40 +0000 (8427497)
@@ -1,15 +1,27 @@
# ls *.result | sort | sed -e 's/^/\t/'
EXTRA_DIST = \
+ auto_increment.result \
+ binlog.result \
btree.result \
+ count_performance.result \
create_table.result \
+ create_table_wrapper.result \
delete.result \
drop_database.result \
drop_table.result \
+ flush_logs.result \
fulltext.result \
+ fulltext_wrapper.result \
hash.result \
+ information_schema.result \
insert.result \
+ last_insert_grn_id.result \
+ log_level.result \
+ order_limit_performance.result \
+ replace.result \
select_all.result \
select_pkey.result \
+ select_secondary_key.result \
show_create_table.result \
show_table_status.result \
update.result
Added: test/sql/r/fulltext_wrapper.result (+202 -0) 100644
===================================================================
--- /dev/null
+++ test/sql/r/fulltext_wrapper.result 2011-06-09 07:31:40 +0000 (607d966)
@@ -0,0 +1,202 @@
+drop table if exists t1, t2, t3;
+create table t1 (c1 int primary key, c2 text, fulltext index ft (c2)) COMMENT = 'engine "innodb"';
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) NOT NULL,
+ `c2` text,
+ PRIMARY KEY (`c1`),
+ FULLTEXT KEY `ft` (`c2`)
+) ENGINE=groonga DEFAULT CHARSET=latin1
+insert into t1 values (1, "hoge hoge");
+insert into t1 values (2, "fuga fuga");
+insert into t1 values (3, "moge moge");
+select * from t1;
+c1 c2
+1 hoge hoge
+2 fuga fuga
+3 moge moge
+flush tables;
+select * from t1;
+c1 c2
+1 hoge hoge
+2 fuga fuga
+3 moge moge
+drop table t1;
+create table t1 (c1 int primary key, c2 int, c3 text, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo");
+insert into t1 values(2,20,"ka ki ku ke ko");
+insert into t1 values(3,30,"sa si su se so");
+insert into t1 values(4,40,"ta ti tu te to");
+insert into t1 values(5,50,"aa ii uu ee oo");
+select * from t1;
+c1 c2 c3
+1 10 aa ii uu ee oo
+2 20 ka ki ku ke ko
+3 30 sa si su se so
+4 40 ta ti tu te to
+5 50 aa ii uu ee oo
+select * from t1 where match(c3) against("su");
+c1 c2 c3
+3 30 sa si su se so
+select * from t1 where match(c3) against("ii");
+c1 c2 c3
+1 10 aa ii uu ee oo
+5 50 aa ii uu ee oo
+select * from t1 where match(c3) against("+su" in boolean mode);
+c1 c2 c3
+3 30 sa si su se so
+select * from t1 where match(c3) against("+ii" in boolean mode);
+c1 c2 c3
+1 10 aa ii uu ee oo
+5 50 aa ii uu ee oo
+drop table t1;
+set names utf8;
+create table t1 (c1 int primary key, c2 varchar(255), c3 text, fulltext index(c2), fulltext index(c3)) default charset utf8;
+insert into t1 values(1, "明日の富士山の天気について","あああああああ");
+insert into t1 values(2, "いいいいい","明日の富士山の天気は分かりません");
+insert into t1 values(3, "dummy", "dummy");
+select * from t1;
+c1 c2 c3
+1 明日の富士山の天気について あああああああ
+2 いいいいい 明日の富士山の天気は分かりません
+3 dummy dummy
+select * from t1 where match(c2) against("富士山");
+c1 c2 c3
+1 明日の富士山の天気について あああああああ
+select * from t1 where match(c3) against("富士山");
+c1 c2 c3
+2 いいいいい 明日の富士山の天気は分かりません
+drop table t1;
+create table t1 (c1 int primary key, c2 varchar(100), _score float, fulltext index(c2)) default charset utf8;
+create table t2 (c1 int primary key, c2 text, _score float, fulltext index(c2)) default charset utf8;
+insert into t1 values (1, "aa ii uu ee oo", null);
+insert into t1 values (2, "ka ki ku ke ko", null);
+insert into t1 values (3, "aa ii ii ii oo", null);
+insert into t1 values (4, "sa si su se so", null);
+insert into t1 values (5, "ta ti ii ii to", null);
+insert into t2 (c1,c2) select c1,c2 from t1;
+select * from t1;
+c1 c2 _score
+1 aa ii uu ee oo 0
+2 ka ki ku ke ko 0
+3 aa ii ii ii oo 0
+4 sa si su se so 0
+5 ta ti ii ii to 0
+select * from t2;
+c1 c2 _score
+1 aa ii uu ee oo 0
+2 ka ki ku ke ko 0
+3 aa ii ii ii oo 0
+4 sa si su se so 0
+5 ta ti ii ii to 0
+select * from t1 where c1=3;
+c1 c2 _score
+3 aa ii ii ii oo 0
+select * from t2 where c1=3;
+c1 c2 _score
+3 aa ii ii ii oo 0
+select * from t1 where c1>3 order by c1 desc;
+c1 c2 _score
+5 ta ti ii ii to 0
+4 sa si su se so 0
+select * from t2 where c1>3 order by c1 asc;
+c1 c2 _score
+4 sa si su se so 0
+5 ta ti ii ii to 0
+select * from t1 where c2>"s" order by c2 desc;
+c1 c2 _score
+5 ta ti ii ii to 0
+4 sa si su se so 0
+select * from t2 where c2>"s" order by c1 asc;
+c1 c2 _score
+4 sa si su se so 0
+5 ta ti ii ii to 0
+select * from t1 where match(c2) against("ii") order by _score desc;
+c1 c2 _score
+3 aa ii ii ii oo 3
+5 ta ti ii ii to 2
+1 aa ii uu ee oo 1
+select * from t2 where match(c2) against("ii") order by _score asc;
+c1 c2 _score
+1 aa ii uu ee oo 1
+5 ta ti ii ii to 2
+3 aa ii ii ii oo 3
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+c1 c2 match(c2) against("ii")
+1 aa ii uu ee oo -1
+3 aa ii ii ii oo -1
+5 ta ti ii ii to -1
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+c1 c2 match(c2) against("ii")
+1 aa ii uu ee oo -1
+3 aa ii ii ii oo -1
+5 ta ti ii ii to -1
+drop table t1,t2;
+create table t1 (c1 int primary key, c2 int, c3 text, _score float, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo",null);
+insert into t1 values(2,10,"ka ki ku ke ko",null);
+insert into t1 values(3,10,"aa ii uu ee oo",null);
+insert into t1 values(4,10,"ka ki ku ke ko",null);
+insert into t1 values(5,20,"aa ii uu ee oo",null);
+insert into t1 values(6,20,"ka ki ku ke ko",null);
+insert into t1 values(7,20,"aa ii uu ee oo",null);
+insert into t1 values(8,20,"ka ki ku ke ko",null);
+select * from t1;
+c1 c2 c3 _score
+1 10 aa ii uu ee oo 0
+2 10 ka ki ku ke ko 0
+3 10 aa ii uu ee oo 0
+4 10 ka ki ku ke ko 0
+5 20 aa ii uu ee oo 0
+6 20 ka ki ku ke ko 0
+7 20 aa ii uu ee oo 0
+8 20 ka ki ku ke ko 0
+select * from t1 where match(c3) against("uu");
+c1 c2 c3 _score
+1 10 aa ii uu ee oo 1
+3 10 aa ii uu ee oo 1
+5 20 aa ii uu ee oo 1
+7 20 aa ii uu ee oo 1
+select * from t1 where not match(c3) against("uu");
+c1 c2 c3 _score
+2 10 ka ki ku ke ko 0
+4 10 ka ki ku ke ko 0
+6 20 ka ki ku ke ko 0
+8 20 ka ki ku ke ko 0
+select * from t1 where match(c3) against("dummy");
+c1 c2 c3 _score
+select * from t1 where not match(c3) against("dummy");
+c1 c2 c3 _score
+1 10 aa ii uu ee oo 0
+2 10 ka ki ku ke ko 0
+3 10 aa ii uu ee oo 0
+4 10 ka ki ku ke ko 0
+5 20 aa ii uu ee oo 0
+6 20 ka ki ku ke ko 0
+7 20 aa ii uu ee oo 0
+8 20 ka ki ku ke ko 0
+select * from t1 where c1 = 4 and not match(c3) against("uu");
+c1 c2 c3 _score
+4 10 ka ki ku ke ko 0
+select * from t1 where c1 <= 4 and not match(c3) against("uu");
+c1 c2 c3 _score
+2 10 ka ki ku ke ko 0
+4 10 ka ki ku ke ko 0
+select * from t1 where c1 > 4 and not match(c3) against("uu");
+c1 c2 c3 _score
+6 20 ka ki ku ke ko 0
+8 20 ka ki ku ke ko 0
+select * from t1 where c2 = 10 and not match(c3) against("uu");
+c1 c2 c3 _score
+2 10 ka ki ku ke ko 0
+4 10 ka ki ku ke ko 0
+select * from t1 where c2 >= 15 and not match(c3) against("uu");
+c1 c2 c3 _score
+6 20 ka ki ku ke ko 0
+8 20 ka ki ku ke ko 0
+select * from t1 where c2 < 15 and not match(c3) against("uu");
+c1 c2 c3 _score
+2 10 ka ki ku ke ko 0
+4 10 ka ki ku ke ko 0
+drop table t1;
Modified: test/sql/t/Makefile.am (+12 -0)
===================================================================
--- test/sql/t/Makefile.am 2011-06-09 07:01:41 +0000 (e55e68f)
+++ test/sql/t/Makefile.am 2011-06-09 07:31:40 +0000 (0ecd1f4)
@@ -1,15 +1,27 @@
# ls *.test | sort | sed -e 's/^/\t/'
EXTRA_DIST = \
+ auto_increment.test \
+ binlog.test \
btree.test \
+ count_performance.test \
create_table.test \
+ create_table_wrapper.test \
delete.test \
drop_database.test \
drop_table.test \
+ flush_logs.test \
fulltext.test \
+ fulltext_wrapper.test \
hash.test \
+ information_schema.test \
insert.test \
+ last_insert_grn_id.test \
+ log_level.test \
+ order_limit_performance.test \
+ replace.test \
select_all.test \
select_pkey.test \
+ select_secondary_key.test \
show_create_table.test \
show_table_status.test \
update.test
Added: test/sql/t/fulltext_wrapper.test (+102 -0) 100644
===================================================================
--- /dev/null
+++ test/sql/t/fulltext_wrapper.test 2011-06-09 07:31:40 +0000 (190348d)
@@ -0,0 +1,102 @@
+# Copyright(C) 2010 Tetsuro IKEDA
+# Copyright(C) 2011 Kouhei Sutou <kou****@clear*****>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+--source suite/groonga/include/groonga.inc
+
+--disable_warnings
+drop table if exists t1, t2, t3;
+--enable_warnings
+
+create table t1 (c1 int primary key, c2 text, fulltext index ft (c2)) COMMENT = 'engine "innodb"';
+show create table t1;
+insert into t1 values (1, "hoge hoge");
+insert into t1 values (2, "fuga fuga");
+insert into t1 values (3, "moge moge");
+select * from t1;
+flush tables;
+select * from t1;
+drop table t1;
+
+create table t1 (c1 int primary key, c2 int, c3 text, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo");
+insert into t1 values(2,20,"ka ki ku ke ko");
+insert into t1 values(3,30,"sa si su se so");
+insert into t1 values(4,40,"ta ti tu te to");
+insert into t1 values(5,50,"aa ii uu ee oo");
+select * from t1;
+select * from t1 where match(c3) against("su");
+select * from t1 where match(c3) against("ii");
+select * from t1 where match(c3) against("+su" in boolean mode);
+select * from t1 where match(c3) against("+ii" in boolean mode);
+drop table t1;
+
+set names utf8;
+create table t1 (c1 int primary key, c2 varchar(255), c3 text, fulltext index(c2), fulltext index(c3)) default charset utf8;
+insert into t1 values(1, "明日の富士山の天気について","あああああああ");
+insert into t1 values(2, "いいいいい","明日の富士山の天気は分かりません");
+insert into t1 values(3, "dummy", "dummy");
+select * from t1;
+select * from t1 where match(c2) against("富士山");
+select * from t1 where match(c3) against("富士山");
+drop table t1;
+
+create table t1 (c1 int primary key, c2 varchar(100), _score float, fulltext index(c2)) default charset utf8;
+create table t2 (c1 int primary key, c2 text, _score float, fulltext index(c2)) default charset utf8;
+insert into t1 values (1, "aa ii uu ee oo", null);
+insert into t1 values (2, "ka ki ku ke ko", null);
+insert into t1 values (3, "aa ii ii ii oo", null);
+insert into t1 values (4, "sa si su se so", null);
+insert into t1 values (5, "ta ti ii ii to", null);
+insert into t2 (c1,c2) select c1,c2 from t1;
+select * from t1;
+select * from t2;
+select * from t1 where c1=3;
+select * from t2 where c1=3;
+select * from t1 where c1>3 order by c1 desc;
+select * from t2 where c1>3 order by c1 asc;
+select * from t1 where c2>"s" order by c2 desc;
+select * from t2 where c2>"s" order by c1 asc;
+select * from t1 where match(c2) against("ii") order by _score desc;
+select * from t2 where match(c2) against("ii") order by _score asc;
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+select c1,c2,match(c2) against("ii") from t1 where match(c2) against("ii");
+drop table t1,t2;
+
+# for "not match against"
+create table t1 (c1 int primary key, c2 int, c3 text, _score float, fulltext index ft(c3)) COMMENT = 'engine "innodb"';
+insert into t1 values(1,10,"aa ii uu ee oo",null);
+insert into t1 values(2,10,"ka ki ku ke ko",null);
+insert into t1 values(3,10,"aa ii uu ee oo",null);
+insert into t1 values(4,10,"ka ki ku ke ko",null);
+insert into t1 values(5,20,"aa ii uu ee oo",null);
+insert into t1 values(6,20,"ka ki ku ke ko",null);
+insert into t1 values(7,20,"aa ii uu ee oo",null);
+insert into t1 values(8,20,"ka ki ku ke ko",null);
+select * from t1;
+select * from t1 where match(c3) against("uu");
+select * from t1 where not match(c3) against("uu");
+select * from t1 where match(c3) against("dummy");
+select * from t1 where not match(c3) against("dummy");
+select * from t1 where c1 = 4 and not match(c3) against("uu");
+select * from t1 where c1 <= 4 and not match(c3) against("uu");
+select * from t1 where c1 > 4 and not match(c3) against("uu");
+select * from t1 where c2 = 10 and not match(c3) against("uu");
+select * from t1 where c2 >= 15 and not match(c3) against("uu");
+select * from t1 where c2 < 15 and not match(c3) against("uu");
+drop table t1;
+
+--source suite/groonga/include/groonga_deinit.inc