aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanielk1977 <danielk1977@noemail.net>2006-01-11 14:09:31 +0000
committerdanielk1977 <danielk1977@noemail.net>2006-01-11 14:09:31 +0000
commitb82e7edae9c6f8b0c9f2f6745442b5663a55b51a (patch)
treec388bb764973fcc40e8812c26ed450e7288a9c45
parent003437a0a7563fddadb95d4103630da3a9d7f2ae (diff)
downloadsqlite-b82e7edae9c6f8b0c9f2f6745442b5663a55b51a.tar.gz
sqlite-b82e7edae9c6f8b0c9f2f6745442b5663a55b51a.zip
Fix bugs caused by assuming that shared-schemas are initialized. (CVS 2917)
FossilOrigin-Name: 3970eb875d1830d35b3a70a7583a8ab6b238cad6
-rw-r--r--manifest30
-rw-r--r--manifest.uuid2
-rw-r--r--src/attach.c3
-rw-r--r--src/btree.c27
-rw-r--r--src/build.c5
-rw-r--r--src/pragma.c7
-rw-r--r--src/prepare.c45
-rw-r--r--src/sqliteInt.h4
-rw-r--r--src/test1.c6
-rw-r--r--test/enc2.test43
-rw-r--r--test/shared.test22
-rw-r--r--test/vacuum.test7
12 files changed, 117 insertions, 84 deletions
diff --git a/manifest b/manifest
index 34602a805..59399a039 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\stypo\snoted\sby\s#1599.\s(CVS\s2916)
-D 2006-01-11T05:49:50
+C Fix\sbugs\scaused\sby\sassuming\sthat\sshared-schemas\sare\sinitialized.\s(CVS\s2917)
+D 2006-01-11T14:09:31
F Makefile.in ab3ffd8d469cef4477257169b82810030a6bb967
F Makefile.linux-gcc aee18d8a05546dcf1888bd4547e442008a49a092
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -32,11 +32,11 @@ F sqlite3.def ccf06c86eaa2c123271db41352d2b3c9e4ec42a5
F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a
F src/alter.c d0dd079b9ef0d551ff4a4ce09ee270c07b307bbb
F src/analyze.c 7d2b7ab9a9c2fd6e55700f69064dfdd3e36d7a8a
-F src/attach.c 8438a2808f89c01cfd472e676a27d771ac4405aa
+F src/attach.c fb93d00ab7cb392579ea7db0a1247196d7220788
F src/auth.c cdec356a5cd8b217c346f816c5912221537fe87f
-F src/btree.c 874eaba6dec1660c7c917d5afc790f69de82cf2e
+F src/btree.c e1f6b2e22484d754b79b7c9b43e7a09af259f0f6
F src/btree.h 5663c4f43e8521546ccebc8fc95acb013b8f3184
-F src/build.c 59c4a6fc0e89590c7eec3154acb4cf6644674d7d
+F src/build.c c7847f299ded7fec899bfda74d4d31ba9f80aa75
F src/callback.c 51fe813309f7cf69d3d19a2e7be2103130186efd
F src/complete.c df1681cef40dec33a286006981845f87b194e7a4
F src/date.c a927bdbb51296ac398d2f667086a7072c099e5ab
@@ -62,18 +62,18 @@ F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
F src/pager.c 0a59a320b0da6b22d2dd4411d16e300ff1b947c8
F src/pager.h e0acb095b3ad0bca48f2ab00c87346665643f64f
F src/parse.y 83df51fea35f68f7e07384d75dce83d1ed30434c
-F src/pragma.c 711992e440ce78569322dd625d2cfe1cd696ccfb
-F src/prepare.c 3283bb65b4b217a092c9cbf65014774e6c3a142d
+F src/pragma.c d439d257c1bcacbc09d38820ac578749df900562
+F src/prepare.c 65b166b806e4af6e0035acdd5f6a24e2ec02b66d
F src/printf.c f47a2f4b5387cd2ebb12e9117a1a5d6bd9a2b812
F src/random.c d40f8d356cecbd351ccfab6eaedd7ec1b54f5261
F src/select.c 579cfdd250c5598de7c867134f7d35a2099b1dcc
F src/server.c 519e308651e30102dd3d1f4053ac64c14267e44c
F src/shell.c 66b073375efbdee19045e7e0cd38b85f9aff71da
F src/sqlite.h.in 821b93f918d126c54d9a91fc928434945655edc3
-F src/sqliteInt.h d7584dc5b8e15f1732a195ece9e93049ccde35fa
+F src/sqliteInt.h 829f8c22767ceaed717042087e7fb4d599a3c44c
F src/table.c 486dcfce532685b53b5a2b5da8bba0ded6fb2316
F src/tclsqlite.c d650bea0248fc0a310ddc2cb94273a3a5021fddf
-F src/test1.c 5f634ce9aa452dbcc362993c9612047df800216c
+F src/test1.c b2923fd22ec44cf05d6d51dc460e8ed8e0d5f241
F src/test2.c ca74a1d8aeb7d9606e8f6b762c5daf85c1a3f92b
F src/test3.c 9742aa146eb750cab81c1d5605286c3a0eb88054
F src/test4.c a8fd681e139e1c61f22a77d07fc3a99cb28fff3f
@@ -155,7 +155,7 @@ F test/descidx3.test 56daed47e2eb91cef15a21a656691bb82a4699ba
F test/diskfull.test d828d72adfc9e2d1a194d25996718c1989152cf9
F test/distinctagg.test 2b89d1c5220d966a30ba4b40430338669301188b
F test/enc.test 7a03417a1051fe8bc6c7641cf4c8c3f7e0066d52
-F test/enc2.test 6ea55732ddffd340f3d3a29cc33645e9ded481c7
+F test/enc2.test 0c8d3142c032c4f907b546d99e00b787f9700bb7
F test/enc3.test f6a5f0b7b7f3a88f030d3143729b87cd5c86d837
F test/expr.test a513aceb5d89042232e0d07ac5a1591965cf3963
F test/fkey1.test 153004438d51e6769fb1ce165f6313972d6263ce
@@ -225,7 +225,7 @@ F test/select5.test 07a90ab3c7e3f0a241a9cdea1d997b2c8a89ff0b
F test/select6.test f459a19bdac0501c4d3eb1a4df4b7a76f1bb8ad4
F test/select7.test 1bf795b948c133a15a2a5e99d3270e652ec58ce6
F test/server1.test 9d2d5b17b537911214a7e2a2728ff4f6ff16319c
-F test/shared.test 2c0089652d936771ca7eeab51cc3c93a9e2dce36
+F test/shared.test b94678497bf6051faf68ecb1f692d5cc04b8d330
F test/sort.test 0e4456e729e5a92a625907c63dcdedfbe72c5dc5
F test/subquery.test e6de53332c0301b3cfa34edc3f3cd5fa1e859efd
F test/subselect.test 2d13fb7f450db3595adcdd24079a0dd1d2d6abc2
@@ -264,7 +264,7 @@ F test/types3.test e5f789503849294de74a23b433168e8211523a25
F test/unique.test 0253c4227a5dc533e312202ce21ecfad18058d18
F test/update.test 7669ca789d62c258b678e8aa7a22a57eac10f2cf
F test/utf16.test f9c13f4e2b48c42d0bfc96647d82fdf7bc11fc55
-F test/vacuum.test 61e2b6e7dcf0eec90cdf6cc63e30321c8b037b1f
+F test/vacuum.test 37f998b841cb335397c26d9bbc3457182af2565f
F test/vacuum2.test 5d77e98c458bcdbeecc6327de5107179ba1aa095
F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102
F test/view.test ce0f0ad39fa4a3572acffcf1e634850ee151aae0
@@ -340,7 +340,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 59a7a56c1bba84b5c60a2f3e25bf51d933075aaf
-R c2e57d06b8aad90e5d4817eb22be0455
+P 1b368c7c5ca7974e0975dc4e3c931680c9e8df1f
+R 1449ef4e2e811b71b71db6703a8a24ab
U danielk1977
-Z 4e9d5528a047a73ba151041fd7b20eeb
+Z 8596c20274e6f745d3adfacf59742397
diff --git a/manifest.uuid b/manifest.uuid
index 8a876aefd..8356830bf 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-1b368c7c5ca7974e0975dc4e3c931680c9e8df1f \ No newline at end of file
+3970eb875d1830d35b3a70a7583a8ab6b238cad6 \ No newline at end of file
diff --git a/src/attach.c b/src/attach.c
index eca7eb7ec..f1f1bbbd9 100644
--- a/src/attach.c
+++ b/src/attach.c
@@ -11,7 +11,7 @@
*************************************************************************
** This file contains code used to implement the ATTACH and DETACH commands.
**
-** $Id: attach.c,v 1.44 2006/01/10 07:14:23 danielk1977 Exp $
+** $Id: attach.c,v 1.45 2006/01/11 14:09:31 danielk1977 Exp $
*/
#include "sqliteInt.h"
@@ -171,7 +171,6 @@ static void attachFunc(
** we found it.
*/
if( rc==SQLITE_OK ){
- db->flags &= ~SQLITE_Initialized;
sqlite3SafetyOn(db);
rc = sqlite3Init(db, &zErrDyn);
sqlite3SafetyOff(db);
diff --git a/src/btree.c b/src/btree.c
index daa45277a..b1bd141ed 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -9,7 +9,7 @@
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.289 2006/01/10 13:58:48 drh Exp $
+** $Id: btree.c,v 1.290 2006/01/11 14:09:31 danielk1977 Exp $
**
** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to
@@ -1579,6 +1579,7 @@ int sqlite3BtreeOpen(
return SQLITE_NOMEM;
}
for(pBt=pTsd->pBtree; pBt; pBt=pBt->pNext){
+ assert( pBt->nRef>0 );
if( 0==strcmp(zFullPathname, sqlite3pager_filename(pBt->pPager)) ){
p->pBt = pBt;
*ppBtree = p;
@@ -6498,3 +6499,27 @@ int sqlite3BtreeLockTable(Btree *p, int iTab, u8 isWriteLock){
#endif
return rc;
}
+
+#if defined(SQLITE_TEST) && !defined(NO_TCL)
+#include <tcl.h>
+int sqlite3_shared_cache_report(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+){
+ ThreadData *pTd = sqlite3ThreadData();
+ if( pTd->useSharedData ){
+ BtShared *pBt;
+ Tcl_Obj *pRet = Tcl_NewObj();
+ for(pBt=pTd->pBtree; pBt; pBt=pBt->pNext){
+ const char *zFile = sqlite3pager_filename(pBt->pPager);
+ Tcl_ListObjAppendElement(interp, pRet, Tcl_NewStringObj(zFile, -1));
+ Tcl_ListObjAppendElement(interp, pRet, Tcl_NewIntObj(pBt->nRef));
+ }
+ Tcl_SetObjResult(interp, pRet);
+ }
+ return TCL_OK;
+}
+#endif
+
diff --git a/src/build.c b/src/build.c
index e7c1742e2..65ce2e533 100644
--- a/src/build.c
+++ b/src/build.c
@@ -22,7 +22,7 @@
** COMMIT
** ROLLBACK
**
-** $Id: build.c,v 1.375 2006/01/10 17:58:23 danielk1977 Exp $
+** $Id: build.c,v 1.376 2006/01/11 14:09:32 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -255,7 +255,6 @@ Table *sqlite3FindTable(sqlite3 *db, const char *zName, const char *zDatabase){
Table *p = 0;
int i;
assert( zName!=0 );
- assert( (db->flags & SQLITE_Initialized) || db->init.busy );
for(i=OMIT_TEMPDB; i<db->nDb; i++){
int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
if( zDatabase!=0 && sqlite3StrICmp(zDatabase, db->aDb[j].zName) ) continue;
@@ -311,7 +310,6 @@ Table *sqlite3LocateTable(Parse *pParse, const char *zName, const char *zDbase){
Index *sqlite3FindIndex(sqlite3 *db, const char *zName, const char *zDb){
Index *p = 0;
int i;
- assert( (db->flags & SQLITE_Initialized) || db->init.busy );
for(i=OMIT_TEMPDB; i<db->nDb; i++){
int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
Schema *pSchema = db->aDb[j].pSchema;
@@ -393,7 +391,6 @@ void sqlite3ResetInternalSchema(sqlite3 *db, int iDb){
int i, j;
assert( iDb>=0 && iDb<db->nDb );
- db->flags &= ~SQLITE_Initialized;
for(i=iDb; i<db->nDb; i++){
Db *pDb = &db->aDb[i];
if( pDb->pSchema ){
diff --git a/src/pragma.c b/src/pragma.c
index b9f510cd7..54fb19f64 100644
--- a/src/pragma.c
+++ b/src/pragma.c
@@ -11,7 +11,7 @@
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
-** $Id: pragma.c,v 1.112 2006/01/10 17:58:23 danielk1977 Exp $
+** $Id: pragma.c,v 1.113 2006/01/11 14:09:32 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@@ -808,7 +808,10 @@ void sqlite3Pragma(
** will be overwritten when the schema is next loaded. If it does not
** already exists, it will be created to use the new encoding value.
*/
- if( !(pParse->db->flags&SQLITE_Initialized) ){
+ if(
+ !(DbHasProperty(db, 0, DB_SchemaLoaded)) ||
+ DbHasProperty(db, 0, DB_Empty)
+ ){
for(pEnc=&encnames[0]; pEnc->zName; pEnc++){
if( 0==sqlite3StrICmp(zRight, pEnc->zName) ){
ENC(pParse->db) = pEnc->enc;
diff --git a/src/prepare.c b/src/prepare.c
index c59d7fc82..fcd0d19bd 100644
--- a/src/prepare.c
+++ b/src/prepare.c
@@ -13,7 +13,7 @@
** interface, and routines that contribute to loading the database schema
** from disk.
**
-** $Id: prepare.c,v 1.18 2006/01/10 17:58:23 danielk1977 Exp $
+** $Id: prepare.c,v 1.19 2006/01/11 14:09:32 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@@ -154,27 +154,7 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
#endif
assert( iDb>=0 && iDb<db->nDb );
-
assert( db->aDb[iDb].pSchema );
-#if 0
- if( 0==db->aDb[iDb].pSchema ){
- Schema *pS = sqlite3SchemaGet(db->aDb[iDb].pBt);
- db->aDb[iDb].pSchema = pS;
- if( !pS ){
- return SQLITE_NOMEM;
- }else if( pS->file_format!=0 ){
- /* This means that the shared-schema associated with the the btree
- ** is already open and populated.
- */
- if( pS->enc!=ENC(db) ){
- sqlite3SetString(pzErrMsg, "attached databases must use the same"
- " text encoding as main database", (char*)0);
- return SQLITE_ERROR;
- }
- return SQLITE_OK;
- }
- }
-#endif
/* zMasterSchema and zInitScript are set to point at the master schema
** and initialisation script appropriate for the database being
@@ -212,7 +192,9 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
*/
pDb = &db->aDb[iDb];
if( pDb->pBt==0 ){
- if( !OMIT_TEMPDB && iDb==1 ) DbSetProperty(db, 1, DB_SchemaLoaded);
+ if( !OMIT_TEMPDB && iDb==1 ){
+ DbSetProperty(db, 1, DB_SchemaLoaded);
+ }
return SQLITE_OK;
}
rc = sqlite3BtreeCursor(pDb->pBt, MASTER_ROOT, 0, 0, 0, &curMain);
@@ -272,6 +254,8 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
return SQLITE_ERROR;
}
}
+ }else{
+ DbSetProperty(db, iDb, DB_Empty);
}
pDb->pSchema->enc = ENC(db);
@@ -343,9 +327,9 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
*/
int sqlite3Init(sqlite3 *db, char **pzErrMsg){
int i, rc;
+ int called_initone = 0;
if( db->init.busy ) return SQLITE_OK;
- assert( (db->flags & SQLITE_Initialized)==0 );
rc = SQLITE_OK;
db->init.busy = 1;
for(i=0; rc==SQLITE_OK && i<db->nDb; i++){
@@ -354,6 +338,7 @@ int sqlite3Init(sqlite3 *db, char **pzErrMsg){
if( rc ){
sqlite3ResetInternalSchema(db, i);
}
+ called_initone = 1;
}
/* Once all the other databases have been initialised, load the schema
@@ -366,19 +351,16 @@ int sqlite3Init(sqlite3 *db, char **pzErrMsg){
if( rc ){
sqlite3ResetInternalSchema(db, 1);
}
+ called_initone = 1;
}
#endif
db->init.busy = 0;
- if( rc==SQLITE_OK ){
- db->flags |= SQLITE_Initialized;
+ if( rc==SQLITE_OK && called_initone ){
sqlite3CommitInternalChanges(db);
}
- if( rc!=SQLITE_OK ){
- db->flags &= ~SQLITE_Initialized;
- }
- return rc;
+ return rc;
}
/*
@@ -389,11 +371,8 @@ int sqlite3ReadSchema(Parse *pParse){
int rc = SQLITE_OK;
sqlite3 *db = pParse->db;
if( !db->init.busy ){
- if( (db->flags & SQLITE_Initialized)==0 ){
- rc = sqlite3Init(db, &pParse->zErrMsg);
- }
+ rc = sqlite3Init(db, &pParse->zErrMsg);
}
- assert( rc!=SQLITE_OK || (db->flags & SQLITE_Initialized) || db->init.busy );
if( rc!=SQLITE_OK ){
pParse->rc = rc;
pParse->nErr++;
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 5dc84f2de..1710f9293 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -11,7 +11,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
-** @(#) $Id: sqliteInt.h,v 1.460 2006/01/10 17:58:23 danielk1977 Exp $
+** @(#) $Id: sqliteInt.h,v 1.461 2006/01/11 14:09:32 danielk1977 Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_
@@ -423,6 +423,7 @@ struct Schema {
*/
#define DB_SchemaLoaded 0x0001 /* The schema has been loaded */
#define DB_UnresetViews 0x0002 /* Some views have defined column names */
+#define DB_Empty 0x0004 /* The file is empty (length 0 bytes) */
#define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
@@ -522,7 +523,6 @@ struct sqlite3 {
** transaction is active on that particular database file.
*/
#define SQLITE_VdbeTrace 0x00000001 /* True to trace VDBE execution */
-#define SQLITE_Initialized 0x00000002 /* True after initialization */
#define SQLITE_Interrupt 0x00000004 /* Cancel current operation */
#define SQLITE_InTrans 0x00000008 /* True if in a transaction */
#define SQLITE_InternChanges 0x00000010 /* Uncommitted Hash table changes */
diff --git a/src/test1.c b/src/test1.c
index 6e54789a9..d98640b4c 100644
--- a/src/test1.c
+++ b/src/test1.c
@@ -13,7 +13,7 @@
** is not included in the SQLite library. It is used for automated
** testing of the SQLite library.
**
-** $Id: test1.c,v 1.186 2006/01/09 16:12:05 danielk1977 Exp $
+** $Id: test1.c,v 1.187 2006/01/11 14:09:32 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "tcl.h"
@@ -3523,5 +3523,9 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
(char*)&sqlite3_fullsync_count, TCL_LINK_INT);
#endif /* OS_UNIX */
set_options(interp);
+
+ int sqlite3_shared_cache_report(void *, Tcl_Interp *, int, Tcl_Obj *CONST[]);
+ Tcl_CreateObjCommand(interp, "sqlite_shared_cache_report",
+ sqlite3_shared_cache_report, 0, 0);
return TCL_OK;
}
diff --git a/test/enc2.test b/test/enc2.test
index d6b16a094..a21fca5b2 100644
--- a/test/enc2.test
+++ b/test/enc2.test
@@ -13,7 +13,7 @@
# various suported unicode encodings (UTF-8, UTF-16, UTF-16le and
# UTF-16be).
#
-# $Id: enc2.test,v 1.25 2006/01/03 00:33:50 drh Exp $
+# $Id: enc2.test,v 1.26 2006/01/11 14:09:32 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -473,4 +473,45 @@ ifcapable {complete} {
} {0}
}
+# Test that the encoding of an empty database may still be set after the
+# (empty) schema has been initialized.
+file delete -force test.db
+do_test enc2-9.1 {
+ sqlite3 db test.db
+ execsql {
+ PRAGMA encoding = 'UTF-8';
+ PRAGMA encoding;
+ }
+} {UTF-8}
+do_test enc2-9.2 {
+ sqlite3 db test.db
+ execsql {
+ PRAGMA encoding = 'UTF-16le';
+ PRAGMA encoding;
+ }
+} {UTF-16le}
+do_test enc2-9.3 {
+ sqlite3 db test.db
+ execsql {
+ SELECT * FROM sqlite_master;
+ PRAGMA encoding = 'UTF-8';
+ PRAGMA encoding;
+ }
+} {UTF-8}
+do_test enc2-9.4 {
+ sqlite3 db test.db
+ execsql {
+ PRAGMA encoding = 'UTF-16le';
+ CREATE TABLE abc(a, b, c);
+ PRAGMA encoding;
+ }
+} {UTF-16le}
+do_test enc2-9.5 {
+ sqlite3 db test.db
+ execsql {
+ PRAGMA encoding = 'UTF-8';
+ PRAGMA encoding;
+ }
+} {UTF-16le}
+
finish_test
diff --git a/test/shared.test b/test/shared.test
index 8323d4b3d..af23aa23e 100644
--- a/test/shared.test
+++ b/test/shared.test
@@ -9,7 +9,7 @@
#
#***********************************************************************
#
-# $Id: shared.test,v 1.10 2006/01/11 01:08:34 drh Exp $
+# $Id: shared.test,v 1.11 2006/01/11 14:09:32 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -608,26 +608,6 @@ catch {db close}
catch {db2 close}
file delete -force test.db test2.db
-if 0 {
-
-do_test shared-9.1 {
- sqlite3 db test.db
-} {}
-do_test shared-9.2 {
- execsql {CREATE TABLE t1(a);}
-} {}
-
-file delete -force test.db
-sqlite3 db test.db; set DB [sqlite3_connection_pointer db]
-do_test shared-9.3 {
- execsql {
- CREATE TABLE t5(a);
- INSERT INTO t5 VALUES('one');
- } db
-} {}
-
-}
-
#---------------------------------------------------------------------------
# The following tests - shared-9.* - test interactions between TEMP triggers
# and shared-schemas.
diff --git a/test/vacuum.test b/test/vacuum.test
index 63eee972f..58f0045df 100644
--- a/test/vacuum.test
+++ b/test/vacuum.test
@@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing the VACUUM statement.
#
-# $Id: vacuum.test,v 1.36 2006/01/03 00:33:50 drh Exp $
+# $Id: vacuum.test,v 1.37 2006/01/11 14:09:32 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -164,6 +164,11 @@ do_test vacuum-2.5 {
}
sqlite3 db3 test.db
execsql {
+ -- The "SELECT * FROM sqlite_master" statement ensures that this test
+ -- works when shared-cache is enabled. If shared-cache is enabled, then
+ -- db3 shares a cache with db2 (but not db - it was opened as
+ -- "./test.db").
+ SELECT * FROM sqlite_master;
SELECT * FROM t7 LIMIT 1
} db3
execsql {