Fix fts5_index.c to use doclist-indexes when possible. Only some cases work so far.
FossilOrigin-Name: 90b82d3ef613b2915e0e280dc1d2e5a2b617d59c
This commit is contained in:
+1
-2
@@ -50,7 +50,7 @@ do_execsql_test 2.1 {
|
||||
do_execsql_test 2.2 {
|
||||
SELECT fts5_decode(id, block) FROM t1_data WHERE id==10
|
||||
} {
|
||||
{{structure idx=0} {lvl=0 nMerge=0 {id=27723 h=1 leaves=1..1}}}
|
||||
{(structure idx=0) {lvl=0 nMerge=0 {id=27723 h=1 leaves=1..1}}}
|
||||
}
|
||||
do_execsql_test 2.3 {
|
||||
INSERT INTO t1(t1) VALUES('integrity-check');
|
||||
@@ -182,7 +182,6 @@ for {set i 1} {$i <= 10} {incr i} {
|
||||
}
|
||||
execsql { INSERT INTO t1(t1) VALUES('integrity-check'); }
|
||||
} {}
|
||||
if {[set_test_counter errors]} exit
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
+29
-8
@@ -55,16 +55,37 @@ proc reads {} {
|
||||
|
||||
do_test 1.4 {
|
||||
set nRead [reads]
|
||||
db eval { SELECT rowid FROM t1 WHERE t1 MATCH 'x' }
|
||||
set a [expr [reads] - $nRead]
|
||||
} {}
|
||||
execsql { SELECT rowid FROM t1 WHERE t1 MATCH 'x' }
|
||||
set nReadX [expr [reads] - $nRead]
|
||||
expr $nReadX>1000
|
||||
} {1}
|
||||
|
||||
do_test 1.5 {
|
||||
set nRead [reads]
|
||||
db eval { SELECT rowid FROM t1 WHERE t1 MATCH 'x + w' }
|
||||
set a [expr [reads] - $nRead]
|
||||
} {}
|
||||
foreach {tn q res} "
|
||||
1 { SELECT rowid FROM t1 WHERE t1 MATCH 'w + x' } [list $W]
|
||||
2 { SELECT rowid FROM t1 WHERE t1 MATCH 'x + w' } [list $W]
|
||||
3 { SELECT rowid FROM t1 WHERE t1 MATCH 'x AND w' } [list $W]
|
||||
4 { SELECT rowid FROM t1 WHERE t1 MATCH 'y AND x' } [list $Y]
|
||||
" {
|
||||
|
||||
do_test 1.5.$tn.1 {
|
||||
set nRead [reads]
|
||||
execsql $q
|
||||
set n [expr [reads] - $nRead]
|
||||
expr {$n < ($nReadX / 10)}
|
||||
} {1}
|
||||
|
||||
do_test 1.5.$tn.2 {
|
||||
set nRead [reads]
|
||||
execsql "$q ORDER BY rowid ASC"
|
||||
set n [expr [reads] - $nRead]
|
||||
expr {$n < ($nReadX / 10)}
|
||||
} {1}
|
||||
|
||||
do_execsql_test 1.5.$tn.3 $q [lsort -int -decr $res]
|
||||
do_execsql_test 1.5.$tn.4 "$q ORDER BY rowid ASC" [lsort -int -incr $res]
|
||||
}
|
||||
|
||||
#db eval {SELECT rowid, fts5_decode(rowid, block) aS r FROM t1_data} {puts $r}
|
||||
|
||||
finish_test
|
||||
|
||||
|
||||
Reference in New Issue
Block a user