| Index: third_party/sqlite/src/ext/fts5/test/fts5merge.test
|
| diff --git a/third_party/sqlite/src/ext/fts5/test/fts5merge.test b/third_party/sqlite/src/ext/fts5/test/fts5merge.test
|
| index 9dd1ecd026d88782610dfc9bc31db6d86a7f2ded..73e006a7d2ce5d3c082b941f2cd1c2f77e23f720 100644
|
| --- a/third_party/sqlite/src/ext/fts5/test/fts5merge.test
|
| +++ b/third_party/sqlite/src/ext/fts5/test/fts5merge.test
|
| @@ -45,7 +45,7 @@ proc do_merge1_test {testname nRowPerSeg} {
|
| WITH ii(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM ii WHERE i<$::nRowPerSeg)
|
| INSERT INTO x8 SELECT repeat('x y ', i % 16) FROM ii;
|
|
|
| - INSERT INTO x8(x8, rank) VALUES('automerge', 2);
|
| + INSERT INTO x8(x8, rank) VALUES('usermerge', 2);
|
| }
|
|
|
| for {set tn 1} {[lindex [fts5_level_segs x8] 0]>0} {incr tn} {
|
| @@ -84,9 +84,9 @@ proc do_merge2_test {testname nRow} {
|
| execsql { INSERT INTO x8 VALUES( rnddoc(($i%16) + 5) ) }
|
| while {[not_merged x8]} {
|
| execsql {
|
| - INSERT INTO x8(x8, rank) VALUES('automerge', 2);
|
| + INSERT INTO x8(x8, rank) VALUES('usermerge', 2);
|
| INSERT INTO x8(x8, rank) VALUES('merge', 1);
|
| - INSERT INTO x8(x8, rank) VALUES('automerge', 16);
|
| + INSERT INTO x8(x8, rank) VALUES('usermerge', 16);
|
| INSERT INTO x8(x8) VALUES('integrity-check');
|
| }
|
| }
|
| @@ -104,9 +104,9 @@ do_merge2_test 2.2 10
|
| do_merge2_test 2.3 20
|
|
|
| #-------------------------------------------------------------------------
|
| -# Test that an auto-merge will complete any merge that has already been
|
| +# Test that a merge will complete any merge that has already been
|
| # started, even if the number of input segments is less than the current
|
| -# value of the 'automerge' configuration parameter.
|
| +# value of the 'usermerge' configuration parameter.
|
| #
|
| db func rnddoc fts5_rnddoc
|
|
|
| @@ -119,7 +119,7 @@ do_execsql_test 3.1 {
|
| }
|
| do_test 3.2 {
|
| execsql {
|
| - INSERT INTO x8(x8, rank) VALUES('automerge', 4);
|
| + INSERT INTO x8(x8, rank) VALUES('usermerge', 4);
|
| INSERT INTO x8(x8, rank) VALUES('merge', 1);
|
| }
|
| fts5_level_segs x8
|
| @@ -127,14 +127,14 @@ do_test 3.2 {
|
|
|
| do_test 3.3 {
|
| execsql {
|
| - INSERT INTO x8(x8, rank) VALUES('automerge', 2);
|
| + INSERT INTO x8(x8, rank) VALUES('usermerge', 2);
|
| INSERT INTO x8(x8, rank) VALUES('merge', 1);
|
| }
|
| fts5_level_segs x8
|
| } {2 1}
|
|
|
| do_test 3.4 {
|
| - execsql { INSERT INTO x8(x8, rank) VALUES('automerge', 4) }
|
| + execsql { INSERT INTO x8(x8, rank) VALUES('usermerge', 4) }
|
| while {[not_merged x8]} {
|
| execsql { INSERT INTO x8(x8, rank) VALUES('merge', 1) }
|
| }
|
| @@ -176,7 +176,7 @@ foreach {tn pgsz} {
|
| INSERT INTO x8 SELECT mydoc() FROM ii;
|
| WITH ii(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM ii WHERE i<100)
|
| INSERT INTO x8 SELECT mydoc() FROM ii;
|
| - INSERT INTO x8(x8, rank) VALUES('automerge', 2);
|
| + INSERT INTO x8(x8, rank) VALUES('usermerge', 2);
|
| }
|
|
|
| set expect [mycount]
|
| @@ -190,5 +190,55 @@ foreach {tn pgsz} {
|
| # db eval {SELECT fts5_decode(rowid, block) AS r FROM x8_data} { puts $r }
|
| }
|
|
|
| +#-------------------------------------------------------------------------
|
| +# Test that the 'merge' command does not modify the database if there is
|
| +# no work to do.
|
| +
|
| +do_execsql_test 5.1 {
|
| + CREATE VIRTUAL TABLE x9 USING fts5(one, two);
|
| + INSERT INTO x9(x9, rank) VALUES('pgsz', 32);
|
| + INSERT INTO x9(x9, rank) VALUES('automerge', 2);
|
| + INSERT INTO x9(x9, rank) VALUES('usermerge', 2);
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| + INSERT INTO x9 VALUES(rnddoc(100), rnddoc(100));
|
| +}
|
| +
|
| +do_test 5.2 {
|
| + while 1 {
|
| + set nChange [db total_changes]
|
| + execsql { INSERT INTO x9(x9, rank) VALUES('merge', 1); }
|
| + set nChange [expr [db total_changes] - $nChange]
|
| + #puts $nChange
|
| + if {$nChange<2} break
|
| + }
|
| +} {}
|
| +
|
| +
|
| +#--------------------------------------------------------------------------
|
| +# Test that running 'merge' on an empty database does not cause a
|
| +# problem.
|
| +#
|
| +reset_db
|
| +do_execsql_test 6.0 {
|
| + CREATE VIRTUAL TABLE g1 USING fts5(a, b);
|
| +}
|
| +do_execsql_test 6.1 {
|
| + INSERT INTO g1(g1, rank) VALUES('merge', 10);
|
| +}
|
| +do_execsql_test 6.2 {
|
| + INSERT INTO g1(g1, rank) VALUES('merge', -10);
|
| +}
|
| +do_execsql_test 6.3 {
|
| + INSERT INTO g1(g1) VALUES('integrity-check');
|
| +}
|
| +
|
| +
|
| +
|
| finish_test
|
|
|
|
|