| # 2024 September 3 |
| # |
| # The author disclaims copyright to this source code. In place of |
| # a legal notice, here is a blessing: |
| # |
| # May you do good and not evil. |
| # May you find forgiveness for yourself and forgive others. |
| # May you share freely, never taking more than you give. |
| # |
| #*********************************************************************** |
| # |
| # This file contains tests focused on the integrity-check procedure. |
| # |
| |
| source [file join [file dirname [info script]] fts5_common.tcl] |
| set testprefix fts5integrity2 |
| |
| # If SQLITE_ENABLE_FTS5 is not defined, omit this file. |
| ifcapable !fts5 { |
| finish_test |
| return |
| } |
| |
| do_execsql_test 2.0 { |
| CREATE VIRTUAL TABLE t2 USING fts5(a, detail='none'); |
| BEGIN; |
| INSERT INTO t2(rowid, a) VALUES(-1, 'hello world'); |
| INSERT INTO t2(rowid, a) VALUES(9223372036854775807, 'hello world'); |
| COMMIT; |
| } |
| |
| do_execsql_test 2.1 { |
| SELECT rowid FROM t2('hello AND world'); |
| } {-1 9223372036854775807} |
| |
| #------------------------------------------------------------------------- |
| do_execsql_test 2.0 { |
| CREATE VIRTUAL TABLE t1 USING fts5(a, detail='none'); |
| CREATE TABLE r1(r); |
| |
| WITH c(x) AS (VALUES(1) UNION SELECT x<<1 FROM c) |
| INSERT INTO r1(r) SELECT -1-x FROM c; |
| |
| INSERT INTO t1(rowid, a) SELECT r, 'abc' FROM r1; |
| } |
| |
| do_execsql_test 2.1 { |
| PRAGMA integrity_check; |
| } {ok} |
| |
| do_execsql_test 2.2 { |
| SELECT rowid FROM t1('abc') ORDER BY +rowid; |
| } [db eval {SELECT r FROM r1 ORDER BY r}] |
| |
| |
| finish_test |