]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Another version of the debug-only logging on this branch.
authordan <Dan Kennedy>
Mon, 16 Jan 2023 20:33:43 +0000 (20:33 +0000)
committerdan <Dan Kennedy>
Mon, 16 Jan 2023 20:33:43 +0000 (20:33 +0000)
FossilOrigin-Name: 906caf8911ed2afd7bf828550d2e709b23860597e1288334fc9ba57480542142

14 files changed:
manifest
manifest.uuid
src/btree.c
src/btree.h
src/btreeInt.h
src/pager.c
src/pager.h
src/pragma.c
src/vdbe.c
src/vdbe.h
src/vdbeInt.h
src/vdbeaux.c
src/wal.c
src/wal.h

index e92c5b8a57e82752cef341a11f7b4dc67e028c68..fae312064d1a27f1c20db1ae1ef95e1b06527ec8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sthe\sthreshold\sfor\slogging\s"PRAGMA\sschema_version"\sslowness.
-D 2023-01-06T19:03:39.056
+C Another\sversion\sof\sthe\sdebug-only\slogging\son\sthis\sbranch.
+D 2023-01-16T20:33:43.625
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -536,9 +536,9 @@ F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf
 F src/backup.c a2891172438e385fdbe97c11c9745676bec54f518d4447090af97189fd8e52d7
 F src/bitvec.c 3907fcbe8a0c8c2db58d97087d15cdabbf2842adb9125df9ab9ff87d3db16775
 F src/btmutex.c 6ffb0a22c19e2f9110be0964d0731d2ef1c67b5f7fabfbaeb7b9dabc4b7740ca
-F src/btree.c 5b85d4868417157ea9e778c95c56e1d5ea91ec7845b8f3e0bb66f6d7f31453b4
-F src/btree.h c0f87461695a74cbe0be4643a8e47758a5f39752d4cc2ab9a941fd5ccbc0b80c
-F src/btreeInt.h 4e2992ce4402150a4ea849e1ac5dbfa6050345080a77ce74bae6e2f7016fc7fa
+F src/btree.c 8e8fb7a5824476b5435d7b884351f15e9a5cef0e70dfbf082fdce47cd50e3132
+F src/btree.h bef8ed2baec32f6e1c56dd17a18e1149af0e9c69ea3d91548a1664306630591b
+F src/btreeInt.h 1594454c0440db232fc88d827c649808e5f266b43e1fd70e3a216a435cd7fb79
 F src/build.c c3cfa409c354a291acdb9d40199fa30e71020c30fdc6dee2d936ca15deb9046a
 F src/callback.c 4cd7225b26a97f7de5fee5ae10464bed5a78f2adefe19534cc2095b3a8ca484a
 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
@@ -583,13 +583,13 @@ F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
 F src/os_unix.c 52ac6823d3895c6a3a5cf4b07c05052f7ee8bd100a076bf0cd672ec83c996246
 F src/os_win.c 8d129ae3e59e0fa900e20d0ad789e96f2e08177f0b00b53cdda65c40331e0902
 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
-F src/pager.c 0f8ce193a5714767f8fb5aa9e6ba39571dc42f31e647fa2147c9e50c37753115
-F src/pager.h 4684b1ea6a770b6cebd9dcd519e25d9eb3891f49fad14b096b4c35e3d6d27869
+F src/pager.c a0dfc443300e2af6e25b742f5fc6b8366261e168bdd72102d982cee4bb5b0b62
+F src/pager.h be2b4b375a535cbca8a8c37223dddd0cac05f2d3a79b92d831c5bdcbefdef31a
 F src/parse.y 17c50d262d92083badeb60b3ebe4725e19c76548f90aea898ab07d4f2940a7d8
 F src/pcache.c f4268f7f73c6a3db12ce22fd25bc68dc42315d19599414ab1207d7cf32f79197
 F src/pcache.h 4f87acd914cef5016fae3030343540d75f5b85a1877eed1a2a19b9f284248586
 F src/pcache1.c dee95e3cd2b61e6512dc814c5ab76d5eb36f0bfc9441dbb4260fccc0d12bbddc
-F src/pragma.c 717d6213e98661583207a0053a451d9e28a7e1ad483e3ba9b1f5b97e0aaa608e
+F src/pragma.c c471a8752cc37919a213d860a1550c3e4b5bc1a416dff2aa72212e73c6982230
 F src/pragma.h 1f421360eed1a7721e8c521463df8519a7c8d0d5893ebd9dbfe0dba8de996f8c
 F src/prepare.c 971d5819a4bda88038c2283d71fc0a2974ffc3dd480f9bd941341017abacfd1b
 F src/printf.c e99ee9741e79ae3873458146f59644276657340385ade4e76a5f5d1c25793764
@@ -668,11 +668,11 @@ F src/upsert.c 8789047a8f0a601ea42fa0256d1ba3190c13746b6ba940fe2d25643a7e991937
 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
 F src/util.c 0be191521ff6d2805995f4910f0b6231b42843678b2efdc1abecaf39929a673f
 F src/vacuum.c 5b7888f917936dda09f98b1fda164cff1dad44fb5e143436bdbb9dc3191ce2df
-F src/vdbe.c addae8131682cb442a636a423e3fede8aa17385e625319e79b9604ccfe3e51b1
-F src/vdbe.h 2b994184581ac41e9f7ec49ac0f1569da1766f24d7a1775df67328d749a22a1c
-F src/vdbeInt.h 9475436717085222d523918eda727aae89dd9fcf36143d7b36214ab2d1991e26
+F src/vdbe.c 574598c7688e16c6b49bb588edfebb23c4eb8bfbce781b3b9f973b0c1779d7c2
+F src/vdbe.h 923ce223c6b64bf38e174069ce9ac7b729aea82c6b278da346f5812f29da90dd
+F src/vdbeInt.h 202638f8eea5cf2600e033c6862c2872dbbde626582c1a2c2e1ff0760fcacfcd
 F src/vdbeapi.c fc3183daf72808b4311b228989120fdbc2dc44972fb0d77d5c453460cc0e5b2c
-F src/vdbeaux.c 5fd62fb2f8f2fb19b1be264768454b312d901e3ba489363c2fa6f810e828a4c1
+F src/vdbeaux.c abffaf5c29c1c7c339c71a771fc62fefcaf09c636785cea3938a0236f892a9e9
 F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd
 F src/vdbemem.c c3ce80af15e2ff5c2824a8db881681cbf511376f13613da020bac6d320c535b1
 F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35
@@ -680,8 +680,8 @@ F src/vdbetrace.c fe0bc29ebd4e02c8bc5c1945f1d2e6be5927ec12c06d89b03ef2a4def34bf8
 F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
 F src/vtab.c bb53f9e2eaeecca07158643dd3d5039cf13b525fe2d267e113b39a36f374556c
 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
-F src/wal.c 1676bd032fd3c23642616b8e690c479894be948fffa209954f01f8fbaa5e094d
-F src/wal.h 11692a4e45c39dd8851a1b226cb22046f1271dedc19a2c734af0a1929c837b91
+F src/wal.c 08ab1092ca27ffeb97515482139c04b46c69bfd8f26251913409f1590c1f7038
+F src/wal.h 7a733af13b966ecb81872ce397e862116b3575ea53245b90b139a2873ee87825
 F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
 F src/where.c 63e712bcad47f70e94c2150976cd7da5040933699e3938d4189d064acbe40891
 F src/whereInt.h 70cd30de9ed784aa33fa6bd1245f060617de7a00d992469b6d8e419eed915743
@@ -2035,8 +2035,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 0d9081068ea42178d27b535ee59598cadb1f6936a9244f79b1cf0ea0eeb7ff4a
-R 2f2c25cd72b5eb0193222e18cbab5f75
+P ca3854cb6fa27e7a05938fe39224887570898ef39a0c5569cc9c2ccf262328c1
+R 0626da85db0de6895b83e118f09d8816
 U dan
-Z 5e0d2cd6967806965b2329e3fe94489a
+Z 534e9a0cf8dfc9829b53e82e6df56433
 # Remove this line to create a well-formed Fossil manifest.
index 1c6ad0c73d40adb627bf06504511470ce056e0f9..3b9ad84b36bbfa8c1f4fb6237d0bfd9b94aafb2e 100644 (file)
@@ -1 +1 @@
-ca3854cb6fa27e7a05938fe39224887570898ef39a0c5569cc9c2ccf262328c1
\ No newline at end of file
+906caf8911ed2afd7bf828550d2e709b23860597e1288334fc9ba57480542142
\ No newline at end of file
index 04a8c4c0681f9a8b15357eedcac07538b4c7fa73..81e2aaba8a92ae39d405a4abbd550ea88d02136a 100644 (file)
@@ -3755,6 +3755,10 @@ int sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion){
   }
   assert( pBt->inTransaction==TRANS_WRITE || IfNotOmitAV(pBt->bDoTruncate)==0 );
 
+  if( p->aOpenTransTm ){
+    p->aOpenTransTm[OPEN_TRANS_START] = sqlite3STimeNow();
+  }
+
   if( (p->db->flags & SQLITE_ResetDatabase) 
    && sqlite3PagerIsreadonly(pPager)==0 
   ){
@@ -3825,10 +3829,6 @@ int sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion){
     */
     while( pBt->pPage1==0 && SQLITE_OK==(rc = lockBtree(pBt)) );
 
-    if( pBt->aSchemaVersion ){
-      pBt->aSchemaVersion[SCHEMA_VERSION_AFTERLOCKBTREE] = sqlite3STimeNow();
-    }
-
     if( rc==SQLITE_OK && wrflag ){
       if( (pBt->btsFlags & BTS_READ_ONLY)!=0 ){
         rc = SQLITE_READONLY;
@@ -11667,7 +11667,7 @@ int sqlite3BtreeConnectionCount(Btree *p){
 }
 #endif
 
-void sqlite3BtreeIsSchemaVersion(Btree *p, u64 *a){
-  p->pBt->aSchemaVersion = a;
-  sqlite3PagerIsSchemaVersion(p->pBt->pPager, a);
+void sqlite3BtreeOpenTransTm(Btree *p, u64 *a){
+  p->aOpenTransTm = a;
+  sqlite3PagerOpenTransTm(p->pBt->pPager, a);
 }
index f3be41cc7891663c6153daa60aa507180801f54e..1ce58b0bdc953bc5de59fd8d32811d6f1d1d3e96 100644 (file)
@@ -410,6 +410,6 @@ int sqlite3BtreeTransferRow(BtCursor*, BtCursor*, i64);
 # define sqlite3SchemaMutexHeld(X,Y,Z) 1
 #endif
 
-void sqlite3BtreeIsSchemaVersion(Btree *p, u64 *a);
+void sqlite3BtreeOpenTransTm(Btree *p, u64 *a);
 
 #endif /* SQLITE_BTREE_H */
index c9f10e62f31916f4728f1170fb24e9ea60e9394b..f664b94e693407b21257e62b807c54e12a30c075 100644 (file)
@@ -364,6 +364,7 @@ struct Btree {
 #ifndef SQLITE_OMIT_SHARED_CACHE
   BtLock lock;       /* Object used to lock page 1 */
 #endif
+  u64 *aOpenTransTm;
 };
 
 /*
@@ -464,7 +465,6 @@ struct BtShared {
   BtreePtrmap *pMap;
 #endif
   int nPreformatSize;   /* Size of last cell written by TransferRow() */
-  u64 *aSchemaVersion;
 };
 
 /*
index 5e3e83156f62857b5151cfadd4f324ac2c4b987b..74220ec6e0c2b22fab56eebcf3bf117cf163ca22 100644 (file)
@@ -704,7 +704,7 @@ struct Pager {
   Wal *pWal;                  /* Write-ahead log used by "journal_mode=wal" */
   char *zWal;                 /* File name for write-ahead log */
 #endif
-  u64 *aSchemaVersion;
+  u64 *aOpenTransTm;
 };
 
 /*
@@ -3266,13 +3266,16 @@ static int pagerBeginReadTransaction(Pager *pPager){
 
   rc = sqlite3WalBeginReadTransaction(pPager->pWal, &changed);
   if( rc!=SQLITE_OK || changed ){
+    if( pPager->aOpenTransTm ){
+      pPager->aOpenTransTm[OPEN_TRANS_BEFORERESET] = sqlite3STimeNow();
+    }
     pager_reset(pPager);
-    if( pPager->aSchemaVersion ){
-      pPager->aSchemaVersion[SCHEMA_VERSION_AFTERRESET] = sqlite3STimeNow();
+    if( pPager->aOpenTransTm ){
+      pPager->aOpenTransTm[OPEN_TRANS_AFTERRESET] = sqlite3STimeNow();
     }
     if( USEFETCH(pPager) ) sqlite3OsUnfetch(pPager->fd, 0, 0);
-    if( pPager->aSchemaVersion ){
-      pPager->aSchemaVersion[SCHEMA_VERSION_AFTERUNFETCH] = sqlite3STimeNow();
+    if( pPager->aOpenTransTm ){
+      pPager->aOpenTransTm[OPEN_TRANS_AFTERUNFETCH] = sqlite3STimeNow();
     }
     assert( pPager->journalMode==PAGER_JOURNALMODE_WAL
          || pPager->journalMode==PAGER_JOURNALMODE_WAL2
@@ -5602,10 +5605,6 @@ static int getPageNormal(
   assert( pPg->pgno==pgno );
   assert( pPg->pPager==pPager || pPg->pPager==0 );
 
-  if( pPager->aSchemaVersion ){
-    pPager->aSchemaVersion[SCHEMA_VERSION_AFTERPCACHE] = sqlite3STimeNow();
-  }
-
   noContent = (flags & PAGER_GET_NOCONTENT)!=0;
   if( pPg->pPager && !noContent ){
     /* In this case the pcache already contains an initialized copy of
@@ -7917,9 +7916,8 @@ int sqlite3PagerWalFramesize(Pager *pPager){
 }
 #endif
 
-void sqlite3PagerIsSchemaVersion(Pager *pPager, u64 *a){
-  pPager->aSchemaVersion = a;
-  sqlite3WalIsSchemaVersion(pPager->pWal, a);
+void sqlite3PagerOpenTransTm(Pager *pPager, u64 *a){
+  pPager->aOpenTransTm = a;
 }
 
 #endif /* SQLITE_OMIT_DISKIO */
index 05beca1366b7656b8b2de8a4688714f87561d5ef..520473779dbb5b4cd6aa0e17e01366175290dc12 100644 (file)
@@ -274,6 +274,6 @@ int sqlite3PagerWalInfo(Pager*, u32 *pnPrior, u32 *pnFrame);
 # define enable_simulated_io_errors()
 #endif
 
-void sqlite3PagerIsSchemaVersion(Pager*, u64*);
+void sqlite3PagerOpenTransTm(Pager*, u64*);
 
 #endif /* SQLITE_PAGER_H */
index ba904896c57d3225f171f990939606872c79ed90..7de9cfb4f971aeea3441a1dfc05bc0ba1470ce73 100644 (file)
@@ -2066,7 +2066,6 @@ void sqlite3Pragma(
   case PragTyp_HEADER_VALUE: {
     int iCookie = pPragma->iArg;  /* Which cookie to read or write */
     sqlite3VdbeUsesBtree(v, iDb);
-    if( iCookie==BTREE_SCHEMA_VERSION ) sqlite3VdbeIsSchemaVersion(v);
     if( zRight && (pPragma->mPragFlg & PragFlg_ReadOnly)==0 ){
       /* Write the specified cookie value */
       static const VdbeOpList setCookie[] = {
index 38abe96a4b5c79cfb0891aa1f24f90022be2ab24..5078451ce502741e5362145ba7b0b965310ce044 100644 (file)
@@ -3850,13 +3850,16 @@ case OP_Transaction: {
   pBt = pDb->pBt;
 
   if( pBt ){
-    if( p->bSchemaVersion ){
-      sqlite3BtreeIsSchemaVersion(pBt, p->aSchemaVersion);
-    }
+    u64 aOpenTransTm[OPEN_TRANS_NTIME];
+    memset(aOpenTransTm, 0, sizeof(aOpenTransTm));
+    sqlite3BtreeOpenTransTm(pBt, aOpenTransTm);
     rc = sqlite3BtreeBeginTrans(pBt, pOp->p2, &iMeta);
-    if( p->bSchemaVersion ){
-      sqlite3BtreeIsSchemaVersion(pBt, 0);
+    sqlite3BtreeOpenTransTm(pBt, 0);
+    if( aOpenTransTm[OPEN_TRANS_START] ){
+      aOpenTransTm[OPEN_TRANS_DONE] = sqlite3STimeNow();
     }
+    sqlite3OpenTransLog(aOpenTransTm);
+
     testcase( rc==SQLITE_BUSY_SNAPSHOT );
     testcase( rc==SQLITE_BUSY_RECOVERY );
     if( rc!=SQLITE_OK ){
@@ -3868,10 +3871,6 @@ case OP_Transaction: {
       goto abort_due_to_error;
     }
 
-    if( p->bSchemaVersion ){
-      p->aSchemaVersion[SCHEMA_VERSION_BEGINTRANSDONE] = sqlite3STimeNow();
-    }
-
     if( p->usesStmtJournal
      && pOp->p2
      && (db->autoCommit==0 || db->nVdbeRead>1) 
@@ -3963,9 +3962,6 @@ case OP_ReadCookie: {               /* out2 */
   sqlite3BtreeGetMeta(db->aDb[iDb].pBt, iCookie, (u32 *)&iMeta);
   pOut = out2Prerelease(p, pOp);
   pOut->u.i = iMeta;
-  if( p->bSchemaVersion ){
-    sqlite3SchemaVersionLog(p);
-  }
   break;
 }
 
@@ -8521,11 +8517,6 @@ case OP_Init: {          /* jump */
   */
   assert( pOp->p4.z==0 || strncmp(pOp->p4.z, "-" "- ", 3)==0 );
 
-  if( p->bSchemaVersion ){
-    memset(p->aSchemaVersion, 0, sizeof(p->aSchemaVersion));
-    p->aSchemaVersion[SCHEMA_VERSION_START] = sqlite3STimeNow();
-  }
-
   /* OP_Init is always instruction 0 */
   assert( pOp==p->aOp || pOp->opcode==OP_Trace );
 
index 6788963d23297049498c2b006ef1e1886b8b53a4..cd02b5c064f9074d0593ebd14e2b6c6ac3e22884 100644 (file)
@@ -392,8 +392,7 @@ void sqlite3VdbeScanStatus(Vdbe*, int, int, int, LogEst, const char*);
 void sqlite3VdbePrintOp(FILE*, int, VdbeOp*);
 #endif
 
-void sqlite3VdbeIsSchemaVersion(Vdbe*);
-void sqlite3SchemaVersionLog(Vdbe *v);
+void sqlite3OpenTransLog(u64*);
 u64 sqlite3STimeNow();
 
 #endif /* SQLITE_VDBE_H */
index 209c9037abe6607b810c09739246c17c4bd911d4..7631fe43289e95e1979f9a19a24886bc046d650e 100644 (file)
@@ -487,21 +487,18 @@ struct Vdbe {
   int nScan;              /* Entries in aScan[] */
   ScanStatus *aScan;      /* Scan definitions for sqlite3_stmt_scanstatus() */
 #endif
-  int bSchemaVersion;
-  u64 aSchemaVersion[8];
 };
 
-#define SCHEMA_VERSION_START           0     /* OP_Init */
-#define SCHEMA_VERSION_AFTERWALTBR     1     /* After walTryBeginRead() loop */
-#define SCHEMA_VERSION_AFTEROPENWAL2   2     /* After walOpenWal2() */
-#define SCHEMA_VERSION_AFTERRESET      3     /* After pager_reset() */
-#define SCHEMA_VERSION_AFTERUNFETCH    4     /* After xUnfetch(0) */
-#define SCHEMA_VERSION_AFTERPCACHE     5     /* After setting the bitvec */
-#define SCHEMA_VERSION_AFTERLOCKBTREE  6     /* After lockBtree() */
-#define SCHEMA_VERSION_BEGINTRANSDONE  7     /* After BeginTrans() */
-
-/* Call sqlite3_log() if "PRAGMA schema_version" is slower than this (in us) */
-#define SCHEMA_VERSION_TIMEOUT 2000000
+#define OPEN_TRANS_START           0
+#define OPEN_TRANS_BEFORERESET     1
+#define OPEN_TRANS_AFTERRESET      2
+#define OPEN_TRANS_AFTERUNFETCH    3     /* After pager_reset() */
+#define OPEN_TRANS_DONE            4
+
+#define OPEN_TRANS_NTIME 5
+
+/* Call sqlite3_log() if opening a read transaction is slower than this */
+#define OPEN_TRANS_TIMEOUT 2000000
 
 /*
 ** The following are allowed values for Vdbe.eVdbeState
index a06cae358477ca943513b8340c33e839b698cd66..d62fda190e529c198f277268bd0ecb0b589e09ae 100644 (file)
@@ -5217,33 +5217,21 @@ int sqlite3NotPureFunc(sqlite3_context *pCtx){
 }
 
 #include <sys/time.h>
-void sqlite3VdbeIsSchemaVersion(Vdbe *v){
-  v->bSchemaVersion = 1;
-}
-void sqlite3SchemaVersionLog(Vdbe *v){
-  u64 i1 = v->aSchemaVersion[SCHEMA_VERSION_START];
-  if( v->aSchemaVersion[SCHEMA_VERSION_BEGINTRANSDONE]>(i1+SCHEMA_VERSION_TIMEOUT) ){
+void sqlite3OpenTransLog(u64 *aOpenTransTm){
+  u64 i1 = aOpenTransTm[OPEN_TRANS_START];
+  if( aOpenTransTm[OPEN_TRANS_DONE]>(i1+OPEN_TRANS_TIMEOUT) ){
     sqlite3_log(SQLITE_WARNING, 
-        "slow \"PRAGMA schema_version\" (v=4): (%d, %d, %d, %d, %d, %d, %d)",
-        (v->aSchemaVersion[SCHEMA_VERSION_AFTERWALTBR]==0) ? 0 :
-            (int)(v->aSchemaVersion[SCHEMA_VERSION_AFTERWALTBR] - i1),
-
-        (v->aSchemaVersion[SCHEMA_VERSION_AFTEROPENWAL2]==0) ? 0 :
-            (int)(v->aSchemaVersion[SCHEMA_VERSION_AFTEROPENWAL2] - i1),
-
-        (v->aSchemaVersion[SCHEMA_VERSION_AFTERRESET]==0) ? 0 :
-            (int)(v->aSchemaVersion[SCHEMA_VERSION_AFTERRESET] - i1),
-
-        (v->aSchemaVersion[SCHEMA_VERSION_AFTERUNFETCH]==0) ? 0 :
-            (int)(v->aSchemaVersion[SCHEMA_VERSION_AFTERUNFETCH] - i1),
+        "slow open transaction (v=5): (%d, %d, %d, %d)",
+        (aOpenTransTm[OPEN_TRANS_BEFORERESET]==0) ? 0 :
+            (int)(aOpenTransTm[OPEN_TRANS_BEFORERESET] - i1),
 
-        (v->aSchemaVersion[SCHEMA_VERSION_AFTERPCACHE]==0) ? 0 :
-            (int)(v->aSchemaVersion[SCHEMA_VERSION_AFTERPCACHE] - i1),
+        (aOpenTransTm[OPEN_TRANS_AFTERRESET]==0) ? 0 :
+            (int)(aOpenTransTm[OPEN_TRANS_AFTERRESET] - i1),
 
-        (v->aSchemaVersion[SCHEMA_VERSION_AFTERLOCKBTREE]==0) ? 0 :
-            (int)(v->aSchemaVersion[SCHEMA_VERSION_AFTERLOCKBTREE] - i1),
+        (aOpenTransTm[OPEN_TRANS_AFTERUNFETCH]==0) ? 0 :
+            (int)(aOpenTransTm[OPEN_TRANS_AFTERUNFETCH] - i1),
 
-        (int)(v->aSchemaVersion[SCHEMA_VERSION_BEGINTRANSDONE] - i1)
+        (int)(aOpenTransTm[OPEN_TRANS_DONE] - i1)
     );
   }
 }
index e4c9b64f98135985d162849188e28eb0a53bbdf0..a404c45bae3b6bead11719b3dd5e52e56890f609 100644 (file)
--- a/src/wal.c
+++ b/src/wal.c
 #ifndef SQLITE_OMIT_WAL
 
 #include "wal.h"
-#include "vdbeInt.h"
 
 /*
 ** Trace output macros
@@ -803,7 +802,6 @@ struct Wal {
 #ifdef SQLITE_ENABLE_SETLK_TIMEOUT
   sqlite3 *db;
 #endif
-  u64 *aSchemaVersion;
 };
 
 /*
@@ -3722,18 +3720,10 @@ int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){
   testcase( rc==SQLITE_PROTOCOL );
   testcase( rc==SQLITE_OK );
 
-  if( pWal->aSchemaVersion ){
-    pWal->aSchemaVersion[SCHEMA_VERSION_AFTERWALTBR] = sqlite3STimeNow();
-  }
-  
   if( rc==SQLITE_OK && pWal->hdr.iVersion==WAL_VERSION2 ){
     rc = walOpenWal2(pWal);
   }
 
-  if( pWal->aSchemaVersion ){
-    pWal->aSchemaVersion[SCHEMA_VERSION_AFTEROPENWAL2] = sqlite3STimeNow();
-  }
-
   pWal->nPriorFrame = pWal->hdr.mxFrame;
 #ifdef SQLITE_ENABLE_SNAPSHOT
   if( rc==SQLITE_OK ){
@@ -5341,10 +5331,4 @@ int sqlite3WalJournalMode(Wal *pWal){
   return (isWalMode2(pWal) ? PAGER_JOURNALMODE_WAL2 : PAGER_JOURNALMODE_WAL);
 }
 
-void sqlite3WalIsSchemaVersion(Wal *pWal, u64 *a){
-  if( pWal ){
-    pWal->aSchemaVersion = a;
-  }
-}
-
 #endif /* #ifndef SQLITE_OMIT_WAL */
index 0ba96e792a272a26cacd6055304358f636d32fd5..137abcba2b662443f3dcdcbeb1eca3f99464cfd8 100644 (file)
--- a/src/wal.h
+++ b/src/wal.h
@@ -170,7 +170,5 @@ int sqlite3WalInfo(Wal *pWal, u32 *pnPrior, u32 *pnFrame);
 /* sqlite3_wal_info() data */
 int sqlite3WalInfo(Wal *pWal, u32 *pnPrior, u32 *pnFrame);
 
-void sqlite3WalIsSchemaVersion(Wal *pWal, u64 *a);
-
 #endif /* ifndef SQLITE_OMIT_WAL */
 #endif /* SQLITE_WAL_H */