1
0
Fork 0
mirror of https://github.com/DBD-SQLite/DBD-SQLite synced 2025-06-07 14:19:10 -04:00
This commit is contained in:
Kenichi Ishigaki 2011-12-12 02:39:09 +00:00
parent 6f7f79e12b
commit 27394e17b1
3 changed files with 43 additions and 0 deletions

View file

@ -3,6 +3,7 @@ Changes for Perl extension DBD-SQLite
1.36_01 Tue 29 Nov 2011
- Enabled SQLITE_ENABLE_FTS4
- Enabled SQLITE_ENABLE_STAT3
- Resolved #73159: FTS tokenizer segfault (ISHIGAKI)
1.35 Tue 29 Nov 2011
- Updated to SQLite 3.7.9 (ISHIGAKI)

View file

@ -2124,6 +2124,10 @@ static int perl_tokenizer_Create(
int n_retval;
SV *retval;
if (!argc) {
return SQLITE_ERROR;
}
perl_tokenizer *t;
t = (perl_tokenizer *) sqlite3_malloc(sizeof(*t));
if( t==NULL ) return SQLITE_NOMEM;

View file

@ -0,0 +1,38 @@
#!/usr/bin/perl
use strict;
BEGIN {
$| = 1;
$^W = 1;
}
use t::lib::Test;
use Test::More tests => 2;
use DBI;
my $dbh = connect_ok(RaiseError => 1, PrintError => 0);
sub locale_tokenizer {
return sub {
my $string = shift;
use locale;
my $regex = qr/\w+/;
my $term_index = 0;
return sub { # closure
$string =~ /$regex/g or return; # either match, or no more token
my ($start, $end) = ($-[0], $+[0]);
my $len = $end-$start;
my $term = substr($string, $start, $len);
return ($term, $len, $start, $end, $term_index++);
}
};
}
# "main::locale_tokenizer" is considered as another column name
# because of the comma after "tokenize=perl"
eval {
$dbh->do('CREATE VIRTUAL TABLE FIXMESSAGE USING FTS3(MESSAGE, tokenize=perl, "main::locale_tokenizer");');
};
ok $@, "cause an error but not segfault";