- C Merge\schanges\sfor\sversion\s3.10.0.
- D 2016-01-06T15:49:19.937
- F Makefile.in 7c8cc4c2f0179efc6fa9492141d1fb65f4807054
-C Yet\sanother\schange\sto\sFTS5\strying\sto\sget\sit\sto\smerge\ssuccessfully\sinto\ssessions.
-D 2016-01-14T14:33:36.733
++C Merge\sthe\slatest\senhancements\sand\sfixes\sfrom\strunk.
++D 2016-01-14T15:46:31.755
+ F Makefile.in cfa1ac03c4b414992fd53f24d978b45b0c21de55
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc e45d8b9b56dfa3f2cd860b2c28bd9d304513b042
+ F Makefile.msc 1dc36cfd3c047c9685e539257e158485f16ef035
F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
- F VERSION 8b9d3ac6f1962f94e06ba05462422a544f9c4e36
+ F VERSION 866588d1edf0ccb5b0d33896974338f97564f719
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240
F src/backup.c 2869a76c03eb393ee795416e2387005553df72bc
F src/bitvec.c 1a78d450a17c5016710eec900bedfc5729bf9bdf
- F src/btmutex.c 45a968cc85afed9b5e6cf55bf1f42f8d18107f79
- F src/btree.c 90fda80e91d132e617da87eded024079a00e7825
- F src/btree.h beef31274289a103fa811a7d7adc2dcedbcf2077
- F src/btreeInt.h 2a56cce8bd48f745ab5a767dd9fad8b95a1b0827
- F src/build.c 7fcb454e802c35f2b50be9b977dc9168367380e3
+ F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
-F src/btree.c 5d93e2477acb99d50a8b045f2e26a0be3d7751fe
-F src/btree.h 68ef301795e00cdf1d3ab93abc44a43b7fe771e0
-F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5
-F src/build.c 9d497ff4bf3c82cecb520436e0e9963785627583
++F src/btree.c 04dccbd580639509b927da2a3f926fc70973205e
++F src/btree.h 8b91bee00ad110e0ae1645ca51d52d23db529380
++F src/btreeInt.h ca40607c2c9d4b4b7ded98e3d707b15c2f17f1bf
++F src/build.c fd8be668b4171f033790566019c0b80ad9c8d17f
F src/callback.c 7b44ce59674338ad48b0e84e7b72f935ea4f68b0
F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f
F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198
F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf
F src/os_common.h abdb9a191a367793268fe553d25bab894e986a0e
F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
- F src/os_unix.c 0ca6d8710366fbb01a275160f018334cd347cbda
+ F src/os_unix.c b509b49b40a269e7b75ab511b6e92b2dc9444359
F src/os_win.c 386fba30419e8458b13209781c2af5590eab2811
F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
- F src/pager.c e290899d28c063a66029f813b39c61eb07018420
- F src/pager.h d72d174e10f8ed64dbfb8172279c042c1d046f2e
- F src/parse.y b0ad024157be717d43f9e1eb4f377873574153a3
-F src/pager.c f4e9ac39fbb1e0fde97af85c0f4e00eb90764b67
-F src/pager.h 1c2a49143dfba9e69cc8159ef019f472ed8d260b
-F src/parse.y caad1e98edeca6960493d0c60d31b76820dd7776
++F src/pager.c d718fb21839adc7b7e1e7f568c06d5d3323bf957
++F src/pager.h 4a489a631d6f6dfcd52f629dd22e9932e58efcaf
++F src/parse.y 2a2b07ab26adc58878bc9c6091e16b87b89c40cc
F src/pcache.c 73895411fa6b7bd6f0091212feabbe833b358d23
- F src/pcache.h 1ff11adce609ba7de139b6abfabaf9a2bac947b5
+ F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545
F src/pcache1.c 72f644dc9e1468c72922eff5904048427b817051
F src/pragma.c f3e7147299ca05ef4304a36f1fd6e002729c72c6
F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c
F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
F src/resolve.c a83b41104e6ff69855d03cd0aaa09e93927ec39f
F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
- F src/select.c f8fded11fc443a9f5a73cc5db069d06b34460e2f
- F src/shell.c ed71dc7679e6f087a3f1ea3f9dae4b0fae7209c3
- F src/sqlite.h.in 7d87d71b9a4689c51fa092f48f16590ff71558e3
+ F src/select.c 5b0f2aa9f73ec7b65d1711d485471854d5bad23c
+ F src/shell.c dcd7a83645ef2a58ee9c6d0ea4714d877d7835c4
+ F src/sqlite.h.in 214476a62012e578f42133a9a3b4f97a9aa421a3
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d
- F src/sqliteInt.h 17f1f082e4f5e0af76ab027034079b153fcad22a
-F src/sqliteInt.h b8ccd34a919e4b6bab8c4164046330002aa9a27a
++F src/sqliteInt.h 98ad874dbea2fef13f200baa6dc9df9b6b75c422
F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba
F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e
F src/update.c 17332f9fe818cbc0444c36a811800af8498af4c3
F src/utf.c 32d7f82aa921322f3e1c956f4b58f019ebd2c6b3
F src/util.c e802e8e311a0d6c48cd1b3e89db164f6f0248d70
-F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701
-F src/vdbe.c 6572d00eefeaa0b14b325fdf3a409920ec3fee82
+F src/vacuum.c 983cc3754718ef169a6ea9aef86798bd28106f21
- F src/vdbe.c 83c09bc78d03c3bc7f596c2698858bc3b7615fd1
++F src/vdbe.c fd831237035c6d25d89ca131420d1bf8ae3bcbb3
F src/vdbe.h efb7a8c1459e31f3ea4377824c6a7e4cb5068637
- F src/vdbeInt.h 75c2e82ee3357e9210c06474f8d9bdf12c81105d
+ F src/vdbeInt.h 42eefa4f9e7432b9968d321b44e48821ec13b189
F src/vdbeapi.c 020681b943e77766b32ae1cddf86d7831b7374ca
- F src/vdbeaux.c 83120486af1eb23c9889c0a80572051fa3b8cd00
-F src/vdbeaux.c f2e6b4fae037db04323be8de7bcd266375746471
++F src/vdbeaux.c a05ffe92f6c8edc523b28ef1a4a5947145f0380e
F src/vdbeblob.c fdc4a81605ae7a35ae94a55bd768b66d6be16f15
F src/vdbemem.c fdd1578e47bea61390d472de53c565781d81e045
- F src/vdbesort.c a7ec02da4494c59dfd071126dd3726be5a11459d
+ F src/vdbesort.c 0971557e5d3c289e46f56a52aed2197c13251de7
F src/vdbetrace.c 8befe829faff6d9e6f6e4dee5a7d3f85cc85f1a0
F src/vtab.c 2a8b44aa372c33f6154208e7a7f6c44254549806
- F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb
- F src/wal.c 773ba7c089be217dabc9c7e91941345d2b26d30d
- F src/wal.h e3ae126b25817dd1e5d779a1aaaa742218de5139
- F src/walker.c 2e14d17f592d176b6dc879c33fbdec4fbccaa2ba
- F src/where.c c6d3d2f6af57d574a7365ee2b225a5024f2a6bec
+ F src/vxworks.h 974e7d9a98f602d6310d563e1dc4e08f9fc48e47
-F src/wal.c d21b99fd1458159d0b1ecdccc8ee6ada4fdc4c54
-F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c
++F src/wal.c 2390cb2e5cc8529ab4dee92ee8292db1a4f824d8
++F src/wal.h 327e94c3e366154f52a8d9be9be0ea790cc4e08c
+ F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
+ F src/where.c bb69654f841ae7af0a20cc6fb8f0ac57901c31be
F src/whereInt.h 78b6b4de94db84aecbdc07fe3e38f648eb391e9a
F src/wherecode.c dfbfe198e418b01f208b489e088edd230c91a4e7
F src/whereexpr.c eebba8340c90de73b3d3bbe8c43b84559b8e6e2c
F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5
F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
F test/vtab_shared.test ea8778d5b0df200adef2ca7c00c3c37d4375f772
- F test/wal.test dbfc482e10c7263298833bb1fc60b3ac9d6340a1
+ F test/wal.test 65bfc68f3f09dcbc62cee9f794e560428d96cec7
-F test/wal2.test 1f841d2048080d32f552942e333fd99ce541dada
+F test/wal2.test dc801f6d3f8f39d1534ffbd15a715b0b287508db
F test/wal3.test b1d425f68a1f61d12563f0fa1ee6fca7d5afabf4
F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c
F test/wal5.test 88b5d9a6a3d1532497ee9f4296f010d66f07e33c
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 6bea792c3d71be34ccb9c14a0df8a5244d2d3678 fd0a50f0797d154fefff724624f00548b5320566
- R fa29b06decacdf51ca71abe2a91cec92
-P f791fc7009d68941c60d7bf953bab19d86112133
-R 52083946c40dd4f44744cbc0b447540f
--U drh
- Z 7c114826f0fefe126dc2832b00c1f66c
-Z 9b36451b3b0b6d81cfd6f7c438e3b3aa
++P e1d2ffc06d47b550ca9447a71443dea08b98d1ad 8dedff3b9ac3e6bf9c131fee19f7d26dc1ebd61f
++R 51a8de6fb41bec6ffe9c6c29c20306b1
++U dan
++Z 6037bb30250c5bc4a0c6399b67d0df45
** proceed.
*/
int sqlite3BtreeBeginTrans(Btree *p, int wrflag){
- sqlite3 *pBlock = 0;
BtShared *pBt = p->pBt;
int rc = SQLITE_OK;
+ int bConcurrent = (p->db->bConcurrent && !ISAUTOVACUUM);
sqlite3BtreeEnter(p);
btreeIntegrity(p);
*/
int sqlite3HeaderSizeBtree(void){ return ROUND8(sizeof(MemPage)); }
+/*
+** This function is called to ensure that all locks required to commit the
+** current write-transaction to the database file are held. If the db is
+** in rollback mode, this means the EXCLUSIVE lock on the database file.
+**
+** Or, if this is an CONCURRENT transaction on a wal-mode database, the WRITER
+** lock on the wal file. In this case this function also checks that the
+** CONCURRENT transaction can be safely committed (does not commit with any
+** other transaction committed since it was opened).
+**
+** SQLITE_OK is returned if successful. SQLITE_BUSY if the required locks
+** cannot be obtained due to a conflicting lock. If the locks cannot be
+** obtained for an CONCURRENT transaction due to a conflict with an already
+** committed transaction, SQLITE_BUSY_SNAPSHOT is returned. Otherwise, if
+** some other error (OOM, IO, etc.) occurs, the relevant SQLite error code
+** is returned.
+*/
+int sqlite3BtreeExclusiveLock(Btree *p){
+ int rc;
+ BtShared *pBt = p->pBt;
+ assert( p->inTrans==TRANS_WRITE && pBt->pPage1 );
+ sqlite3BtreeEnter(p);
+ rc = sqlite3PagerExclusiveLock(pBt->pPager, pBt->pPage1->pDbPage);
+ sqlite3BtreeLeave(p);
+ return rc;
+}
++
+ #if !defined(SQLITE_OMIT_SHARED_CACHE)
+ /*
+ ** Return true if the Btree passed as the only argument is sharable.
+ */
+ int sqlite3BtreeSharable(Btree *p){
+ return p->sharable;
+ }
+ #endif