AryaWu/sqlite
0
1# 2022 Jan 012#3# The author disclaims copyright to this source code. In place of4# a legal notice, here is a blessing:5#6# May you do good and not evil.7# May you find forgiveness for yourself and forgive others.8# May you share freely, never taking more than you give.9#10#***********************************************************************11# Tests focused on the in-memory journal.12#13# TESTRUNNER: slow14 15set testdir [file dirname $argv0]16source $testdir/tester.tcl17source $testdir/malloc_common.tcl18set testprefix memjournal219 20do_execsql_test 1.0 {21 PRAGMA journal_mode = memory;22 CREATE TABLE t1(a INTEGER PRIMARY KEY, b UNIQUE);23} {memory}24 25set nRow [expr 2000]26 27do_execsql_test 1.1 {28 BEGIN;29 WITH s(i) AS (30 SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<$nRow31 )32 INSERT INTO t1 SELECT NULL, randomblob(700) FROM s;33}34 35for {set jj 200} {$jj <= 300} {incr jj} {36 do_execsql_test 1.2.$jj.1 {37 SAVEPOINT one; 38 UPDATE t1 SET b=randomblob(700) WHERE a<=$jj;39 }40 do_execsql_test 1.2.$jj.2 {41 SAVEPOINT two;42 UPDATE t1 SET b=randomblob(700) WHERE a==1;43 ROLLBACK TO two;44 RELEASE two;45 }46 do_execsql_test 1.2.$jj.3 {47 SAVEPOINT two;48 UPDATE t1 SET b=randomblob(700) WHERE a==1;49 ROLLBACK TO two;50 RELEASE two;51 }52 53 do_execsql_test 1.2.$jj.4 {54 PRAGMA integrity_check;55 ROLLBACK TO one;56 RELEASE one;57 } {ok}58} 59 60 61finish_test62 