000001 # 2009 April 30 000002 # 000003 # The author disclaims copyright to this source code. In place of 000004 # a legal notice, here is a blessing: 000005 # 000006 # May you do good and not evil. 000007 # May you find forgiveness for yourself and forgive others. 000008 # May you share freely, never taking more than you give. 000009 # 000010 #*********************************************************************** 000011 # 000012 # Make sure that attaching the same database multiple times in 000013 # shared cache mode fails. 000014 # 000015 # $Id: shared7.test,v 1.1 2009/04/30 13:30:33 drh Exp $ 000016 000017 set testdir [file dirname $argv0] 000018 source $testdir/tester.tcl 000019 ifcapable !shared_cache { finish_test ; return } 000020 000021 do_test shared7-1.1 { 000022 set ::enable_shared_cache [sqlite3_enable_shared_cache 1] 000023 sqlite3_enable_shared_cache 000024 } {1} 000025 000026 # EVIDENCE-OF: R-05098-06501 In shared cache mode, attempting to attach 000027 # the same database file more than once results in an error. 000028 # 000029 do_test shared7-1.2 { 000030 db close 000031 sqlite3 db test.db 000032 db eval { 000033 CREATE TABLE t1(x); 000034 } 000035 catchsql { 000036 ATTACH 'test.db' AS err1; 000037 } 000038 } {1 {database is already attached}} 000039 000040 do_test shared7-1.3 { 000041 forcedelete test2.db test2.db-journal 000042 db eval { 000043 ATTACH 'test2.db' AS test2; 000044 CREATE TABLE test2.t2(y); 000045 } 000046 catchsql { 000047 ATTACH 'test2.db' AS err2; 000048 } 000049 } {1 {database is already attached}} 000050 do_test shared7-1.4 { 000051 catchsql { 000052 ATTACH 'test.db' AS err1; 000053 } 000054 } {1 {database is already attached}} 000055 000056 000057 sqlite3_enable_shared_cache $::enable_shared_cache 000058 finish_test