#!perl
use strict;
BEGIN
{
require Test::More;
if (! eval { require DBD::SQLite }) {
Test::More->import(skipall => 'DBD::SQLite not available');
} else {
Test::More->import(tests => 6);
}
}
package MyDATA;
use strict;
use base qw(Class::DBI);
use Class::DBI::Plugin::Senna
index_filename => 't/test_index',
index_column => 'data'
;
__PACKAGE__->set_db(Main => 'dbi:SQLite:dbname=t/test.db', undef, undef, { AutoCommit => 1});
__PACKAGE__->table('MyDATA');
__PACKAGE__->columns(All => qw(id data));
1;
package main;
use strict;
MyDATA->db_Main->do(qq{
CREATE TABLE MyDATA (
id PRIMARY KEY,
data TEXT
);
});
my $id = 'a';
while (<DATA>) {
chomp;
MyDATA->create({ id => $id++, data => $_ });
}
my $iter = MyDATA->fulltext_search("¤·¤Þ¤Ã¤¿");
isa_ok($iter, 'Class::DBI::Plugin::Senna::Iterator');
is($iter->count, 2);
while (my $e = $iter->next) {
ok($e);
}
my $obj = MyDATA->retrieve('b');
$obj->data("¤¤¤Å¤ì¤Î¸æ»þ¤Ë¤«¡¢½÷¸æ¡¢¹¹°á¤¢¤Þ¤¿¤µ¤Ö¤é¤Ò¤¿¤Þ¤Ò¤±¤ë¤Ê¤«¤Ë¡¢¤¤¤È¤ä¤à¤´¤È¤Ê¤ºÝ¤Ë¤Ï¤¢¤é¤Ì¤¬¡¢¤¹¤°¤ì¤Æ»þ¤á¤¤¿¤Þ¤Õ¤¢¤ê¤±¤ê¡£");
$obj->update;
my($rs) = MyDATA->fulltext_search("¤¹¤°¤ì¤Æ»þ¤á¤¤¿¤Þ¤Õ¤¢¤ê¤±¤ê");
is($rs && $rs->id, 'b');
if ($rs) {
$rs->delete;
($rs) = MyDATA->fulltext_search("¤¹¤°¤ì¤Æ»þ¤á¤¤¿¤Þ¤Õ¤¢¤ê¤±¤ê");
ok(!$rs);
} else {
ok(0);
}
END {
eval {MyDATA->senna_index->remove};
eval {unlink("t/test.db")};
}
__DATA__
µÀ±àÀº¼Ë¤Î¾â¤ÎÀ¼¡¢½ô¹Ô̵¾ï¤Î¶Á¤¤¢¤ê¡£Õ°ÍåÁмù¤Î²Ö¤Î¿§¡¢À¹¼Ôɬ¿ê¤ÎÍý¤ò¤¢¤é¤ï¤¹¡£¤ª¤´¤ì¤ë¿Í¤âµ×¤·¤«¤é¤º¡¢Í£½Õ¤ÎÌë¤ÎÌ´¤Î¤´¤È¤·¡£¤¿¤±¤¼Ô¤â¿ë¤Ë¤Ï¤Û¤í¤Ó¤Ì¡¢ÊФËÉ÷¤ÎÁ°¤Î¿Ð¤ËƱ¤¸¡£
¿Á¤Îìä¹â¡Ê¤Á¤ç¤¦¤³¤¦¡Ë¡¢´Á¤Î²¦èϡʤª¤¦¤â¤¦¡Ë¡¢Î¤μþ°Ë¡Ê¤·¤å¤¤¡Ë¡¢Åâ¤ÎϽ»³¡Ê¤í¤¯¤µ¤ó¡Ý°ÂϽ»³¡Ë¤é¤âµì¼çÀè¹Ä¤ÎÀ¯¼£¤Ë½¾¤ï¤º¡¢³Ú¤·¤ß¤ò¤¤ï¤áëݸÀ¤âʹ¤«¤º¡¢Å·²¼¤ÎÍð¤ì¤âÃΤ餺¡¢Ì±½°¤ÎÍ«¤¤¤â¸Ü¤ß¤Ê¤¤¤Î¤ÇË´¤Ó¤Æ¤·¤Þ¤Ã¤¿¡£
²æ¤¬¹ñ¤Ç¤â¡¢¾µÊ¿¤ÎÊ¿¾Ì硢ŷ·Ä¤ÎÆ£¸¶½ãͧ¡Ê¤¹¤ß¤È¤â¡Ë¡¢¹¯Ï¤θ»µÁ¿Æ¡Ê¤è¤·¤Á¤«¡Ë¡¢Ê¿¼£¤ÎÆ£¸¶¿®Íê¡Ê¤Î¤Ö¤è¤ê¡Ë¡¢¤³¤ì¤é¤â¤Þ¤â¤Ê¤¯Ë´¤Ó¤Æ¤·¤Þ¤Ã¤¿¡£
ºÇ¶á¤Ç¤Ï¡¢Ï»ÇÈÍå¤ÎÆþÆ»Á°ÂÀÀ¯Âç¿ÃÊ¿Ä«¿ÃÀ¶À¹¸ø¤È¤¤¤¦¿Í¤ÎÍÍͤòʹ¤¯¤È¡¢¸ÀÍդˤǤ¤Ê¤¤¤Û¤É¤À¡£
¤½¤ÎÀèÁĤϴ¼ÉðÅ·¹Ä¤ÎÂè¸Þ¤Î¹Ä»Ò¡£°ìÉʼ°Éô¶ª³ë¸¶¡Ê¤«¤º¤é¤Ï¤é¡Ë¿Æ²¦¤Î¶åÂå¤Î»Ò¹¤Ë¤¢¤¿¤ë»¾´ô¼éÀµÀ¹¡Ê¤µ¤Ì¤¤Î¤«¤ß¤Þ¤µ¤â¤ê¡Ë¤Î»Ò¹¤Ç¤¢¤ê¡¢·ºÉô¶ªÃéÀ¹¡Ê¤¿¤À¤â¤ê¡ËÄ«¿Ã¤ÎÃäÃˤǤ¢¤ë¡£¤«¤Î¿Æ²¦¤Î»Ò¡¢¹â»ë²¦¡Ê¤¿¤«¤ß¤ª¤¦¡Ë¤Ï̵´±Ìµ°Ì¤Ç¤·¤¿¡£¤½¤Î»Ò¹â˾²¦¡Ê¤¿¤«¤â¤Á¤ª¤¦¡Ë¤Î¤È¤½é¤á¤ÆÊ¿¤ÎÀ«¤ò»ò¤Ã¤Æ¾åÁí²ð¤Ë¤Ê¤ê¤Þ¤·¤¿¤¬¡¢¤¹¤°¹Ä²¤ò¤Ï¤Ê¤ì¤Æ¿Í¿Ã¤ËÏ¢¤Ê¤Ã¤¿¡£¤½¤Î»Ò¤ÎÄüéÉܾ·³ÎÉ˾¡Ê¤è¤·¤â¤Á¡£¸å¤Ë¹ñ¹á¡Ê¤¯¤Ë¤«¡Ë¤È̾¤ò²þ¤á¤¿¡£¡Ë¤«¤éÀµÀ¹¤Þ¤Ç¤ÎÏ»Âå¤Î´Ö¤Ï¡¢½ô¹ñ¤Î¼õÎΤǤ¢¤Ã¤¿¤¬¡¢µÜÃæ¤Ë¾ºÅ¤òµö¤µ¤ì¤Ê¤«¤Ã¤¿¡£