# 2025 October 13 # # 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 test is focused on really large position lists. Those that require # 4 or 5 byte position-list size varints. Because of the amount of memory # required, these tests only run on 64-bit platforms. # source [file join [file dirname [info script]] fts5_common.tcl] set testprefix fts5corruptbig # If SQLITE_ENABLE_FTS5 is not defined, omit this file. ifcapable !fts5 { finish_test return } if { $tcl_platform(wordSize)<8 } { finish_test return } if { $SQLITE_MAX_LENGTH!=0x7FFFFFFF } { finish_test return } do_execsql_test 1.0 { CREATE VIRTUAL TABLE t1 USING fts5(x); } do_execsql_test 1.1 { UPDATE t1_data SET block = zeroblob(2147483640) WHERE id=10; } do_execsql_test 1.2 { SELECT id, length(block) FROM t1_data } {1 0 10 2147483640} do_catchsql_test 1.3 { SELECT * FROM t1('abc') } {1 {out of memory}} finish_test