]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure the schema is loaded before preparing a "PRAGMA journal_mode" command....
authordan <dan@noemail.net>
Wed, 7 Jul 2010 13:54:28 +0000 (13:54 +0000)
committerdan <dan@noemail.net>
Wed, 7 Jul 2010 13:54:28 +0000 (13:54 +0000)
FossilOrigin-Name: ef126e775a02d69a9cab53028513e8799e1b6044

manifest
manifest.uuid
src/pragma.c
test/pager1.test
test/wal2.test
test/walmode.test

index 22b01ac3bedaed7fb6101b332b6da43270c1488b..ae6785165091533ec50d4d1b762f0d11a82e334d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,5 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C Add\stestcase\smacros\sto\sensure\sthat\slarge-file\scases\sare\stested\sin\sWAL.
-D 2010-07-07T13:43:19
+C Make\ssure\sthe\sschema\sis\sloaded\sbefore\spreparing\sa\s"PRAGMA\sjournal_mode"\scommand.\sThis\shelps\sit\sreturn\smeaningful\sresults\swhen\sit\sis\sthe\sfirst\scommand\sexecuted\sby\sa\snew\sdatabase\sconnection.
+D 2010-07-07T13:54:29
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in c4270a1cd7cd70a263b7e96a258aa90e9c3618eb
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -165,7 +162,7 @@ F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e
 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
 F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
 F src/pcache1.c 3a7c28f46a61b43ff0b5c087a7983c154f4b264c
-F src/pragma.c 423865323a4074f1e0d4ab02af0be014653e8863
+F src/pragma.c 7d76fe052ed805e68226e4518c2e400e9e5345de
 F src/prepare.c f045aeff869d6409a2eae2fe08f7dc2df9528195
 F src/printf.c 5f5b65a83e63f2096a541a340722a509fa0240a7
 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
@@ -538,7 +535,7 @@ F test/notify3.test 7eeba3628c4e707c004b72a2489c48fbdbc5c2ee
 F test/notnull.test cc7c78340328e6112a13c3e311a9ab3127114347
 F test/null.test a8b09b8ed87852742343b33441a9240022108993
 F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
-F test/pager1.test 5352bec6768eec69dee75b97199d156dcb4a933c
+F test/pager1.test d8e4b2bc8164c920e6ea0572c9e13576d6e4f3fa
 F test/pager2.test f5c757c271ce642d36a393ecbfb3aef1c240dcef
 F test/pagerfault.test 7d16f91a88e79c369d59b019615f3472297213f9
 F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401
@@ -777,7 +774,7 @@ F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5
 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
 F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d
 F test/wal.test 1891e6f72dd437a1c2a48091aa9182ba17a8f780
-F test/wal2.test 9f2c2a00358b1466bc38feda85f105a4fb52f251
+F test/wal2.test f4e96e3b793cdc20a45031d3f1173e67f6cc44ec
 F test/wal3.test d2ae7e66f973bd6b58ce49e546b2c00f44fe0485
 F test/wal4.test 640be93f5422df37203aa5e7c06b24fb5e4a2439
 F test/wal_common.tcl 875ee2118cd7b292ba22fb9bfa66a984b5226b13
@@ -788,7 +785,7 @@ F test/walcrash.test f6d5fb2bb108876f04848720a488065d9deef69f
 F test/walcrash2.test 019d60b89d96c1937adb2b30b850ac7e86e5a142
 F test/walfault.test 05c470688d742688e455dd56816bd6bcffa298f8
 F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483
-F test/walmode.test cfca1207d725fb5bc25b3b9f9a7053c0277cad4a
+F test/walmode.test 463a730bc67990c08437616c2dd35a4e5dc82c30
 F test/walslow.test d21625e2e99e11c032ce949e8a94661576548933
 F test/walthread.test a25a393c068a2b42b44333fa3fdaae9072f1617c
 F test/where.test de337a3fe0a459ec7c93db16a519657a90552330
@@ -834,14 +831,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 8657455a11d20dbf78247559670943a72541a09d
-R 5b2575fde5ab17ee5f094117e90d3426
-U drh
-Z 7ccf2025fd40e8aba2c7da7154bbcd44
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFMNIR7oxKgR168RlERAkQPAJ9XXJ1y1kSaFlQZxEA2iMYW2lDrgACdFLMj
-nP/rGIBPD7YjnRDzUgfyo/A=
-=Xptt
------END PGP SIGNATURE-----
+P 8156b57ac33161ae6dd8a9413127ecce3c9eae83
+R e41ff6377e33eb60459569336ce5c4d2
+U dan
+Z 29f850eebea1ce7652ffcd737a108779
index da4c2b1ca49419091ff89a9eb73b77025d0ea22c..91c58d14b88bdbbe18a1b642863d7b3687d695df 100644 (file)
@@ -1 +1 @@
-8156b57ac33161ae6dd8a9413127ecce3c9eae83
\ No newline at end of file
+ef126e775a02d69a9cab53028513e8799e1b6044
\ No newline at end of file
index d98b68055e72de06ae63e94fe74d0d6e88c98cee..2f6a9ee5071f896958e295beb22f8f835158e347 100644 (file)
@@ -537,6 +537,10 @@ void sqlite3Pragma(
   if( sqlite3StrICmp(zLeft,"journal_mode")==0 ){
     int eMode;                    /* One of the PAGER_JOURNALMODE_XXX symbols */
 
+    if( sqlite3ReadSchema(pParse) ){
+      goto pragma_out;
+    }
+
     sqlite3VdbeSetNumCols(v, 1);
     sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "journal_mode", SQLITE_STATIC);
 
index b2ccdf66a1a96b4fe67050c56ae227274e86e544..7f280027057b2cfced9f9c13b837d9dc60dbaa6c 100644 (file)
@@ -1440,7 +1440,7 @@ do_test pager1-11.3 {
 } {truncate ok}
 do_test pager1-11.4 {
   db2 close
-  file size test.db-journal
+  file exists test.db-journal
 } {0}
 do_execsql_test pager1-11.5 { SELECT count(*) FROM zz } {32}
 db close
index dbfcfc467af6e635730ef0631555debd3f1e61a4..6d87f0e7504f7799818d08ce0e83cd5ca35ecf9d 100644 (file)
@@ -619,7 +619,6 @@ foreach {tn sql res expected_locks} {
     COMMIT;
   } {wal} {
     $RECOVERY 
-    $READMARK0_READ 
     $READMARK0_WRITE
   }
 
index 7bb656e5efc0fe62f153ead814a4b873b1f758f6..410019c9321b427bf6505cbc4d57acfd4a52648e 100644 (file)
@@ -273,11 +273,11 @@ do_test walmode-5.3.5 {
 # Test changing to WAL mode from journal_mode=off or journal_mode=memory
 #
 foreach {tn mode} {
+  1 off
+  2 memory
   3 persist
   4 delete
   5 truncate
-  2 memory
-  1 off
 } {
   do_test walmode-6.$tn {
     faultsim_delete_and_reopen
@@ -287,5 +287,41 @@ foreach {tn mode} {
     "
   } [list $mode wal]
 }
+db close
+
+do_test walmode-7.0 {
+  file delete -force test.db
+  sqlite3 db test.db
+  execsql {
+    PRAGMA journal_mode = WAL;
+    CREATE TABLE t1(a, b);
+  }
+} {wal}
+foreach {tn sql result} {
+  1  "PRAGMA journal_mode"                delete
+  2  "PRAGMA main.journal_mode"           wal
+  3  "PRAGMA journal_mode = delete"       delete
+  4  "PRAGMA journal_mode"                delete
+  5  "PRAGMA main.journal_mode"           delete
+  6  "PRAGMA journal_mode = wal"          wal
+  7  "PRAGMA journal_mode"                delete
+  8  "PRAGMA main.journal_mode"           wal
+
+  9  "PRAGMA journal_mode"                delete
+ 10  "PRAGMA main.journal_mode"           wal
+ 11  "PRAGMA main.journal_mode = delete"  delete
+ 12  "PRAGMA journal_mode"                delete
+ 13  "PRAGMA main.journal_mode"           delete
+ 14  "PRAGMA main.journal_mode = wal"     wal
+ 15  "PRAGMA journal_mode"                delete
+ 16  "PRAGMA main.journal_mode"           wal
+} {
+  do_test walmode-7.$tn { 
+    db close
+    sqlite3 db test.db
+    execsql $sql
+  } $result
+}
+db close
 
 finish_test