mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-07 14:19:10 -04:00
DBD::SQLite: added a failing test (WARNING: this test may cause segfaults now!), adapted from RT #50503 posted by sendai
This commit is contained in:
parent
1d17ea4428
commit
726440ae80
1 changed files with 49 additions and 0 deletions
49
t/rt_50503_fts3.t
Normal file
49
t/rt_50503_fts3.t
Normal file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
BEGIN {
|
||||
$| = 1;
|
||||
$^W = 1;
|
||||
}
|
||||
|
||||
use t::lib::Test;
|
||||
use Test::More;
|
||||
use Test::NoWarnings;
|
||||
|
||||
plan tests => 6;
|
||||
|
||||
my $dbh = connect_ok( RaiseError => 1, AutoCommit => 0 );
|
||||
|
||||
$dbh->do(<<EOF);
|
||||
CREATE VIRTUAL TABLE incident_fts
|
||||
USING fts3 (incident_id VARCHAR, all_text VARCHAR, TOKENIZE simple)
|
||||
EOF
|
||||
$dbh->commit;
|
||||
|
||||
insert_data($dbh, '595', time(), "sample text foo bar baz");
|
||||
insert_data($dbh, '595', time(), "sample text foo bar baz");
|
||||
insert_data($dbh, '595', time(), "sample text foo bar baz");
|
||||
insert_data($dbh, '595', time(), "sample text foo bar baz");
|
||||
$dbh->commit;
|
||||
|
||||
{
|
||||
my $sth = $dbh->prepare("SELECT * FROM incident_fts WHERE all_text MATCH 'bar'");
|
||||
$sth->execute();
|
||||
|
||||
while (my $row = $sth->fetchrow_hashref("NAME_lc")) {
|
||||
# The result may vary with or without an output,
|
||||
# but anyway, either case seems failing at the destruction.
|
||||
ok %$row;
|
||||
#ok %$row, join ',', %$row;
|
||||
}
|
||||
}
|
||||
|
||||
$dbh->commit;
|
||||
|
||||
sub insert_data {
|
||||
my($dbh, $inc_num, $date, $text) = @_;
|
||||
# "OR REPLACE" isn't standard SQL, but it sure is useful
|
||||
my $sth = $dbh->prepare('INSERT OR REPLACE INTO incident_fts (incident_id, all_text) VALUES (?, ?)');
|
||||
$sth->execute($inc_num, $text) || die "execute failed\n";
|
||||
$dbh->commit;
|
||||
}
|
Loading…
Add table
Reference in a new issue