modernc.org/cc@v1.0.1/v2/testdata/_sqlite/ext/fts5/tool/fts5speed.tcl (about) 1 2 3 set Q { 4 {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'enron'"} 5 {25 "SELECT count(*) FROM t1 WHERE t1 MATCH 'hours'"} 6 {300 "SELECT count(*) FROM t1 WHERE t1 MATCH 'acid'"} 7 {100 "SELECT count(*) FROM t1 WHERE t1 MATCH 'loaned OR mobility OR popcore OR sunk'"} 8 {100 "SELECT count(*) FROM t1 WHERE t1 MATCH 'enron AND myapps'"} 9 {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'en* AND my*'"} 10 11 {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'c:t*'"} 12 {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'a:t* OR b:t* OR c:t* OR d:t* OR e:t* OR f:t* OR g:t*'"} 13 {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'a:t*'"} 14 {2 "SELECT count(*) FROM t1 WHERE t1 MATCH 'c:the'"} 15 16 {2 "SELECT count(*) FROM t1 WHERE t1 MATCH 'd:holmes OR e:holmes OR f:holmes OR g:holmes'" } 17 {2 "SELECT count(*) FROM t1 WHERE t1 MATCH 'd:holmes AND e:holmes AND f:holmes AND g:holmes'" } 18 {4 "SELECT count(*) FROM t1 WHERE t1 MATCH 'd:holmes NOT e:holmes'" } 19 } 20 21 proc usage {} { 22 global Q 23 puts stderr "Usage: $::argv0 DATABASE QUERY" 24 puts stderr "" 25 for {set i 1} {$i <= [llength $Q]} {incr i} { 26 puts stderr " $i. [lindex $Q [expr $i-1]]" 27 } 28 puts stderr "" 29 exit -1 30 } 31 32 33 set nArg [llength $argv] 34 if {$nArg!=2 && $nArg!=3} usage 35 set database [lindex $argv 0] 36 set iquery [lindex $argv 1] 37 if {$iquery<1 || $iquery>[llength $Q]} usage 38 set nRepeat 0 39 if {$nArg==3} { set nRepeat [lindex $argv 2] } 40 41 42 sqlite3 db $database 43 catch { load_static_extension db fts5 } 44 45 incr iquery -1 46 set sql [lindex $Q $iquery 1] 47 if {$nRepeat==0} { 48 set nRepeat [lindex $Q $iquery 0] 49 } 50 51 puts "sql: $sql" 52 puts "nRepeat: $nRepeat" 53 if {[regexp matchinfo $sql]} { 54 sqlite3_fts5_register_matchinfo db 55 db eval $sql 56 } else { 57 puts "result: [db eval $sql]" 58 } 59 60 for {set i 1} {$i < $nRepeat} {incr i} { 61 db eval $sql 62 } 63 64