AryaWu/sqlite
0
1# 2014 November 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 bigsort16 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 of24# memory. Make sure the host has at least 8GB available before running25# this test.26#27# Update: https://sqlite.org/src/info/7c96a56 adds assert() statements28# that make this test too slow to run with SQLITE_DEBUG builds.29#30if {[catch {exec free | grep Mem:} out] || [lindex $out 1]<8000000} {31 finish_test32 return33}34ifcapable debug {35 finish_test36 return37}38 39do_execsql_test 1.0 {40 PRAGMA page_size = 1024;41 CREATE TABLE t1(a, b);42 BEGIN;43 WITH data(x,y) AS (44 SELECT 1, zeroblob(10000)45 UNION ALL46 SELECT x+1, y FROM data WHERE x < 30000047 )48 INSERT INTO t1 SELECT * FROM data;49 COMMIT;50}51do_execsql_test 1.1 {52 PRAGMA cache_size = 4194304;53 CREATE INDEX i1 ON t1(a, b);54}55 56 57finish_test58 