From 5e8e1981dcbd418e0a69add3170b5c5fed79ef2e Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 4 Jun 2003 15:48:33 +0000 Subject: [PATCH] Change the "database_list" pragma to return a third column containing the filename of the underlying database file. Always use an in-memory TEMP database with an in-memory main database. (CVS 1003) FossilOrigin-Name: f39100f5759d0d8b9c71e18d38a148dee4643020 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/main.c | 5 ++++- src/pragma.c | 8 ++++++-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index 7fa1c264c5..096fc72829 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Version\s2.8.3\s(CVS\s1002) -D 2003-06-04T12:44:27 +C Change\sthe\s"database_list"\spragma\sto\sreturn\sa\sthird\scolumn\scontaining\sthe\nfilename\sof\sthe\sunderlying\sdatabase\sfile.\s\sAlways\suse\san\sin-memory\sTEMP\ndatabase\swith\san\sin-memory\smain\sdatabase.\s(CVS\s1003) +D 2003-06-04T15:48:33 F Makefile.in 1ff85c27d4350c74118341024e8a4fb2a04a3a43 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -33,14 +33,14 @@ F src/func.c 33bbce6acaf9578ac99aa1f689968ccaf2ce43a2 F src/hash.c 058f077c1f36f266581aa16f907a3903abf64aa3 F src/hash.h cd0433998bc1a3759d244e1637fe5a3c13b53bf8 F src/insert.c 6a61c6d1ef17396d0e87e555806653fddab0b084 -F src/main.c 945f9b6855007b28a6c910584d1ca5adff92d821 +F src/main.c c785a3d4675b26cde2d69015aa1090d69ff0da43 F src/md5.c fe4f9c9c6f71dfc26af8da63e4d04489b1430565 F src/os.c 080238f03015057879cdf53bc4af9e497f2ba724 F src/os.h 9e5bbddff123187295e3d00d49af06192cd1cd49 F src/pager.c 51fdfda63e2d8c01fff8f7fe0c49f2636d5b1321 F src/pager.h 5da62c83443f26b1792cfd72c96c422f91aadd31 F src/parse.y 917250e5d86bdee752355e6617ea2e8ee12438bf -F src/pragma.c ec64704e61286948f39157617f1ce2f506dd1b74 +F src/pragma.c f439a6157fe7c8d66dc2c6bfde2abaf23e770e1d F src/printf.c fc5fdef6e92ad205005263661fe9716f55a49f3e F src/random.c 19e8e00fe0df32a742f115773f57651be327cabe F src/select.c 76b3a5cda76421cfe82d6a96c72308c2518cb2f9 @@ -165,7 +165,7 @@ F www/speed.tcl cb4c10a722614aea76d2c51f32ee43400d5951be F www/sqlite.tcl 4bd1729e320f5fa9125f0022b281fbe839192125 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218 -P c96f5bf0d7b75c8091f78dc2b9e3937949642ce5 -R e31e8c7cdbafc68dc5929b52631fff51 +P 433570e3e6caa52b9e480a22529dde6385a3c7d3 +R cb2900943d7c0b51209a7805a653dfeb U drh -Z aee5f3bfe272c0c6eeead46ab85c86d4 +Z 3de7c4883d1691228d569396e6e62416 diff --git a/manifest.uuid b/manifest.uuid index 34b4b2e9ff..3f8ded9d09 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -433570e3e6caa52b9e480a22529dde6385a3c7d3 \ No newline at end of file +f39100f5759d0d8b9c71e18d38a148dee4643020 \ No newline at end of file diff --git a/src/main.c b/src/main.c index daa88ce2b9..c14860a48d 100644 --- a/src/main.c +++ b/src/main.c @@ -14,7 +14,7 @@ ** other files are for internal use by SQLite and should not be ** accessed by users of the library. ** -** $Id: main.c,v 1.133 2003/06/02 18:17:33 drh Exp $ +** $Id: main.c,v 1.134 2003/06/04 15:48:33 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -440,6 +440,9 @@ sqlite *sqlite_open(const char *zFilename, int mode, char **pzErrMsg){ } /* Open the backend database driver */ + if( zFilename[0]==':' && strcmp(zFilename,":memory:")==0 ){ + db->temp_store = 2; + } rc = sqliteBtreeFactory(db, zFilename, 0, MAX_PAGES, &db->aDb[0].pBt); if( rc!=SQLITE_OK ){ switch( rc ){ diff --git a/src/pragma.c b/src/pragma.c index 7488c962f2..0aaae6968e 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.8 2003/05/13 08:01:34 jplyon Exp $ +** $Id: pragma.c,v 1.9 2003/06/04 15:48:33 drh Exp $ */ #include "sqliteInt.h" #include @@ -421,6 +421,7 @@ void sqlitePragma(Parse *pParse, Token *pLeft, Token *pRight, int minusFlag){ static VdbeOp indexListPreface[] = { { OP_ColumnName, 0, 0, "seq"}, { OP_ColumnName, 1, 0, "name"}, + { OP_ColumnName, 2, 0, "file"}, }; sqliteVdbeAddOpList(v, ArraySize(indexListPreface), indexListPreface); @@ -430,7 +431,10 @@ void sqlitePragma(Parse *pParse, Token *pLeft, Token *pRight, int minusFlag){ sqliteVdbeAddOp(v, OP_Integer, i, 0); sqliteVdbeAddOp(v, OP_String, 0, 0); sqliteVdbeChangeP3(v, -1, db->aDb[i].zName, P3_STATIC); - sqliteVdbeAddOp(v, OP_Callback, 2, 0); + sqliteVdbeAddOp(v, OP_String, 0, 0); + sqliteVdbeChangeP3(v, -1, sqliteBtreeGetFilename(db->aDb[i].pBt), + P3_STATIC); + sqliteVdbeAddOp(v, OP_Callback, 3, 0); } }else /*