1cd61c281Sdrh# 2002 March 6 2cd61c281Sdrh# 3cd61c281Sdrh# The author disclaims copyright to this source code. In place of 4cd61c281Sdrh# a legal notice, here is a blessing: 5cd61c281Sdrh# 6cd61c281Sdrh# May you do good and not evil. 7cd61c281Sdrh# May you find forgiveness for yourself and forgive others. 8cd61c281Sdrh# May you share freely, never taking more than you give. 9cd61c281Sdrh# 10cd61c281Sdrh#*********************************************************************** 11cd61c281Sdrh# This file implements regression tests for SQLite library. 12cd61c281Sdrh# 13cd61c281Sdrh# This file implements tests for the PRAGMA command. 14cd61c281Sdrh# 15*5a38705eSdrh# $Id: pragma.test,v 1.2 2003/01/11 14:19:52 drh Exp $ 16cd61c281Sdrh 17cd61c281Sdrhset testdir [file dirname $argv0] 18cd61c281Sdrhsource $testdir/tester.tcl 19cd61c281Sdrh 20cd61c281Sdrh# Delete the preexisting database to avoid the special setup 21cd61c281Sdrh# that the "all.test" script does. 22cd61c281Sdrh# 23cd61c281Sdrhdb close 24cd61c281Sdrhfile delete test.db 25*5a38705eSdrhset DB [sqlite db test.db] 26cd61c281Sdrh 27cd61c281Sdrhdo_test pragma-1.1 { 28cd61c281Sdrh execsql { 29cd61c281Sdrh PRAGMA cache_size; 30cd61c281Sdrh PRAGMA default_cache_size; 31cd61c281Sdrh PRAGMA synchronous; 32cd61c281Sdrh PRAGMA default_synchronous; 33cd61c281Sdrh } 34cd61c281Sdrh} {2000 2000 1 1} 35cd61c281Sdrhdo_test pragma-1.2 { 36cd61c281Sdrh execsql { 37cd61c281Sdrh PRAGMA cache_size=1234; 38cd61c281Sdrh PRAGMA cache_size; 39cd61c281Sdrh PRAGMA default_cache_size; 40cd61c281Sdrh PRAGMA synchronous; 41cd61c281Sdrh PRAGMA default_synchronous; 42cd61c281Sdrh } 43cd61c281Sdrh} {1234 2000 1 1} 44cd61c281Sdrhdo_test pragma-1.3 { 45cd61c281Sdrh db close 46cd61c281Sdrh sqlite db test.db 47cd61c281Sdrh execsql { 48cd61c281Sdrh PRAGMA cache_size; 49cd61c281Sdrh PRAGMA default_cache_size; 50cd61c281Sdrh PRAGMA synchronous; 51cd61c281Sdrh PRAGMA default_synchronous; 52cd61c281Sdrh } 53cd61c281Sdrh} {2000 2000 1 1} 54cd61c281Sdrhdo_test pragma-1.4 { 55cd61c281Sdrh execsql { 56cd61c281Sdrh PRAGMA synchronous=OFF; 57cd61c281Sdrh PRAGMA cache_size; 58cd61c281Sdrh PRAGMA default_cache_size; 59cd61c281Sdrh PRAGMA synchronous; 60cd61c281Sdrh PRAGMA default_synchronous; 61cd61c281Sdrh } 62cd61c281Sdrh} {2000 2000 0 1} 63cd61c281Sdrhdo_test pragma-1.5 { 64cd61c281Sdrh execsql { 65cd61c281Sdrh PRAGMA cache_size=4321; 66cd61c281Sdrh PRAGMA cache_size; 67cd61c281Sdrh PRAGMA default_cache_size; 68cd61c281Sdrh PRAGMA synchronous; 69cd61c281Sdrh PRAGMA default_synchronous; 70cd61c281Sdrh } 71cd61c281Sdrh} {4321 2000 0 1} 72cd61c281Sdrhdo_test pragma-1.6 { 73cd61c281Sdrh execsql { 74cd61c281Sdrh PRAGMA synchronous=ON; 75cd61c281Sdrh PRAGMA cache_size; 76cd61c281Sdrh PRAGMA default_cache_size; 77cd61c281Sdrh PRAGMA synchronous; 78cd61c281Sdrh PRAGMA default_synchronous; 79cd61c281Sdrh } 80cd61c281Sdrh} {4321 2000 1 1} 81cd61c281Sdrhdo_test pragma-1.7 { 82cd61c281Sdrh db close 83cd61c281Sdrh sqlite db test.db 84cd61c281Sdrh execsql { 85cd61c281Sdrh PRAGMA cache_size; 86cd61c281Sdrh PRAGMA default_cache_size; 87cd61c281Sdrh PRAGMA synchronous; 88cd61c281Sdrh PRAGMA default_synchronous; 89cd61c281Sdrh } 90cd61c281Sdrh} {2000 2000 1 1} 91cd61c281Sdrhdo_test pragma-1.8 { 92cd61c281Sdrh execsql { 93cd61c281Sdrh PRAGMA default_synchronous=OFF; 94cd61c281Sdrh PRAGMA cache_size; 95cd61c281Sdrh PRAGMA default_cache_size; 96cd61c281Sdrh PRAGMA synchronous; 97cd61c281Sdrh PRAGMA default_synchronous; 98cd61c281Sdrh } 99cd61c281Sdrh} {2000 2000 0 0} 100cd61c281Sdrhdo_test pragma-1.9 { 101cd61c281Sdrh execsql { 102cd61c281Sdrh PRAGMA default_cache_size=123; 103cd61c281Sdrh PRAGMA cache_size; 104cd61c281Sdrh PRAGMA default_cache_size; 105cd61c281Sdrh PRAGMA synchronous; 106cd61c281Sdrh PRAGMA default_synchronous; 107cd61c281Sdrh } 108cd61c281Sdrh} {123 123 0 0} 109cd61c281Sdrhdo_test pragma-1.10 { 110cd61c281Sdrh db close 111*5a38705eSdrh set ::DB [sqlite db test.db] 112cd61c281Sdrh execsql { 113cd61c281Sdrh PRAGMA cache_size; 114cd61c281Sdrh PRAGMA default_cache_size; 115cd61c281Sdrh PRAGMA synchronous; 116cd61c281Sdrh PRAGMA default_synchronous; 117cd61c281Sdrh } 118cd61c281Sdrh} {123 123 0 0} 119cd61c281Sdrh 120*5a38705eSdrhdo_test pragma-1.11 { 121*5a38705eSdrh execsql { 122*5a38705eSdrh PRAGMA show_datatypes=on; 123*5a38705eSdrh PRAGMA empty_result_callbacks=off; 124*5a38705eSdrh } 125*5a38705eSdrh sqlite_datatypes $::DB {SELECT * FROM sqlite_master} 126*5a38705eSdrh} {} 127*5a38705eSdrhdo_test pragma-1.12 { 128*5a38705eSdrh execsql { 129*5a38705eSdrh PRAGMA empty_result_callbacks=on; 130*5a38705eSdrh } 131*5a38705eSdrh sqlite_datatypes $::DB {SELECT * FROM sqlite_master} 132*5a38705eSdrh} {NUMERIC NUMERIC NUMERIC NUMERIC NUMERIC} 133*5a38705eSdrhdo_test pragma-1.13 { 134*5a38705eSdrh execsql { 135*5a38705eSdrh CREATE TABLE t1( 136*5a38705eSdrh a INTEGER, 137*5a38705eSdrh b TEXT, 138*5a38705eSdrh c WHATEVER, 139*5a38705eSdrh d CLOB, 140*5a38705eSdrh e BLOB, 141*5a38705eSdrh f VARCHAR(123), 142*5a38705eSdrh g nVaRcHaR(432) 143*5a38705eSdrh ); 144*5a38705eSdrh } 145*5a38705eSdrh sqlite_datatypes $::DB {SELECT * FROM t1} 146*5a38705eSdrh} {NUMERIC TEXT NUMERIC TEXT TEXT TEXT TEXT} 147*5a38705eSdrhdo_test pragma-1.14 { 148*5a38705eSdrh sqlite_datatypes $::DB { 149*5a38705eSdrh SELECT 1, 'hello', NULL 150*5a38705eSdrh } 151*5a38705eSdrh} {NUMERIC TEXT TEXT} 152*5a38705eSdrhdo_test pragma-1.15 { 153*5a38705eSdrh sqlite_datatypes $::DB { 154*5a38705eSdrh SELECT 1+2 AS X, 'hello' || 5 AS Y, NULL AS Z 155*5a38705eSdrh } 156*5a38705eSdrh} {NUMERIC TEXT TEXT} 157*5a38705eSdrh 158*5a38705eSdrh 159cd61c281Sdrhfinish_test 160