| Index: third_party/sqlite/src/test/fts3query.test
|
| diff --git a/third_party/sqlite/src/test/fts3query.test b/third_party/sqlite/src/test/fts3query.test
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..68467df9fe560439bc14e096dcecde750c145b67
|
| --- /dev/null
|
| +++ b/third_party/sqlite/src/test/fts3query.test
|
| @@ -0,0 +1,134 @@
|
| +# 2009 December 20
|
| +#
|
| +# The author disclaims copyright to this source code. In place of
|
| +# a legal notice, here is a blessing:
|
| +#
|
| +# May you do good and not evil.
|
| +# May you find forgiveness for yourself and forgive others.
|
| +# May you share freely, never taking more than you give.
|
| +#
|
| +#***********************************************************************
|
| +#
|
| +# This file contains tests of fts3 queries that have been useful during
|
| +# the development process as well as some that have been useful in tracking
|
| +# down bugs. They are not focused on any particular functionality.
|
| +#
|
| +
|
| +set testdir [file dirname $argv0]
|
| +source $testdir/tester.tcl
|
| +
|
| +# If this build does not include FTS3, skip the tests in this file.
|
| +#
|
| +ifcapable !fts3 { finish_test ; return }
|
| +source $testdir/malloc_common.tcl
|
| +source $testdir/fts3_common.tcl
|
| +set DO_MALLOC_TEST 0
|
| +
|
| +do_test fts3query-1.1 {
|
| + execsql {
|
| + CREATE VIRTUAL TABLE t1 USING fts3(x);
|
| + BEGIN;
|
| + INSERT INTO t1 VALUES('The source code for SQLite is in the public');
|
| + }
|
| +} {}
|
| +
|
| +do_select_test fts3query-1.2 {
|
| + SELECT * FROM t1;
|
| +} {{The source code for SQLite is in the public}}
|
| +do_select_test fts3query-1.3 {
|
| + SELECT * FROM t1 WHERE t1 MATCH 'sqlite'
|
| +} {{The source code for SQLite is in the public}}
|
| +
|
| +do_test fts3query-1.4 { execsql {COMMIT} } {}
|
| +
|
| +do_select_test fts3query-1.5 {
|
| + SELECT * FROM t1;
|
| +} {{The source code for SQLite is in the public}}
|
| +do_select_test fts3query-1.6 {
|
| + SELECT * FROM t1 WHERE t1 MATCH 'sqlite'
|
| +} {{The source code for SQLite is in the public}}
|
| +
|
| +
|
| +set sqlite_fts3_enable_parentheses 1
|
| +do_test fts3query-2.1 {
|
| + execsql {
|
| + CREATE VIRTUAL TABLE zoink USING fts3;
|
| + INSERT INTO zoink VALUES('The apple falls far from the tree');
|
| + }
|
| +} {}
|
| +do_test fts3query-2.2 {
|
| + execsql {
|
| + SELECT docid FROM zoink WHERE zoink MATCH '(apple oranges) AND apple'
|
| + }
|
| +} {}
|
| +do_test fts3query-2.3 {
|
| + execsql {
|
| + SELECT docid FROM zoink WHERE zoink MATCH 'apple AND (oranges apple)'
|
| + }
|
| +} {}
|
| +set sqlite_fts3_enable_parentheses 0
|
| +
|
| +do_test fts3query-3.1 {
|
| + execsql {
|
| + CREATE VIRTUAL TABLE foobar using FTS3(description, tokenize porter);
|
| + INSERT INTO foobar (description) values ('
|
| + Filed under: Emerging Technologies, EV/Plug-in, Hybrid, Chevrolet, GM,
|
| + ZENN 2011 Chevy Volt - Click above for high-res image gallery There are
|
| + 16 days left in the month of December. Besides being time for most
|
| + Americans to kick their Christmas shopping sessions into high gear and
|
| + start planning their resolutions for 2010, it also means that there''s
|
| + precious little time for EEStor to "deliver functional technology" to
|
| + Zenn Motors as promised. Still, the promises held out by the secretive
|
| + company are too great for us to forget about entirely. We''d love for
|
| + EEStor''s claims to be independently verified and proven accurate, as
|
| + would just about anyone else looking to break free of petroleum in fav
|
| + ');
|
| + }
|
| +} {}
|
| +
|
| +do_test fts3query-3.2 {
|
| + execsql { SELECT docid FROM foobar WHERE description MATCH '"high sp d"' }
|
| +} {}
|
| +
|
| +proc mit {blob} {
|
| + set scan(littleEndian) i*
|
| + set scan(bigEndian) I*
|
| + binary scan $blob $scan($::tcl_platform(byteOrder)) r
|
| + return $r
|
| +}
|
| +db func mit mit
|
| +
|
| +do_test fts3query-3.3 {
|
| + execsql { SELECT mit(matchinfo(foobar)) FROM foobar WHERE foobar MATCH 'the' }
|
| +} {{1 1 3 3 1}}
|
| +
|
| +# The following tests check that ticket 775b39dd3c has been fixed.
|
| +#
|
| +proc eqp {sql} {
|
| + uplevel [list execsql "EXPLAIN QUERY PLAN $sql"]
|
| +}
|
| +do_test fts3query-4.1 {
|
| + execsql {
|
| + DROP TABLE IF EXISTS t1;
|
| + CREATE TABLE t1(number INTEGER PRIMARY KEY, date);
|
| + CREATE INDEX i1 ON t1(date);
|
| + CREATE VIRTUAL TABLE ft USING fts3(title);
|
| + CREATE TABLE bt(title);
|
| + }
|
| +} {}
|
| +do_test fts3query-4.2 {
|
| + eqp "SELECT t1.number FROM t1, ft WHERE t1.number=ft.rowid ORDER BY t1.date"
|
| +} {0 0 {TABLE t1 WITH INDEX i1 ORDER BY} 1 1 {TABLE ft VIRTUAL TABLE INDEX 1:}}
|
| +do_test fts3query-4.3 {
|
| + eqp "SELECT t1.number FROM ft, t1 WHERE t1.number=ft.rowid ORDER BY t1.date"
|
| +} {0 1 {TABLE t1 WITH INDEX i1 ORDER BY} 1 0 {TABLE ft VIRTUAL TABLE INDEX 1:}}
|
| +do_test fts3query-4.4 {
|
| + eqp "SELECT t1.number FROM t1, bt WHERE t1.number=bt.rowid ORDER BY t1.date"
|
| +} {0 0 {TABLE t1 WITH INDEX i1 ORDER BY} 1 1 {TABLE bt USING PRIMARY KEY}}
|
| +do_test fts3query-4.5 {
|
| + eqp "SELECT t1.number FROM bt, t1 WHERE t1.number=bt.rowid ORDER BY t1.date"
|
| +} {0 1 {TABLE t1 WITH INDEX i1 ORDER BY} 1 0 {TABLE bt USING PRIMARY KEY}}
|
| +
|
| +
|
| +finish_test
|
| +
|
|
|