1# 2014 November 26 2# 3# The author disclaims copyright to this source code. In place of 4# 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.tcl 15set testprefix bigsort 16 17#-------------------------------------------------------------------- 18# At one point there was an overflow problem if the product of the 19# cache-size and page-size was larger than 2^31. Causing an infinite 20# loop if the product was also an integer multiple of 2^32, or 21# inefficiency otherwise. 22# 23# This test causes thrashing on machines with smaller amounts of 24# memory. Make sure the host has at least 8GB available before running 25# this test. 26# 27if {[catch {exec free | grep Mem:} out] || [lindex $out 1]<8000000} { 28 finish_test 29 return 30} 31 32do_execsql_test 1.0 { 33 PRAGMA page_size = 1024; 34 CREATE TABLE t1(a, b); 35 BEGIN; 36 WITH data(x,y) AS ( 37 SELECT 1, zeroblob(10000) 38 UNION ALL 39 SELECT x+1, y FROM data WHERE x < 300000 40 ) 41 INSERT INTO t1 SELECT * FROM data; 42 COMMIT; 43} 44do_execsql_test 1.1 { 45 PRAGMA cache_size = 4194304; 46 CREATE INDEX i1 ON t1(a, b); 47} 48 49 50finish_test 51