| Index: third_party/sqlite/sqlite-src-3100200/test/fts3expr3.test
|
| diff --git a/third_party/sqlite/src/test/fts3expr3.test b/third_party/sqlite/sqlite-src-3100200/test/fts3expr3.test
|
| similarity index 84%
|
| copy from third_party/sqlite/src/test/fts3expr3.test
|
| copy to third_party/sqlite/sqlite-src-3100200/test/fts3expr3.test
|
| index a8d7319266afed1269af26dbdaa3b7aadeda27d1..83c153218c85495dc9a1e611e97552c0514aaf7c 100644
|
| --- a/third_party/sqlite/src/test/fts3expr3.test
|
| +++ b/third_party/sqlite/sqlite-src-3100200/test/fts3expr3.test
|
| @@ -122,6 +122,8 @@ proc balanced_andor_tree {nEntry} {
|
| return $tree
|
| }
|
|
|
| +if 1 {
|
| +
|
| # Test that queries like "1 AND 2 AND 3 AND 4..." are transformed to
|
| # balanced trees by FTS.
|
| #
|
| @@ -202,5 +204,35 @@ do_faultsim_test fts3expr3-fault-1 -faults oom-* -body {
|
| faultsim_test_result [list 0 $::result]
|
| }
|
|
|
| +}
|
| +
|
| +#-------------------------------------------------------------------
|
| +
|
| +foreach {tn expr res} {
|
| + 1 {1 OR 2 OR 3 OR 4} {OR {OR {P 1} {P 2}} {OR {P 3} {P 4}}}
|
| + 2 {1 OR (2 AND 3 AND 4 AND 5)}
|
| + {OR {P 1} {AND {AND {P 2} {P 3}} {AND {P 4} {P 5}}}}
|
| + 3 {(2 AND 3 AND 4 AND 5) OR 1}
|
| + {OR {AND {AND {P 2} {P 3}} {AND {P 4} {P 5}}} {P 1}}
|
| +
|
| + 4 {1 AND (2 OR 3 OR 4 OR 5)}
|
| + {AND {P 1} {OR {OR {P 2} {P 3}} {OR {P 4} {P 5}}}}
|
| + 5 {(2 OR 3 OR 4 OR 5) AND 1}
|
| + {AND {OR {OR {P 2} {P 3}} {OR {P 4} {P 5}}} {P 1}}
|
| +
|
| + 6 {(2 OR 3 OR 4 OR 5) NOT 1}
|
| + {NOT {OR {OR {P 2} {P 3}} {OR {P 4} {P 5}}} {P 1}}
|
| +
|
| + 7 {1 NOT (2 OR 3 OR 4 OR 5)}
|
| + {NOT {P 1} {OR {OR {P 2} {P 3}} {OR {P 4} {P 5}}}}
|
| +
|
| + 8 {(1 OR 2 OR 3 OR 4) NOT (5 AND 6 AND 7 AND 8)}
|
| + {NOT {OR {OR {P 1} {P 2}} {OR {P 3} {P 4}}} {AND {AND {P 5} {P 6}} {AND {P 7} {P 8}}}}
|
| +} {
|
| + do_test 5.1.$tn {
|
| + test_fts3expr2 $expr
|
| + } $res
|
| +}
|
| +
|
| set sqlite_fts3_enable_parentheses 0
|
| finish_test
|
|
|