null+****@clear*****
null+****@clear*****
2011年 7月 13日 (水) 16:23:27 JST
Kouhei Sutou 2011-07-13 07:23:27 +0000 (Wed, 13 Jul 2011) New Revision: c8e1db05fc066f60b0d99a4c07bc3b5a94beaffa Log: [wrapper] add tests for MyISAM. fixes #1033 Added files: test/sql/groonga_wrapper/r/fulltext_myisam.result test/sql/groonga_wrapper/t/fulltext_myisam.test Modified files: test/sql/groonga_wrapper/r/Makefile.am test/sql/groonga_wrapper/t/Makefile.am Modified: test/sql/groonga_wrapper/r/Makefile.am (+1 -0) =================================================================== --- test/sql/groonga_wrapper/r/Makefile.am 2011-07-13 07:01:21 +0000 (d0a9875) +++ test/sql/groonga_wrapper/r/Makefile.am 2011-07-13 07:23:27 +0000 (d96cc0d) @@ -5,6 +5,7 @@ EXTRA_DIST = \ fulltext.result \ fulltext_many_records.result \ fulltext_multiple_column_index.result \ + fulltext_myisam.result \ insert.result \ update.result \ $(NULL) Added: test/sql/groonga_wrapper/r/fulltext_myisam.result (+202 -0) 100644 =================================================================== --- /dev/null +++ test/sql/groonga_wrapper/r/fulltext_myisam.result 2011-07-13 07:23:27 +0000 (df31937) @@ -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 "myisam"'; +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 COMMENT='engine "myisam"' +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 "myisam"'; +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 COMMENT = 'engine "myisam"'; +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), fulltext index(c2)) default charset utf8 COMMENT = 'engine "myisam"'; +create table t2 (c1 int primary key, c2 text, fulltext index(c2)) default charset utf8 COMMENT = 'engine "myisam"'; +insert into t1 values (1, "aa ii uu ee oo"); +insert into t1 values (2, "ka ki ku ke ko"); +insert into t1 values (3, "aa ii ii ii oo"); +insert into t1 values (4, "sa si su se so"); +insert into t1 values (5, "ta ti ii ii to"); +insert into t2 (c1,c2) select c1,c2 from t1; +select * from t1; +c1 c2 +1 aa ii uu ee oo +2 ka ki ku ke ko +3 aa ii ii ii oo +4 sa si su se so +5 ta ti ii ii to +select * from t2; +c1 c2 +1 aa ii uu ee oo +2 ka ki ku ke ko +3 aa ii ii ii oo +4 sa si su se so +5 ta ti ii ii to +select * from t1 where c1=3; +c1 c2 +3 aa ii ii ii oo +select * from t2 where c1=3; +c1 c2 +3 aa ii ii ii oo +select * from t1 where c1>3 order by c1 desc; +c1 c2 +5 ta ti ii ii to +4 sa si su se so +select * from t2 where c1>3 order by c1 asc; +c1 c2 +4 sa si su se so +5 ta ti ii ii to +select * from t1 where c2>"s" order by c2 desc; +c1 c2 +5 ta ti ii ii to +4 sa si su se so +select * from t2 where c2>"s" order by c1 asc; +c1 c2 +4 sa si su se so +5 ta ti ii ii to +select *,match(c2) against("ii") from t1 where match(c2) against("ii") order by match(c2) against("ii") desc; +c1 c2 match(c2) against("ii") +3 aa ii ii ii oo 3 +5 ta ti ii ii to 2 +1 aa ii uu ee oo 1 +select *,match(c2) against("ii") from t2 where match(c2) against("ii") order by match(c2) against("ii") asc; +c1 c2 match(c2) against("ii") +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 3 +5 ta ti ii ii to 2 +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 3 +5 ta ti ii ii to 2 +drop table t1,t2; +create table t1 (c1 int primary key, c2 int, c3 text, fulltext index ft(c3)) COMMENT = 'engine "myisam"'; +insert into t1 values(1,10,"aa ii uu ee oo"); +insert into t1 values(2,10,"ka ki ku ke ko"); +insert into t1 values(3,10,"aa ii uu ee oo"); +insert into t1 values(4,10,"ka ki ku ke ko"); +insert into t1 values(5,20,"aa ii uu ee oo"); +insert into t1 values(6,20,"ka ki ku ke ko"); +insert into t1 values(7,20,"aa ii uu ee oo"); +insert into t1 values(8,20,"ka ki ku ke ko"); +select * from t1; +c1 c2 c3 +1 10 aa ii uu ee oo +2 10 ka ki ku ke ko +3 10 aa ii uu ee oo +4 10 ka ki ku ke ko +5 20 aa ii uu ee oo +6 20 ka ki ku ke ko +7 20 aa ii uu ee oo +8 20 ka ki ku ke ko +select *,match(c3) against("uu") from t1 where match(c3) against("uu"); +c1 c2 c3 match(c3) against("uu") +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 +2 10 ka ki ku ke ko +4 10 ka ki ku ke ko +6 20 ka ki ku ke ko +8 20 ka ki ku ke ko +select *,match(c3) against("dummy") from t1 where match(c3) against("dummy"); +c1 c2 c3 match(c3) against("dummy") +select * from t1 where not match(c3) against("dummy"); +c1 c2 c3 +1 10 aa ii uu ee oo +2 10 ka ki ku ke ko +3 10 aa ii uu ee oo +4 10 ka ki ku ke ko +5 20 aa ii uu ee oo +6 20 ka ki ku ke ko +7 20 aa ii uu ee oo +8 20 ka ki ku ke ko +select * from t1 where c1 = 4 and not match(c3) against("uu"); +c1 c2 c3 +4 10 ka ki ku ke ko +select * from t1 where c1 <= 4 and not match(c3) against("uu"); +c1 c2 c3 +2 10 ka ki ku ke ko +4 10 ka ki ku ke ko +select * from t1 where c1 > 4 and not match(c3) against("uu"); +c1 c2 c3 +6 20 ka ki ku ke ko +8 20 ka ki ku ke ko +select * from t1 where c2 = 10 and not match(c3) against("uu"); +c1 c2 c3 +2 10 ka ki ku ke ko +4 10 ka ki ku ke ko +select * from t1 where c2 >= 15 and not match(c3) against("uu"); +c1 c2 c3 +6 20 ka ki ku ke ko +8 20 ka ki ku ke ko +select * from t1 where c2 < 15 and not match(c3) against("uu"); +c1 c2 c3 +2 10 ka ki ku ke ko +4 10 ka ki ku ke ko +drop table t1; Modified: test/sql/groonga_wrapper/t/Makefile.am (+1 -0) =================================================================== --- test/sql/groonga_wrapper/t/Makefile.am 2011-07-13 07:01:21 +0000 (15b39ad) +++ test/sql/groonga_wrapper/t/Makefile.am 2011-07-13 07:23:27 +0000 (1b19b51) @@ -5,6 +5,7 @@ EXTRA_DIST = \ fulltext.test \ fulltext_many_records.test \ fulltext_multiple_column_index.test \ + fulltext_myisam.test \ insert.test \ update.test \ $(NULL) Added: test/sql/groonga_wrapper/t/fulltext_myisam.test (+102 -0) 100644 =================================================================== --- /dev/null +++ test/sql/groonga_wrapper/t/fulltext_myisam.test 2011-07-13 07:23:27 +0000 (f195881) @@ -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_init.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 "myisam"'; +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 "myisam"'; +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 COMMENT = 'engine "myisam"'; +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), fulltext index(c2)) default charset utf8 COMMENT = 'engine "myisam"'; +create table t2 (c1 int primary key, c2 text, fulltext index(c2)) default charset utf8 COMMENT = 'engine "myisam"'; +insert into t1 values (1, "aa ii uu ee oo"); +insert into t1 values (2, "ka ki ku ke ko"); +insert into t1 values (3, "aa ii ii ii oo"); +insert into t1 values (4, "sa si su se so"); +insert into t1 values (5, "ta ti ii ii to"); +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 *,match(c2) against("ii") from t1 where match(c2) against("ii") order by match(c2) against("ii") desc; +select *,match(c2) against("ii") from t2 where match(c2) against("ii") order by match(c2) against("ii") 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, fulltext index ft(c3)) COMMENT = 'engine "myisam"'; +insert into t1 values(1,10,"aa ii uu ee oo"); +insert into t1 values(2,10,"ka ki ku ke ko"); +insert into t1 values(3,10,"aa ii uu ee oo"); +insert into t1 values(4,10,"ka ki ku ke ko"); +insert into t1 values(5,20,"aa ii uu ee oo"); +insert into t1 values(6,20,"ka ki ku ke ko"); +insert into t1 values(7,20,"aa ii uu ee oo"); +insert into t1 values(8,20,"ka ki ku ke ko"); +select * from t1; +select *,match(c3) against("uu") from t1 where match(c3) against("uu"); +select * from t1 where not match(c3) against("uu"); +select *,match(c3) against("dummy") 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