Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Update trace2.test to account for new FTS queries. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | fts3-prefix-search |
Files: | files | file ages | folders |
SHA1: |
2c20129297b64f4113b8edb551385eb9 |
User & Date: | dan 2011-06-13 18:21:11.056 |
Context
2011-06-14
| ||
07:14 | Remove unused parameters from internal fts3 function. (check-in: 06de3f2cbc user: dan tags: fts3-prefix-search) | |
2011-06-13
| ||
18:21 | Update trace2.test to account for new FTS queries. (check-in: 2c20129297 user: dan tags: fts3-prefix-search) | |
17:00 | Add tests for deferred tokens to fts3auto.test. Fix a problem with OR queries and deferred tokens. (check-in: b9fb69e55b user: dan tags: fts3-prefix-search) | |
Changes
Changes to test/fts3auto.test.
︙ | ︙ | |||
17 18 19 20 21 22 23 | source $testdir/malloc_common.tcl set testprefix fts3auto set sfep $sqlite_fts3_enable_parentheses set sqlite_fts3_enable_parentheses 1 #-------------------------------------------------------------------------- | > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | source $testdir/malloc_common.tcl set testprefix fts3auto set sfep $sqlite_fts3_enable_parentheses set sqlite_fts3_enable_parentheses 1 #-------------------------------------------------------------------------- # Start of Tcl infrastructure used by tests. The entry point is # [do_fts3query_test] (described below). # # do_fts3query_test TESTNAME ?OPTIONS? TABLE MATCHEXPR # # This proc runs several test cases on FTS3/4 table $TABLE using match # expression $MATCHEXPR. All documents in $TABLE must be formatted so that # they can be "tokenized" using the Tcl list commands (llength, lindex etc.). # The name and column names used by $TABLE must not require any quoting or # escaping when used in SQL statements. # # $MATCHINFO may be any expression accepted by the FTS4 MATCH operator, # except that the "<column-name>:token" syntax is not supported. Tcl list # commands are used to tokenize the expression. Any parenthesis must appear # either as separate list elements, or as the first (for opening) or last # (for closing) character of a list element. i.e. the expression "(a OR b)c" # will not be parsed correctly, but "( a OR b) c" will. # set sqlite_fts3_enable_parentheses 1 proc do_fts3query_test {tn tbl expr} { get_near_results $tbl $expr aMatchinfo set match $expr set matchinfo_asc [list] foreach docid [lsort -integer -incr [array names aMatchinfo]] { lappend matchinfo_asc $docid $aMatchinfo($docid) } set matchinfo_desc [list] foreach docid [lsort -integer -decr [array names aMatchinfo]] { lappend matchinfo_desc $docid $aMatchinfo($docid) } set title "(\"$match\" -> [llength [array names aMatchinfo]] rows)" do_execsql_test $tn$title.1 " SELECT docid FROM $tbl WHERE $tbl MATCH '$match' ORDER BY docid ASC " [lsort -integer -incr [array names aMatchinfo]] do_execsql_test $tn$title.2 " SELECT docid FROM $tbl WHERE $tbl MATCH '$match' ORDER BY docid DESC " [lsort -integer -decr [array names aMatchinfo]] do_execsql_test $tn$title.3 " SELECT docid, mit(matchinfo($tbl, 'x')) FROM $tbl WHERE $tbl MATCH '$match' ORDER BY docid DESC " $matchinfo_desc do_execsql_test $tn$title.4 " SELECT docid, mit(matchinfo($tbl, 'x')) FROM $tbl WHERE $tbl MATCH '$match' ORDER BY docid ASC " $matchinfo_asc } 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 |
︙ | ︙ | |||
248 249 250 251 252 253 254 | set nullentry [concat $nullleft $nullright] } } } } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 302 303 304 305 306 307 308 309 310 311 312 313 314 315 | set nullentry [concat $nullleft $nullright] } } } } # End of test procs. Actual tests are below this line. #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # The following test cases - fts3auto-1.* - focus on testing the Tcl # command [fts3_near_match], which is used by other tests in this file. |
︙ | ︙ | |||
325 326 327 328 329 330 331 | 1 "fts4(a, b)" 2 "fts4(a, b, order=DESC)" 3 "fts4(a, b, order=ASC)" 4 "fts4(a, b, prefix=1)" 5 "fts4(a, b, order=DESC, prefix=1)" 6 "fts4(a, b, order=ASC, prefix=1)" } { | < | 344 345 346 347 348 349 350 351 352 353 354 355 356 357 | 1 "fts4(a, b)" 2 "fts4(a, b, order=DESC)" 3 "fts4(a, b, order=ASC)" 4 "fts4(a, b, prefix=1)" 5 "fts4(a, b, order=DESC, prefix=1)" 6 "fts4(a, b, order=ASC, prefix=1)" } { do_test 2.$tn.1 { catchsql { DROP TABLE t1 } execsql "CREATE VIRTUAL TABLE t1 USING $create" for {set i 0} {$i<32} {incr i} { set doc [list] if {$i&0x01} {lappend doc one} if {$i&0x02} {lappend doc two} |
︙ | ︙ | |||
386 387 388 389 390 391 392 | foreach {tn create} { 1 "fts4(x)" 2 "fts4(x, order=DESC)" } { catchsql { DROP TABLE t1 } execsql "CREATE VIRTUAL TABLE t1 USING $create" do_execsql_test 3.$tn.1 { | | | | | | | | | | | 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 | foreach {tn create} { 1 "fts4(x)" 2 "fts4(x, order=DESC)" } { catchsql { DROP TABLE t1 } execsql "CREATE VIRTUAL TABLE t1 USING $create" do_execsql_test 3.$tn.1 { INSERT INTO t1(docid, x) VALUES(-2, 'a b c d e f g h i j k'); INSERT INTO t1(docid, x) VALUES(-1, 'b c d e f g h i j k a'); INSERT INTO t1(docid, x) VALUES(0, 'c d e f g h i j k a b'); INSERT INTO t1(docid, x) VALUES(1, 'd e f g h i j k a b c'); INSERT INTO t1(docid, x) VALUES(2, 'e f g h i j k a b c d'); INSERT INTO t1(docid, x) VALUES(3, 'f g h i j k a b c d e'); INSERT INTO t1(docid, x) VALUES(4, 'a c e g i k'); INSERT INTO t1(docid, x) VALUES(5, 'a d g j'); INSERT INTO t1(docid, x) VALUES(6, 'c a b'); } make_token_deferrable t1 c set ::fts3_deferred [list] foreach {tn2 expr} { 1 {a OR c} |
︙ | ︙ |
Changes to test/trace2.test.
︙ | ︙ | |||
137 138 139 140 141 142 143 | "-- INSERT INTO 'main'.'x1_segdir' VALUES(?,?,?,?,?,?)" } do_trace_test 2.3 { INSERT INTO x1(x1) VALUES('optimize'); } { "INSERT INTO x1(x1) VALUES('optimize');" | | | | | 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | "-- INSERT INTO 'main'.'x1_segdir' VALUES(?,?,?,?,?,?)" } do_trace_test 2.3 { INSERT INTO x1(x1) VALUES('optimize'); } { "INSERT INTO x1(x1) VALUES('optimize');" "-- SELECT idx, start_block, leaves_end_block, end_block, root FROM 'main'.'x1_segdir' WHERE level BETWEEN ? AND ?ORDER BY level DESC, idx ASC" "-- SELECT max(level) FROM 'main'.'x1_segdir' WHERE level BETWEEN ? AND ?" "-- SELECT coalesce((SELECT max(blockid) FROM 'main'.'x1_segments') + 1, 1)" "-- DELETE FROM 'main'.'x1_segdir' WHERE level BETWEEN ? AND ?" "-- INSERT INTO 'main'.'x1_segdir' VALUES(?,?,?,?,?,?)" } } finish_test |