Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add new test file fts3defer2.test. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | experimental |
Files: | files | file ages | folders |
SHA1: |
5a4d5bfcaeb78a81713f138b01c0ea45 |
User & Date: | dan 2010-10-22 19:03:34.000 |
Context
2010-10-23
| ||
19:07 | Fixes for the matchinfo() function related to FTS4 common token handling. (check-in: deb80eac91 user: dan tags: experimental) | |
2010-10-22
| ||
19:03 | Add new test file fts3defer2.test. (check-in: 5a4d5bfcae user: dan tags: experimental) | |
16:44 | Add missing comments and fix compiler warnings in new FTS3/4 code. Other minor fixes too. (check-in: 1c9c70fec3 user: dan tags: experimental) | |
Changes
Added test/fts3defer2.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | # 2010 October 23 # # 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. # #*********************************************************************** # set testdir [file dirname $argv0] source $testdir/tester.tcl source $testdir/malloc_common.tcl ifcapable !fts3 { finish_test ; return } set testprefix fts3defer2 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 #----------------------------------------------------------------------------- # This block of tests - fts3defer2-1.* - test the interaction of deferred NEAR # expressions and the snippet, offsets and matchinfo functions. # do_execsql_test 1.1.1 { CREATE VIRTUAL TABLE t1 USING fts4; } do_execsql_test 1.1.2 "INSERT INTO t1 VALUES('[string repeat {a } 20000]')" do_execsql_test 1.1.3 "INSERT INTO t1 VALUES('[string repeat {z } 20000]')" do_execsql_test 1.1.4 { INSERT INTO t1 VALUES('a b c d e f a x y'); INSERT INTO t1(t1) VALUES('optimize'); UPDATE t1_segments SET block = zeroblob(length(block)) WHERE length(block)>10000; } do_execsql_test 1.1.4 { SELECT count(*) FROM t1_segments WHERE length(block)>10000; UPDATE t1_segments SET block = zeroblob(length(block)) WHERE length(block)>10000; } {2} do_execsql_test 1.2.1 { SELECT content FROM t1 WHERE t1 MATCH 'f (e NEAR/2 a)'; } {{a b c d e f a x y}} do_execsql_test 1.2.2 { SELECT snippet(t1, '[', ']'), offsets(t1), mit(matchinfo(t1)) FROM t1 WHERE t1 MATCH 'f (e NEAR/2 a)'; } [list \ {a b c d [e] [f] [a] x y} \ {0 1 8 1 0 0 10 1 0 2 12 1} \ [list 3 1 1 1 1 1 1 1 1 1 1 3 13336 9] ] do_execsql_test 1.2.3 { SELECT snippet(t1, '[', ']'), offsets(t1), mit(matchinfo(t1)) FROM t1 WHERE t1 MATCH 'f (e NEAR/3 a)'; } [list \ {[a] b c d [e] [f] [a] x y} \ {0 2 0 1 0 1 8 1 0 0 10 1 0 2 12 1} \ [list 3 1 1 1 1 1 1 1 2 2 1 3 13336 9] ] do_execsql_test 1.3.1 { DROP TABLE t1 } #----------------------------------------------------------------------------- # Test cases fts3defer2-2.* focus specifically on the matchinfo function. # do_execsql_test 2.1.1 { CREATE VIRTUAL TABLE t2 USING fts4; } do_execsql_test 2.1.2 "INSERT INTO t2 VALUES('[string repeat {a } 20000]')" do_execsql_test 2.1.3 "INSERT INTO t2 VALUES('[string repeat {z } 20000]')" do_execsql_test 2.1.4 { INSERT INTO t2 VALUES('a b c d e f g'); INSERT INTO t2 VALUES('a b c d e f g'); } foreach {tn sql} { 1 {} 2 { INSERT INTO t2(t2) VALUES('optimize') } 3 { UPDATE t2_segments SET block = zeroblob(length(block)) WHERE length(block)>10000; } } { if {$tn==3} break execsql $sql do_execsql_test 2.2.$tn.1 { SELECT mit(matchinfo(t2)) FROM t2 WHERE t2 MATCH 'a b'; } [list \ [list 2 1 1 20002 3 1 2 2 4 10004 7] \ [list 2 1 1 20002 3 1 2 2 4 10004 7] \ ] } finish_test |