AryaWu/sqlite
0
1# 2017 April 262#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#12 13set testdir [file dirname $argv0]14source $testdir/tester.tcl15set testprefix cachespill16 17ifcapable !pager_pragmas {18 finish_test19 return20}21 22#-------------------------------------------------------------------------23# Test that "PRAGMA cache_spill = 0" completely disables cache spilling.24#25do_execsql_test 1.1 {26 PRAGMA auto_vacuum = 0;27 PRAGMA page_size = 1024;28 PRAGMA cache_size = 100;29 CREATE TABLE t1(a);30}31 32do_test 1.2 {33 file size test.db34} {2048}35 36do_test 1.3 {37 execsql {38 BEGIN;39 WITH s(i) AS (40 SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<20041 ) INSERT INTO t1 SELECT randomblob(900) FROM s;42 }43 expr {[file size test.db] > 50000}44} {1}45 46do_test 1.4 {47 execsql ROLLBACK48 file size test.db49} {2048}50 51do_test 1.5 {52 execsql {53 PRAGMA cache_spill = 0;54 BEGIN;55 WITH s(i) AS (56 SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<20057 ) INSERT INTO t1 SELECT randomblob(900) FROM s;58 }59 file size test.db60} {2048}61 62do_test 1.5 {63 execsql {64 ROLLBACK;65 PRAGMA cache_spill = 1;66 BEGIN;67 WITH s(i) AS (68 SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<20069 ) INSERT INTO t1 SELECT randomblob(900) FROM s;70 }71 expr {[file size test.db] > 50000}72} {1}73 74do_execsql_test 1.6 { ROLLBACK }75 76 77finish_test78 