| Index: third_party/sqlite/src/ext/fts5/tool/fts5speed.tcl
|
| diff --git a/third_party/sqlite/src/ext/fts5/tool/fts5speed.tcl b/third_party/sqlite/src/ext/fts5/tool/fts5speed.tcl
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0f38638c26ae553df7812b1ffb3ffc1b26ff7714
|
| --- /dev/null
|
| +++ b/third_party/sqlite/src/ext/fts5/tool/fts5speed.tcl
|
| @@ -0,0 +1,64 @@
|
| +
|
| +
|
| +set Q {
|
| + {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'enron'"}
|
| + {25 "SELECT count(*) FROM t1 WHERE t1 MATCH 'hours'"}
|
| + {300 "SELECT count(*) FROM t1 WHERE t1 MATCH 'acid'"}
|
| + {100 "SELECT count(*) FROM t1 WHERE t1 MATCH 'loaned OR mobility OR popcore OR sunk'"}
|
| + {100 "SELECT count(*) FROM t1 WHERE t1 MATCH 'enron AND myapps'"}
|
| + {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'en* AND my*'"}
|
| +
|
| + {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'c:t*'"}
|
| + {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*'"}
|
| + {1 "SELECT count(*) FROM t1 WHERE t1 MATCH 'a:t*'"}
|
| + {2 "SELECT count(*) FROM t1 WHERE t1 MATCH 'c:the'"}
|
| +
|
| + {2 "SELECT count(*) FROM t1 WHERE t1 MATCH 'd:holmes OR e:holmes OR f:holmes OR g:holmes'" }
|
| + {2 "SELECT count(*) FROM t1 WHERE t1 MATCH 'd:holmes AND e:holmes AND f:holmes AND g:holmes'" }
|
| + {4 "SELECT count(*) FROM t1 WHERE t1 MATCH 'd:holmes NOT e:holmes'" }
|
| +}
|
| +
|
| +proc usage {} {
|
| + global Q
|
| + puts stderr "Usage: $::argv0 DATABASE QUERY"
|
| + puts stderr ""
|
| + for {set i 1} {$i <= [llength $Q]} {incr i} {
|
| + puts stderr " $i. [lindex $Q [expr $i-1]]"
|
| + }
|
| + puts stderr ""
|
| + exit -1
|
| +}
|
| +
|
| +
|
| +set nArg [llength $argv]
|
| +if {$nArg!=2 && $nArg!=3} usage
|
| +set database [lindex $argv 0]
|
| +set iquery [lindex $argv 1]
|
| +if {$iquery<1 || $iquery>[llength $Q]} usage
|
| +set nRepeat 0
|
| +if {$nArg==3} { set nRepeat [lindex $argv 2] }
|
| +
|
| +
|
| +sqlite3 db $database
|
| +catch { load_static_extension db fts5 }
|
| +
|
| +incr iquery -1
|
| +set sql [lindex $Q $iquery 1]
|
| +if {$nRepeat==0} {
|
| + set nRepeat [lindex $Q $iquery 0]
|
| +}
|
| +
|
| +puts "sql: $sql"
|
| +puts "nRepeat: $nRepeat"
|
| +if {[regexp matchinfo $sql]} {
|
| + sqlite3_fts5_register_matchinfo db
|
| + db eval $sql
|
| +} else {
|
| + puts "result: [db eval $sql]"
|
| +}
|
| +
|
| +for {set i 1} {$i < $nRepeat} {incr i} {
|
| + db eval $sql
|
| +}
|
| +
|
| +
|
|
|