]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Disable trace when recursively running commands while vacuuming.
authordrh <drh@noemail.net>
Thu, 17 Dec 2009 03:49:56 +0000 (03:49 +0000)
committerdrh <drh@noemail.net>
Thu, 17 Dec 2009 03:49:56 +0000 (03:49 +0000)
FossilOrigin-Name: 69a1348a3c88ffbf401cf72bbec8b4a76557bd11

manifest
manifest.uuid
src/vacuum.c
test/trace.test

index eac300cd5490cd8645716ef8193b2914dbe62bd1..9f3072a3c96c61e19ccaaaf6402d073e8372523d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Change\sthe\sREGEXP\sfunction\sin\sICU\sto\srequire\sexactly\s2\sarguments.
-D 2009-12-17T02:13:40
+C Disable\strace\swhen\srecursively\srunning\scommands\swhile\svacuuming.
+D 2009-12-17T03:49:56
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -211,7 +211,7 @@ F src/trigger.c d46f9389e3bf3dd1cc1d288aba2f289c96b34200
 F src/update.c c0dc6b75ad28b76b619042d934f337b02acee208
 F src/utf.c dad16adcc0c35ef2437dca125a4b07419d361052
 F src/util.c ad4f03079ba0fe83590d1cc9197e8e4844e38592
-F src/vacuum.c 03309a08d549f9389cc3a3589afd4fadbdaf0679
+F src/vacuum.c db6415fd0f1be191e16228457a6deb9f232e6ad6
 F src/vdbe.c 5ed06318aac5d57849170a8bf39e807c22c5fedd
 F src/vdbe.h bea1f0cd530775bdb58a340265f3cf3ee920e9b2
 F src/vdbeInt.h d7ea821ac7813c9bea0fe87558c35e07b2c7c44d
@@ -697,7 +697,7 @@ F test/tkt3992.test f3e7d548ac26f763b47bc0f750da3d03c81071da
 F test/tkt3997.test a335fa41ca3985660a139df7b734a26ef53284bd
 F test/tkt4018.test 7c2c9ba4df489c676a0a7a0e809a1fb9b2185bd1
 F test/tokenize.test ce430a7aed48fc98301611429595883fdfcab5d7
-F test/trace.test 2739f8dcc6739a9235523819c4cd30e78c44985c
+F test/trace.test 655053a05fccdd0efab3f7f38534a1fe79134c5e
 F test/trans.test d887cb07630dc39879a322d958ad8b006137485c
 F test/trans2.test d5337e61de45e66b1fcbf9db833fa8c82e624b22
 F test/trans3.test d728abaa318ca364dc370e06576aa7e5fbed7e97
@@ -783,14 +783,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 04915562a0c2cb377bc7baa0c06c5d9ac376563c
-R 8fb010f89df986bb1e3ccf9081bc395d
+P c34cf23efb92d9bbb7cf4245d372e47182771f63
+R df34564a99f98bdf716b0893f7083986
 U drh
-Z b03333e958abdafc178e2111c7dc045a
+Z 66c05a13b04dc772b90bafeb209da98e
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFLKZPXoxKgR168RlERAv/4AJ4rJeu5eLBQAd7P5tYFnbl0kiFyfgCfQO/J
-s4cvcIV5qeUoZkP9mmgyLCU=
-=i/Ub
+iD8DBQFLKapooxKgR168RlERAj7yAJwLPR/kXcmD/ivKBpTOSoWkc7OyRQCdElW2
+J6PsgGZAGYZHuEQMqY8qq8I=
+=aPY2
 -----END PGP SIGNATURE-----
index 4e743cbafbad1ed013b218ec224e1858e0acbbdc..599426a272f8ef7041f4b5ab37ddb4fc0fb1f6d2 100644 (file)
@@ -1 +1 @@
-c34cf23efb92d9bbb7cf4245d372e47182771f63
\ No newline at end of file
+69a1348a3c88ffbf401cf72bbec8b4a76557bd11
\ No newline at end of file
index 43545f3f43e696841e8bbf30dfafac2df6553523..c44a236def1afaede3f9ab8f90b00f18debfcebd 100644 (file)
@@ -86,6 +86,7 @@ int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db){
   int saved_flags;        /* Saved value of the db->flags */
   int saved_nChange;      /* Saved value of db->nChange */
   int saved_nTotalChange; /* Saved value of db->nTotalChange */
+  void (*saved_xTrace)(void*,const char*);  /* Saved db->xTrace */
   Db *pDb = 0;            /* Database to detach at end of vacuum */
   int isMemDb;            /* True if vacuuming a :memory: database */
   int nRes;
@@ -101,8 +102,10 @@ int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db){
   saved_flags = db->flags;
   saved_nChange = db->nChange;
   saved_nTotalChange = db->nTotalChange;
+  saved_xTrace = db->xTrace;
   db->flags |= SQLITE_WriteSchema | SQLITE_IgnoreChecks;
   db->flags &= ~SQLITE_ForeignKeys;
+  db->xTrace = 0;
 
   pMain = db->aDb[0].pBt;
   isMemDb = sqlite3PagerIsMemdb(sqlite3BtreePager(pMain));
@@ -283,6 +286,7 @@ end_of_vacuum:
   db->flags = saved_flags;
   db->nChange = saved_nChange;
   db->nTotalChange = saved_nTotalChange;
+  db->xTrace = saved_xTrace;
 
   /* Currently there is an SQL level transaction open on the vacuum
   ** database. No locks are held on any other files (since the main file
index f40993dedcfa3e1efd713b4db214602499a3403d..4dc20a1244426309a73a99e0d98bd1ea34ed1a53 100644 (file)
@@ -82,6 +82,12 @@ do_test trace-2.5 {
 } {SELECT * FROM t1}
 catch {sqlite3_finalize $STMT}
 
+do_test trace-2.6 {
+  set TRACE_OUT {}
+  db eval VACUUM
+  set TRACE_OUT
+} {VACUUM}
+
 # Similar tests, but this time for profiling.
 # 
 do_test trace-3.1 {