- C Merge\sversion\s3.14\splus\ssome\ssubsequent\spatches\s(including\sthe\spage-cache\nperformance\spatch)\sfrom\strunk.
- D 2016-08-11T19:12:25.266
- F Makefile.in cfd8fb987cd7a6af046daa87daa146d5aad0e088
-C Ensure\sthat\s"PRAGMA\scase_sensitive_like"\sand\s"PRAGMA\sshrink_memory"\sset\sthe\nnumber\sof\soutput\scolumns\sto\s0\s(as\sthey\sare\sstatements\sthat\sreturn\sno\sdata).
-D 2017-01-06T13:49:40.112
++C Upgrade\sthis\sbranch\sto\s3.16\splus\sthe\svarious\sfixes\sthat\sappeared\safter\sits\nrelease.
++D 2017-01-09T06:33:50.719
+ F Makefile.in 41bd4cad981487345c4a84081074bcdb876e4b2e
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
- F Makefile.msc d66d0395c38571aab3804f8db0fa20707ae4609a
+ F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7
- F VERSION 25e2e333adeff5965520bc8db999c658898c972d
+ F VERSION cddd8d88dc8202afa0ebc96da61fc4acbd1e96a5
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk 67e7995f96dcb48ec0ece72901ba2cd2a2b50437
-F main.mk 2cf5f0362c5687fd8e912c3a327b49a2e8ba0f9b
++F main.mk a85772b3c9f3ba0a0f85e9f1c4e1151c5779c860
F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b
F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786
F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a
- F src/alter.c cc28ab933ae615b22add0d609794ffb6596b42ea
- F src/analyze.c 37fedc80ac966ce1745811746e68e4d8fa64c7fe
- F src/attach.c 771153bd1f4ab0b97a44a13dde2c7e5e1efeba22
- F src/auth.c 5c8e0f37f785f935f589496801edd19840485853
- F src/backup.c 17cd25a36d49330df2bacd2cadf2a61f3b525976
- F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63
- F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
- F src/btree.c 8872dcc869d648ccc0b95834fc7e81cf49c456f7
- F src/btree.h c23154635a447f37308865ce09b5d1dd2e9deef0
- F src/btreeInt.h ca40607c2c9d4b4b7ded98e3d707b15c2f17f1bf
- F src/build.c e3b41d597d4f6f24cee6bde1e64c648b1c3983ca
+ F src/alter.c 3b23977620ce9662ac54443f65b87ba996e36121
+ F src/analyze.c 3c4a63ff7a55faefecf6eb1589932fdbc06b2415
+ F src/attach.c 8c476f8bd5d2afe11d925f890d30e527e5b0ce43
+ F src/auth.c 930b376a9c56998557367e6f7f8aaeac82a2a792
+ F src/backup.c faf17e60b43233c214aae6a8179d24503a61e83b
+ F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
+ F src/btmutex.c 0e9ce2d56159b89b9bc8e197e023ee11e39ff8ca
-F src/btree.c d2c100618784bd89c089fcef03ff6e789768ecae
-F src/btree.h 2349a588abcd7e0c04f984e15c5c777b61637583
-F src/btreeInt.h 10c4b77c2fb399580babbcc7cf652ac10dba796e
-F src/build.c 9e799f1edd910dfa8a0bc29bd390d35d310596af
++F src/btree.c 5e5bf5079aae45b91e71eb087f3eddd28deafafe
++F src/btree.h 9306cfe42eed20cf2d0e407172704f5193af26cc
++F src/btreeInt.h bade42398d4dcadd2263c6d17886e812e2471e87
++F src/build.c efef69bbc7d0729a9b1e6d71f1047d0c5e1cdb5b
F src/callback.c 2e76147783386374bf01b227f752c81ec872d730
F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
- F src/ctime.c e77f3dc297b4b65c96da78b4ae4272fdfae863d7
- F src/date.c 95c9a8d00767e7221a8e9a31f4e913fc8029bf6b
- F src/dbstat.c 4f6f7f52b49beb9636ffbd517cfe44a402ba4ad0
- F src/delete.c 4aba4214a377ce8ddde2d2e609777bcc8235200f
- F src/expr.c 9c5eca8602f6c496e8d4eefefe2aae3d831dd510
- F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c bc4145347595b7770f9a598cff1c848302cf5413
- F src/func.c 29cc9acb170ec1387b9f63eb52cd85f8de96c771
- F src/global.c c45ea22aff29334f6a9ec549235ac3357c970015
- F src/hash.c 55b5fb474100cee0b901edaf203e26c970940f36
+ F src/ctime.c 9f2296a4e5d26ebf0e0d95a0af4628f1ea694e7a
+ F src/date.c dc3f1391d9297f8c748132813aaffcb117090d6e
+ F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
+ F src/delete.c c8bc10d145c9666a34ae906250326fdaa8d58fa5
+ F src/expr.c f06f41e5e5daca10fb090e70a2502dcc0dbc992b
+ F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
+ F src/fkey.c 2e9aabe1aee76273aff8a84ee92c464e095400ae
+ F src/func.c c67273e1ec08abbdcc14c189892a3ff6eeece86b
+ F src/global.c 4a34512d82fc5aa13c802db06bcfff5e1d3de955
+ F src/hash.c 63d0ee752a3b92d4695b2b1f5259c4621b2cfebd
F src/hash.h ab34c5c54a9e9de2e790b24349ba5aab3dbb4fd4
F src/hwtime.h 747c1bbe9df21a92e9c50f3bbec1de841dc5e5da
- F src/insert.c 8f4e9fcbd8e95e85f15647ba8b413b18d556ec2b
+ F src/in-operator.md 10cd8f4bcd225a32518407c2fb2484089112fd71
+ F src/insert.c 7af46a3be2656f5e13791464625d93d6b07b8612
F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e
- F src/loadext.c dd7a2b77902cc66c22555aef02e1a682554b7aec
- F src/main.c 16c1b2114eae8804caf3a8de8cb47bf2c6d83ad3
- F src/malloc.c 1443d1ad95d67c21d77af7ae3f44678252f0efec
+ F src/loadext.c 5d6642d141c07d366e43d359e94ec9de47add41d
+ F src/main.c e207b81542d13b9f13d61e78ca441f9781f055b0
+ F src/malloc.c f3fad34cd570022abca558c573f1761fb09a8212
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b
F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
F src/os.h 8e976e59eb4ca1c0fca6d35ee803e38951cb0343
F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85
F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
- F src/os_unix.c be9ca0f901a2b6c1bc93dc338f4863675180c189
- F src/os_win.c 520f23475f1de530c435d30b67b7b15fe90874b0
+ F src/os_unix.c 30e2c43e4955db990e5b5a81e901f8aa74cc8820
+ F src/os_win.c cf90abd4e50d9f56d2c20ce8e005aff55d7bd8e9
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
- F src/pager.c bd4867fbbe328bbb5f0669d60e3c16ac03dd776f
- F src/pager.h 3ae6549ec75fe9f36b426a274788a31b1b2b2203
- F src/parse.y e87265f23548aed30b331fb86b4712e1c13c4673
- F src/pcache.c 5583c8ade4b05075a60ba953ef471d1c1a9c05df
-F src/pager.c 9dc72d23eebbdf992bd69f2ab954d0d3a27c7340
-F src/pager.h d1e944291030351f362a0a7da9b5c3e34e603e39
-F src/parse.y 29153738a7322054359320eb00b5a4cd44389f20
++F src/pager.c e5b8c9a975e0c208bc8886bf83b8780b6e578ac5
++F src/pager.h 0105583b49a9126b9d137f98ec57caefc64f51d4
++F src/parse.y bb387a078f2f7f78e5362479bfef4a05b9fd40b8
+ F src/pcache.c 51070ec9b8251bbf9c6ea3d35fd96a458752929e
F src/pcache.h 2cedcd8407eb23017d92790b112186886e179490
- F src/pcache1.c 4bb7a6a5300c67d0b033d25adb509c120c03e812
- F src/pragma.c c8b499756658cb8b82cfdbb5845c22cf11f297aa
- F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c
- F src/prepare.c 22df6171aec1d86904ed2ad30c2348a5748aa04e
- F src/printf.c a5f0ca08ddede803c241266abb46356ec748ded1
- F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
- F src/resolve.c 0392c6686586b1d4dac9a4106959f03ddd70e9aa
+ F src/pcache1.c e3967219b2a92b9edcb9324a4ba75009090d3953
+ F src/pragma.c 0e7a7c6f1c6fd8ff50c0fff65b8bb80174bc49c5
+ F src/pragma.h 61aa5389118594bebb28120a6720401aee34ce1a
+ F src/prepare.c b1140c3d0cf59bc85ace00ce363153041b424b7a
+ F src/printf.c ff10a9b9902cd2afe5f655f3013c6307d969b1fd
+ F src/random.c 80f5d666f23feb3e6665a6ce04c7197212a88384
+ F src/resolve.c bb070cf5f23611c44ab7e4788803684e385fc3fb
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
- F src/select.c f3c6e9065fb34f6a23af27ec7f1f717ffbfc2ee4
- F src/shell.c 79dda477be6c96eba6e952a934957ad36f87acc7
- F src/sqlite.h.in 0f7580280d1b009b507d8beec1ff0f197ba0cc99
+ F src/select.c 4437d9d5d56b6ffdedabf394c7fe3a07ff521ce9
+ F src/shell.c 6095531aa900decdaa765e0f3993fba7153c92c1
+ F src/sqlite.h.in 29bda4bee01248a5650567d7a22fac39bad1b542
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae
- F src/sqliteInt.h cf506e205f4b15618f5f0787e45d40fafc8ff42c
-F src/sqliteInt.h 9fdfb8789b27a621f3401468bc1705c32308f877
++F src/sqliteInt.h 0081f4d95b49a1accc29e5c96cf35296d0f68098
F src/sqliteLimit.h c0373387c287c8d0932510b5547ecde31b5da247
F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1
F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9
F src/test_autoext.c 915d245e736652a219a907909bb6710f0d587871
F src/test_backup.c bf5da90c9926df0a4b941f2d92825a01bbe090a0
F src/test_bestindex.c d23f80d334c59662af69191854c76b8d3d0c8c96
- F src/test_blob.c a0f7ad49a0c9d4b72f693fe2a71c58d7e507174d
+ F src/test_blob.c 6a4c7920d1d9c6cc0f7aa50c89c4f80016aeda83
F src/test_btree.c 8b2dc8b8848cf3a4db93f11578f075e82252a274
- F src/test_config.c 0e3fbf51a9e56a50b80d52bba032e295fae76848
-F src/test_config.c 83179ea845479b5be9a651d014649e3f2722a1fe
++F src/test_config.c f3b4459a0c65933783030fb4a05073571f8fa897
+ F src/test_delete.c 8499d4d323f2ec8e28301deb3d6ddd8eef8b8139
F src/test_demovfs.c a0c3bdd45ed044115c2c9f7779e56eafff18741e
F src/test_devsym.c 4e58dec2602d8e139ca08659f62a62450587cb58
- F src/test_fs.c ac62ce7d5c0c23aa6932891cad5746945564c91c
- F src/test_func.c a2b4993da973b0ea60dd5d51a7066238ede8c329
+ F src/test_fs.c e16cbe68d3b107e00a907c20a9a02629870eb69b
+ F src/test_func.c a4fdab3363b436c1b12660e9362ce3f3782b7b5e
F src/test_hexio.c 1d4469ca61ab202a1fcec6543f584d2407205e8d
F src/test_init.c 4413c211a94b62157ca4c145b3f27c497f03c664
F src/test_intarray.c 988fc61cb0ff539f4172c0d95f15287c92516f64
F src/test_thread.c 911d15fb14e19c0c542bdc8aabf981c2f10a4858
F src/test_vfs.c f0186261a24de2671d080bcd8050732f0cb64f6e
F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698
- F src/test_windirent.c 8f5fada630348558d5745b334702f301da1ffc61
- F src/test_windirent.h b12055cab6227f7be10f5c19296f67c60cc5e2a5
+ F src/test_windirent.c 600398db0198ca1c77ca183831bf456746b6f5c4
+ F src/test_windirent.h 7edc57e2faa727026dbd5d010dd0e2e665d5aa01
F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
F src/threads.c 4ae07fa022a3dc7c5beb373cf744a85d3c5c6c3c
- F src/tokenize.c 78c8085bc7af1922aa687f0f4bbd716821330de5
- F src/treeview.c c56d6ddbed564efda746236b35bcbb8238daac4b
- F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280
- F src/update.c 4f05ea8cddfa367d045e03589756c02199e8f9bd
+ F src/tokenize.c 5c2f516876fc27fbd7753913f032f49eb89e83b5
+ F src/treeview.c 4e44ade3bfe59d82005039f72e09333ce2b4162c
+ F src/trigger.c c9f0810043b265724fdb1bdd466894f984dfc182
+ F src/update.c 1da7c462110bffed442a42884cb0d528c1db46d8
F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
- F src/util.c 810ec3f22e2d1b62e66c30fe3621ebdedd23584d
- F src/vacuum.c ca88e6d3f5270533dea68e21008493b10023c214
- F src/vdbe.c 75556e9cd0fefd200515133af759205e48e9fb33
- F src/vdbe.h 67bc551f7faf04c33493892e4b378aada823ed10
- F src/vdbeInt.h c59381049af5c7751a83456c39b80d1a6fde1f9d
- F src/vdbeapi.c c3f6715a99995c11748ecad91d25e93fd9fc390b
- F src/vdbeaux.c e46568111862599cf475e7cdcbc1322551064906
- F src/vdbeblob.c 83d2d266383157b02e2b809350bb197e89d7895b
- F src/vdbemem.c 1ecaa5ee0caff07255f25d04e8dc88befb6f88d1
- F src/vdbesort.c 91fda3909326860382b0ca8aa251e609c6a9d62c
+ F src/util.c a88b0466fddf445ce752226d4698ca3faada620a
-F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16
-F src/vdbe.c 88bd6c32b333580d2661ac3afe33369757fb1522
++F src/vacuum.c ebcf45799c7a82729a496ef5b65c5d3b2715ef8e
++F src/vdbe.c 0254dc5bfb4d00b5ccc359332eeef26eb66dc5ee
+ F src/vdbe.h b0866e4191f096f1c987a84b042c3599bdf5423b
+ F src/vdbeInt.h 281cb70332dc8b593b8c7afe776f3a2ba7d4255e
+ F src/vdbeapi.c d6ebaa465f070eb1af8ba4e7b34583ece87bdd24
-F src/vdbeaux.c 35c9a9908174e5a26c96d15e1f98214814a39147
++F src/vdbeaux.c d1e423b8a659705cbad5a502a219fba22f306048
+ F src/vdbeblob.c f4f98ea672b242f807c08c92c7faaa79e5091b65
+ F src/vdbemem.c 3b5a9a5b375458d3e12a50ae1aaa41eeec2175fd
+ F src/vdbesort.c eda25cb2d1727efca6f7862fea32b8aa33c0face
F src/vdbetrace.c 41963d5376f0349842b5fc4aaaaacd7d9cdc0834
- F src/vtab.c 6b3cfaff7e4397739d6b48511e777ca58c6d06d4
+ F src/vtab.c c4bbe0f870f52036553f8098aee0703997f0577a
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
- F src/wal.c 8605bf47b9d0c0202b14b36cadb4de22ab1d4f84
- F src/wal.h 520cb6942a265ac3d172e634266329a46e8c5b70
- F src/walker.c 2d2cc7fb0f320f7f415215d7247f3c584141ac09
- F src/where.c 5c9df42d50888be8274a5a0eb062eb0629869bd3
- F src/whereInt.h e5b939701a7ceffc5a3a8188a37f9746416ebcd0
- F src/wherecode.c 99707d11907c71d289ee9553d2d1a22f1fd8ba41
- F src/whereexpr.c 98ce9f3b8d92b6f741b9f3498f9619695739256e
-F src/wal.c 40c543f0a2195d1b0dc88ef12142bea690009344
-F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71
++F src/wal.c 2858e71b30d521c80949fa10ed6b116367865594
++F src/wal.h 8659519a248ef0f33e575b20ab04211cebe1f430
+ F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0
+ F src/where.c 6bbf9284f4f15a6fa48663d033870cc0d7f5ee66
+ F src/whereInt.h 2bcc3d176e6091cb8f50a30b65c006e88a73614d
+ F src/wherecode.c e04ac8f24c3ac8621df6c3be3ac8c7d4fa893745
+ F src/whereexpr.c 87ecdf24beba4498e4380b31c4131febb0a6ceaa
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/badutf.test d5360fc31f643d37a973ab0d8b4fb85799c3169f
F test/badutf2.test f5bc7f2d280670ecd79b9cf4f0f1760c607fe51f
F test/bc_common.tcl b5e42d80305be95697e6370e015af571e5333a1c
+F test/bc_test1.c e0a092579552e066ed4ce7bcdaecfa69c4aacc8d
F test/bestindex1.test 0cf1bd2d7b97d3a3a8c10736125274f64765c4ee
F test/bestindex2.test 4a06b8922ab2fd09434870da8d1cdf525aaf7060
- F test/bestindex3.test dd5fa4f483cd0356549203c4522f8c9e21cb1fc0
+ F test/bestindex3.test 578b6a52dab819e63f28e3640e04b32c85aed320
+ F test/bestindex4.test 4cb5ff7dbaebadb87d366f51969271778423b455
F test/between.test 34d375fb5ce1ae283ffe82b6b233e9f38e84fc6c
F test/bigfile.test aa74f4e5db51c8e54a1d9de9fa65d01d1eb20b59
F test/bigfile2.test 1b489a3a39ae90c7f027b79110d6b4e1dbc71bfc
F test/triggerC.test 302d8995f5ffe63bbc15053abb3ef7a39cf5a092
F test/triggerD.test 8e7f3921a92a5797d472732108109e44575fa650
F test/triggerE.test 15fa63f1097db1f83dd62d121616006978063d1f
+ F test/triggerF.test 55b1eb13433997faac3a4948c1d8252f6c8c636b
F test/tt3_checkpoint.c 9e75cf7c1c364f52e1c47fd0f14c4340a9db0fe1
+F test/tt3_core.c 8cd89ead95410f70e7fb02c79f1e040f9c5ad5cf
F test/tt3_index.c 39eec10a35f57672225be4d182862152896dee4a
F test/tt3_lookaside1.c 0377e202c3c2a50d688cb65ba203afeda6fafeb9
F test/tt3_stress.c c57d804716165811d979d4a719e05baccd79277f
F test/zeroblob.test 3857870fe681b8185654414a9bccfde80b62a0fa
F test/zerodamage.test e59a56443d6298ecf7435f618f0b27654f0c849e
F tool/GetFile.cs a15e08acb5dd7539b75ba23501581d7c2b462cb5
- F tool/GetTclKit.bat 629d87562e0487c386db630033931d12d62e6372
+ F tool/GetTclKit.bat f94784e3bdc2f50c539266f5467cbf1f27612cb3
F tool/Replace.cs 02c67258801c2fb5f63231e0ac0f220b4b36ba91
- F tool/addopcodes.tcl a776c2060ccb3367c470779eb2b91268a0a56fde
- F tool/build-all-msvc.bat 3e4e4043b53f1aede4308e0d2567bbd773614630 x
-F tool/addopcodes.tcl 10c889c4a65ec6c5604e4a47306fa77ff57ae189
++F tool/addopcodes.tcl f2e9aba2c2c718624fa14059198456d9e519b925
+ F tool/build-all-msvc.bat 018c1b273458a90c8ba633c6f0c5654cfcb138bf x
F tool/build-shell.sh 950f47c6174f1eea171319438b93ba67ff5bf367
- F tool/cg_anno.tcl 692ce4b8693d59e3a3de77ca97f4139ecfa641b0 x
+ F tool/cg_anno.tcl f95b0006c52cf7f0496b506343415b6ee3cdcdd3 x
F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
F tool/dbhash.c a06228aa21ebc4e6ea8daa486601d938499238a5
F tool/extract.c 054069d81b095fbdc189a6f5d4466e40380505e2
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
- P 2c61b7ab1808d5576a21fea84c3f414db51abfa5 ed406d31ff54ee3de8db91690a966e5c561f8f94
- R 6144d43db42087097a2449fa8c85b94a
- U drh
- Z 204e3a86f7529a03a274de60935ccb45
-P 609ac1c73f7c2b48a571c178a72383996a9538fe
-R 812971df62a9791f0bfb0122470a2213
++P d9f8918c5b7b6c8540b3f433142e1b4aa4433885 6696cd1878be4bd44a24841b04163e52d847711e
++R 47f5758f699f0ce7270fcc21bb40e26e
+ U dan
-Z ebefd6b7654323e8a23a6cf648753c0a
++Z 398299ab95e9ac138577a5fdad763428
}
#endif
- sqlite3BitvecDestroy(pPager->pInJournal);
- pPager->pInJournal = 0;
+ pagerFreeBitvecs(pPager);
pPager->nRec = 0;
if( rc==SQLITE_OK ){
- if( pagerFlushOnCommit(pPager, bCommit) ){
+ if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){
sqlite3PcacheCleanAll(pPager->pPCache);
}else{
sqlite3PcacheClearWritable(pPager->pPCache);
int flags /* PAGER_GET_XXX flags */
){
int rc = SQLITE_OK;
- PgHdr *pPg = 0;
- u32 iFrame = 0; /* Frame to read from WAL file */
- const int noContent = (flags & PAGER_GET_NOCONTENT);
-
- /* It is acceptable to use a read-only (mmap) page for any page except
- ** page 1 if there is no write-transaction open or the ACQUIRE_READONLY
- ** flag was specified by the caller. And so long as the db is not a
- ** temporary or in-memory database. */
- const int bMmapOk = (pgno>1 && USEFETCH(pPager)
- && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY))
- #ifdef SQLITE_HAS_CODEC
- && pPager->xCodec==0
- #endif
- );
+ PgHdr *pPg;
+ u8 noContent; /* True if PAGER_GET_NOCONTENT is set */
+ sqlite3_pcache_page *pBase;
- /* Optimization note: Adding the "pgno<=1" term before "pgno==0" here
- ** allows the compiler optimizer to reuse the results of the "pgno>1"
- ** test in the previous statement, and avoid testing pgno==0 in the
- ** common case where pgno is large. */
- if( pgno<=1 && pgno==0 ){
- return SQLITE_CORRUPT_BKPT;
- }
+ assert( pPager->errCode==SQLITE_OK );
assert( pPager->eState>=PAGER_READER );
assert( assert_pager_state(pPager) );
- assert( noContent==0 || bMmapOk==0 );
-
assert( pPager->hasHeldSharedLock==1 );
- /* If the pager is in the error state, return an error immediately.
- ** Otherwise, request the page from the PCache layer. */
- if( pPager->errCode!=SQLITE_OK ){
- rc = pPager->errCode;
- }else{
- if( bMmapOk && pagerUseWal(pPager) ){
- rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iFrame);
- if( rc!=SQLITE_OK ) goto pager_acquire_err;
- }
-
- if( bMmapOk && iFrame==0 ){
- void *pData = 0;
-
- rc = sqlite3OsFetch(pPager->fd,
- (i64)(pgno-1) * pPager->pageSize, pPager->pageSize, &pData
- );
-
- if( rc==SQLITE_OK && pData ){
- if( pPager->eState>PAGER_READER || pPager->tempFile ){
- pPg = sqlite3PagerLookup(pPager, pgno);
- }
- if( pPg==0 ){
- rc = pagerAcquireMapPage(pPager, pgno, pData, &pPg);
- }else{
- sqlite3OsUnfetch(pPager->fd, (i64)(pgno-1)*pPager->pageSize, pData);
- }
- if( pPg ){
- assert( rc==SQLITE_OK );
- *ppPage = pPg;
- return SQLITE_OK;
- }
- }
- if( rc!=SQLITE_OK ){
- goto pager_acquire_err;
- }
- }
-
- {
- sqlite3_pcache_page *pBase;
- pBase = sqlite3PcacheFetch(pPager->pPCache, pgno, 3);
- if( pBase==0 ){
- rc = sqlite3PcacheFetchStress(pPager->pPCache, pgno, &pBase);
- if( rc!=SQLITE_OK ) goto pager_acquire_err;
- if( pBase==0 ){
- pPg = *ppPage = 0;
- rc = SQLITE_NOMEM_BKPT;
- goto pager_acquire_err;
- }
- }
- pPg = *ppPage = sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pBase);
- assert( pPg!=0 );
- }
- }
-
- if( rc!=SQLITE_OK ){
- /* Either the call to sqlite3PcacheFetch() returned an error or the
- ** pager was already in the error-state when this function was called.
- ** Set pPg to 0 and jump to the exception handler. */
+#ifndef SQLITE_OMIT_CONCURRENT
+ /* If this is an CONCURRENT transaction and the page being read was
+ ** present in the database file when the transaction was opened,
+ ** mark it as read in the pAllRead vector. */
+ if( pPager->pAllRead && pgno<=pPager->dbOrigSize ){
+ rc = sqlite3BitvecSet(pPager->pAllRead, pgno);
+ if( rc!=SQLITE_OK ) goto pager_acquire_err;
+ }
+#endif
+
+ if( pgno==0 ) return SQLITE_CORRUPT_BKPT;
+ pBase = sqlite3PcacheFetch(pPager->pPCache, pgno, 3);
+ if( pBase==0 ){
pPg = 0;
- goto pager_acquire_err;
+ rc = sqlite3PcacheFetchStress(pPager->pPCache, pgno, &pBase);
+ if( rc!=SQLITE_OK ) goto pager_acquire_err;
+ if( pBase==0 ){
+ rc = SQLITE_NOMEM_BKPT;
+ goto pager_acquire_err;
+ }
}
+ pPg = *ppPage = sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pBase);
assert( pPg==(*ppPage) );
assert( pPg->pgno==pgno );
assert( pPg->pPager==pPager || pPg->pPager==0 );