# 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