- C Final\scommit\sin\sbtree.h\sreorg.\sNo\smore\sunknowns.
- D 2020-10-27T11:07:16.082
-C Always\screate\sa\sstatement\sjournal\swhen\susing\sthe\sOP_ParseSchema\sopcode,\nas\syou\snever\sknow\swhen\sit\smight\sfail.\s\sSee\sthe\sdiscussion\son\n[forum:/forumpost/daa2c728cc|forum\spost\sdaa2c728cc].
-D 2020-10-26T18:14:12.864
++C Typo\sin\sbtree.h\s(and\sunwanted\smerge;\sthis\sbranch\sfor\scherrypicking\sbtree.h\sonly)
++D 2020-10-27T11:13:37.542
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d
F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
-F src/btree.c c678de5bf6f57933e0ad40578fbdb0fc8113b414bf517e0a2525cb319c379874
-F src/btree.h dcdff4037d75b3f032a5de0d922fcfaf35d48589417f634fa8627362709315f9
+F src/btree.c ad0a38e4d4a0b6b3e003b5478556dbe890c0d58c7a95362e02d1fa539631af19
- F src/btree.h 56dad8f951b0659e4221e63ff8f8d6625400d4695d2c75fe2fabef42dbaabaa4
++F src/btree.h 1e92f734cfcb90c76bd6dd9568f74d585044bbce147de02cc3f0668866c43125
F src/btreeInt.h ffd66480520d9d70222171b3a026d78b80833b5cea49c89867949f3e023d5f43
- F src/build.c 55faabe78044063eae7d1cb3767afa1bafd6edc41d950b6e2228abf601f87912
+ F src/build.c f6449d4e85e998e14d3f537e8ea898dca2fcb83c277db3e60945af9b9177db81
F src/callback.c d0b853dd413255d2e337b34545e54d888ea02f20da5ad0e63585b389624c4a6c
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F src/ctime.c e98518d2d3d4029a13c805e07313fb60c877be56db76e90dd5f3af73085d0ce6
F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
F src/resolve.c 97b91fb25d86881ff20c9ad2ad98412c6c1bb5f7d6c9bb044db250cbc9cfcd4b
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
- F src/select.c 0d9ce195bf062f45390c9f9fa0ab7402e26b57bee51b9f67b3034c32f9fc425a
- F src/shell.c.in 4e6ea7bf44ace40faf2b4214b7cb336fd15d22d2f7d04b70b5aa10a7716f7be7
- F src/sqlite.h.in cb9f0862e8d0f8691de95b18439ab60666f868c83bc65e3a17f0a0b44cc8f8a9
+ F src/select.c 645aa47fb8ce95e95290d4852d44cf5997c89c3e754a74c91e010459a8db7a72
+ F src/shell.c.in b317d851046496c92e28529eb96f9d2ec1ad480590b1676e0362865f5466f886
+ F src/sqlite.h.in ff32663b457306eb88c3039868280aa39da31162ed69c4e71fa8e028684e7277
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 2d1af80082edffd71c6f96f70ad1ce6a4fb46615ad10291fc77fe0dea9ff0197
- F src/sqliteInt.h 4ef96d64b0dbd38afa35b506eee7a2ef7ad0be3939524485c475a8c25fbb2063
-F src/sqliteInt.h c01115c8dd967f7d334a98ba37ac821eafb04144c8085a795daaf2185743d27a
++F src/sqliteInt.h c6c4c310b699364eff6457f05beb47fd30943687d511bf99b6f722af236377fb
F src/sqliteLimit.h d7323ffea5208c6af2734574bae933ca8ed2ab728083caa117c9738581a31657
F src/status.c 4b8bc2a6905163a38b739854a35b826c737333fab5b1f8e03fa7eb9a4799c4c1
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P a49a7cdec7f50c27c2d5f9919ba71e41858a57e2eb0cfc7a13d53165f2f2ea9b
- R e9cab023f226b7e1b429f157956f873b
-P 80eba105d6d1b49ba8ca2ad4e14ddec2de0bdc2f6686c2f8a1c1d24fc1fe846f
-R eea974520c1d74de24586e181010f011
-U drh
-Z c0d2472c8013bdcee23ed82f2bfd8f37
++P ea06f1d1f9683b3299107f42912169de9d2bbc91386eb953520c2f44e309c715 aa512f72cf5adfece6299db17bd122aeff0cdee2a25f83f60e2ebb05e99c9591
++R 53b18e65fc36a2364f9cda89c8bffd16
+U shearer
- Z 8a2e4699b521ffa738da4c5938ef2333
++Z bd9c82595e9db9afed4c52f0d9e911d6
int sqlite3BtreeSecureDelete(Btree*,int);
int sqlite3BtreeGetRequestedReserve(Btree*);
int sqlite3BtreeGetReserveNoMutex(Btree *p);
-int sqlite3BtreeSetAutoVacuum(Btree *, int);
-int sqlite3BtreeGetAutoVacuum(Btree *);
+
+/* Implements PRAGMA integrity_check on a Btree and its associated file.
+ * Only called from vdbe.c/OP_IntegrityCk */
- char *sqlite3BtreeIntegrityCheck(sqlite3*,Btree*,Pgno*aRoot,int nRoot,int,int*);`
++char *sqlite3BtreeIntegrityCheck(sqlite3*,Btree*,Pgno*aRoot,int nRoot,int,int*);
+
+/* A single step of an incremental vacuum. For PRAGMA incremental_vacuum(N) */
+/* Neither autovacuum mode nor the VACUUM SQLite command use this function. */
+int sqlite3BtreeIncrVacuum(Btree *);
+
+/* Copy a complete Btree into another Btree, ie from one file into another */
+/* Used only in the case of a backup and vacuum operations */
+int sqlite3BtreeCopyFile(Btree *, Btree *);
+
+
+/*
+** Btree Connection Configuration and Querying
+*/
+
+
+int sqlite3BtreeSetCacheSize(Btree*,int);
+Pgno sqlite3BtreeMaxPageCount(Btree*,Pgno);
+Pgno sqlite3BtreeLastPage(Btree*);
+const char *sqlite3BtreeGetFilename(Btree *);
+const char *sqlite3BtreeGetJournalname(Btree *);
+
+int sqlite3BtreeIsReadonly(Btree *pBt);
+
+/* Estimate number of rows in table
+ * called only by OP IsSmaller, from PRAGMA optimize
+*/
+i64 sqlite3BtreeRowCountEst(BtCursor*);
+
+/* Return the pager associated with a BTree */
+struct Pager *sqlite3BtreePager(Btree*);
+
+
+/*
+** Mutex Function Wrappers
+**
+** Every lock applies to an entire BTree. These functions are
+** wrappers for the sqlite3_mutex* functions, which are called
+** outside btree.c
+*/
+
+/*
+** If we are not using shared cache, then there is no need to
+** use mutexes to access the BtShared structures. So make the
+** Enter and Leave procedures no-ops.
+*/
+#ifndef SQLITE_OMIT_SHARED_CACHE
+ void sqlite3BtreeEnter(Btree*);
+ void sqlite3BtreeEnterAll(sqlite3*);
+ int sqlite3BtreeSharable(Btree*);
+ void sqlite3BtreeEnterCursor(BtCursor*);
+ int sqlite3BtreeConnectionCount(Btree*);
+#else
+# define sqlite3BtreeEnter(X)
+# define sqlite3BtreeEnterAll(X)
+# define sqlite3BtreeSharable(X) 0
+# define sqlite3BtreeEnterCursor(X)
+# define sqlite3BtreeConnectionCount(X) 1
+#endif
+
+#if !defined(SQLITE_OMIT_SHARED_CACHE) && SQLITE_THREADSAFE
+ void sqlite3BtreeLeave(Btree*);
+ void sqlite3BtreeLeaveCursor(BtCursor*);
+ void sqlite3BtreeLeaveAll(sqlite3*);
+#ifndef NDEBUG
+ /* These routines are used inside assert() statements only. */
+ int sqlite3BtreeHoldsMutex(Btree*);
+ int sqlite3BtreeHoldsAllMutexes(sqlite3*);
+ int sqlite3SchemaMutexHeld(sqlite3*,int,Schema*);
+#endif
+#else
+
+# define sqlite3BtreeLeave(X)
+# define sqlite3BtreeLeaveCursor(X)
+# define sqlite3BtreeLeaveAll(X)
+
+# define sqlite3BtreeHoldsMutex(X) 1
+# define sqlite3BtreeHoldsAllMutexes(X) 1
+# define sqlite3SchemaMutexHeld(X,Y,Z) 1
+#endif
+
+
+/*
+** Transaction and SavePoint Functions
+*/
+
int sqlite3BtreeBeginTrans(Btree*,int,int*);
-int sqlite3BtreeCommitPhaseOne(Btree*, const char*);
+int sqlite3BtreeCommitPhaseOne(Btree*, const char *zMaster);
int sqlite3BtreeCommitPhaseTwo(Btree*, int);
int sqlite3BtreeCommit(Btree*);
int sqlite3BtreeRollback(Btree*,int,int);