From: drh Date: Fri, 8 Jun 2012 01:13:17 +0000 (+0000) Subject: Merge trunk changes into the apple-osx branch. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1489c18b997b482c2cbb1188957a072ec7db84e5;p=thirdparty%2Fsqlite.git Merge trunk changes into the apple-osx branch. FossilOrigin-Name: 9d1b8515625ce7fbde170180126bd1a273bb4994 --- 1489c18b997b482c2cbb1188957a072ec7db84e5 diff --cc manifest index 7d6b945e1e,c259a51bfc..6a038d3915 --- a/manifest +++ b/manifest @@@ -1,12 -1,12 +1,12 @@@ - C Only\scall\sfchown\swhen\srunning\sas\sroot\sand\ssupporting\sfiles\smismatch\sthe\sdatabase\sowner\s&\sperms - D 2012-05-31T00:21:28.876 -C Documentation\sand\sevidence\smark\supdates.\s\sRemove\sa\sredundant\sassert(). -D 2012-06-07T17:57:23.952 ++C Merge\strunk\schanges\sinto\sthe\sapple-osx\sbranch. ++D 2012-06-08T01:13:17.906 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f - F Makefile.in 957c9693400fca6cb8b533b589e69ddee7bcb27c -F Makefile.in 4f37eb61be9d38643cdd839a74b8e3bad724cfcf ++F Makefile.in f4e42073f1092a09a9cbd42aecf2f33790208cb5 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 - F Makefile.msc 7849a871b6cdb20fd51baee6bbe5965a03326be4 + F Makefile.msc fd86027849a59a2f621b791b79eabf3f8ffbd684 F Makefile.vxworks 3b7fe7a0571fdadc61363ebc1b23732d2d6363ca F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 - F VERSION 1e25ebddd2ed5811c10bdabe914cd46d2dc38af8 + F VERSION 3e857b9b826e818eec9411eafe2c3fa22c1dbb8a F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 @@@ -78,7 -83,7 +83,7 @@@ F ext/icu/README.txt bf8461d8cdc6b8f514 F ext/icu/icu.c eb9ae1d79046bd7871aa97ee6da51eb770134b5a F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 - F ext/rtree/rtree.c d918e173075fbb3699c5ecfa1a89ef2b9c978b37 -F ext/rtree/rtree.c d17aecb7a92762efa7b1f5d5fd7c88fd77d70827 ++F ext/rtree/rtree.c 950e43bcef7739f3b206e6da78a339ab83b3578c F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e F ext/rtree/rtree1.test e474a2b5eff231496dbd073fe67e5fbaf7f444c9 F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba @@@ -96,12 -101,9 +101,12 @@@ F ext/rtree/rtree_util.tcl 06aab2ed5b82 F ext/rtree/sqlite3rtree.h c34c1e41d1ab80bb8ad09aae402c9c956871a765 F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024 +F ext/sqlrr/README.txt 4239030e73023e72a2e727808cd433577d5bf730 +F ext/sqlrr/sqlrr.c 8d1e6571cd6a6beabdb5bcdfe3a0e723b914db41 +F ext/sqlrr/sqlrr.h 09e4f8929ad9bc2638732c0cc0db5eef8c417824 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 - F main.mk 92babfc15d7838f01b4bf1cc14ea8d9c06772c2b -F main.mk 84ed9c324cf0b8f4eb6f276553d1fd092b5ae0f4 ++F main.mk ad374605041017b90b4e9e55a57bf6f370ba8456 F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac @@@ -116,18 -118,18 +121,18 @@@ F sqlite3.1 6be1ad09113570e1fc8dcaff84c F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad F src/alter.c 149cc80d9257971b0bff34e58fb2263e01998289 F src/analyze.c 70c46504c0d2543ea5cdca01140b2cd3e1d886e7 - F src/attach.c 12c6957996908edc31c96d7c68d4942c2474405f + F src/attach.c 577bf5675b0c50495fc28549f2fcbdb1bac71143 F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 - F src/backup.c 6be23a344d3301ae38e92fddb3a33b91c309fce4 + F src/backup.c d7fb4c6d2ad3fe51a4ce1a897fde7b00f4de5fef F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7 - F src/btree.c 207d4859d759074e6101bfed65cf87cdd3f794a8 -F src/btree.c f0b71054103cb77eb5e782088c16998ec4f06624 ++F src/btree.c 453a91808ad20154ff2ee6ff57e8e563ad093783 F src/btree.h 48a013f8964f12d944d90e4700df47b72dd6d923 F src/btreeInt.h 38a639c0542c29fe8331a221c4aed0cb8686249e - F src/build.c 2bb2163bb1e69f59e9f36a9413079ead42fa1d2c + F src/build.c 47c4506afe4bcb4ed1f4b5357582d1cb3402f8ad F src/callback.c 0cb4228cdcd827dcc5def98fb099edcc9142dbcd F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac - F src/ctime.c a9c26822515f81ec21588cbb482ca6724be02e33 + F src/ctime.c 500d019da966631ad957c37705642be87524463b F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4 F src/delete.c 4c20ea4f6213b3bc1c6a510586864b679946e05e F src/expr.c 06a7733d19dc725dc46ba51afd9feadb4b85d991 @@@ -140,10 -142,10 +145,10 @@@ F src/hash.h 2894c932d84d9f892d4b4023a7 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 F src/insert.c 0bbffe75c254c62a5686ab5e7f88e29235e16174 F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e -F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f +F src/legacy.c 015826a958f690302d27e096a68d50b3657e4201 F src/lempar.c 0ee69fca0be54cd93939df98d2aca4ca46f44416 F src/loadext.c f20382fbaeec832438a1ba7797bee3d3c8a6d51d - F src/main.c 9c3003dc0a5e2c7e1d79cf94a08229dd803fd8df -F src/main.c 07e05ba330b5994fa20d3b2e8c1c146133587d68 ++F src/main.c 0d708b9357776b5c9c36299def91df1d44e31e21 F src/malloc.c fe085aa851b666b7c375c1ff957643dc20a04bf6 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c b3677415e69603d6a0e7c5410a1b3731d55beda1 @@@ -156,37 -158,36 +161,37 @@@ F src/mutex.h 2a79e0c10c26412546b501ee0 F src/mutex_noop.c 7682796b7d8d39bf1c138248858efcd10c9e1553 F src/mutex_os2.c 882d735098c07c8c6a5472b8dd66e19675fe117f F src/mutex_unix.c c3a4e00f96ba068a8dbef34084465979aaf369cc - F src/mutex_w32.c 5e54f3ba275bcb5d00248b8c23107df2e2f73e33 + F src/mutex_w32.c db8970270841e2385a43602477e84c4b19aff1db F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30 -F src/os.c e1acdc09ff3ac2412945cca9766e2dcf4675f31c +F src/os.c 4c8c8d72a6c58ad2fde4865783e8ae26b494a85e - F src/os.h 59beba555b65a450bd1d804220532971d4299f60 + F src/os.h 38aabd5e3ecd4162332076f55bb09cec02165cca F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04 F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440 - F src/os_unix.c 1f91f7309b09950ffdad97dc57d139894904a621 - F src/os_win.c 24b57b4aec07ec78ae759244ab6d9759a70fe29b - F src/pager.c 544cc84d50fea0ca921d448037b217ecabba359b - F src/pager.h 42926ac0fe69e9d7e17a54e6b37417e581a429d7 -F src/os_unix.c d7c96b5d140f550f07345870112fae5d7ef99757 -F src/os_win.c e3d3d3e26b65a35d4293d753137a58510bd3299b -F src/pager.c e381c118b77dc22021a1a59d3fec24815e91df78 -F src/pager.h 8b8c9bc065a3c66769df8724dfdf492ee1aab3c5 ++F src/os_unix.c 767d9ae4edd0ac186a6927f4b4b7e658f50c4542 ++F src/os_win.c 85f7d60e3563efc81a06b075a76b1f9ccada73b0 ++F src/pager.c ca8424ef9b807ab86381c5b0450ce4752670e16e ++F src/pager.h 491e782fbefc83e115f85588987ebb7d00d9fde6 F src/parse.y f29df90bd3adc64b33114ab1de9fb7768fcf2099 F src/pcache.c f8043b433a57aba85384a531e3937a804432a346 F src/pcache.h 1b5dcc3dc8103d03e625b177023ee67764fa6b7c - F src/pcache1.c b30b1c35908346ecc43d8d9d17f2ddf6817f8f60 - F src/pragma.c 29db41fc84bd7853d6c7ef85f9f8bd56a8be4320 - F src/prepare.c 2e49f73ffb38d7ef3302931f17412adab61e46a1 + F src/pcache1.c 2234d84f9c003d800a57f00f8535c91667fa4f6c -F src/pragma.c eee3e3161f82a1e06f632a8d2a82b29ba3c45889 -F src/prepare.c 33291b83cca285718048d219c67b8298501fa3a5 ++F src/pragma.c 6d617d3e19e3cad43d2e2e6335602ecbc0fe631c ++F src/prepare.c 5e2babd80c5771354ffc1eddfea41fc08e43ffed F src/printf.c 7ffb4ebb8b341f67e049695ba031da717b3d2699 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 F src/resolve.c b3c70ab28cac60de33684c9aa9e5138dcf71d6dd F src/rowset.c f6a49f3e9579428024662f6e2931832511f831a1 -F src/select.c f6c4833c4d8e94714761d99013d74f381e084f1d +F src/select.c 7bc4a2e66ae0fc40bb46038441e3e7bf138d7079 F src/shell.c c16f72e34f611f060546709564c121a67cb2b31b - F src/sqlite.h.in 192eb22f3f217c00ff48a8da356a8a020f6b4a8e -F src/sqlite.h.in 39f041ce71a0d994e2487014fc9e8721595f5bc0 ++F src/sqlite.h.in a061e38514ff4a3ef5876126991607829e63f829 +F src/sqlite3_private.h a81a9c5f97c095cc3e86914a05f8fabe0011f4a1 F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477 - F src/sqliteInt.h e68fc7ec857b71836aa73c40b39fb2f0afa6a54a -F src/sqliteInt.h 29b5348f0056d9b46d0bb94d4853db21568afde9 ++F src/sqliteInt.h 81f3ce54d7485b600df4102202390461df947092 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/status.c 35939e7e03abf1b7577ce311f48f682c40de3208 F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e F src/tclsqlite.c fe5406573e1527957e00dcaf51edd9d8bd31b918 - F src/test1.c e1163ebedf8b5c95554ea15529700e1330e6210a -F src/test1.c fc2acf0a2db517c8d19e5e55bda8e1237db77378 ++F src/test1.c 03bcc5724fecac86ea8837e701807a653d82f77d F src/test2.c 4178056dd1e7d70f954ad8a1e3edb71a2a784daf F src/test3.c 3c3c2407fa6ec7a19e24ae23f7cb439d0275a60d F src/test4.c d1e5a5e904d4b444cf572391fdcb017638e36ff7 @@@ -197,9 -198,9 +202,9 @@@ F src/test8.c 235f1d19716fa768c46fc461c F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60 F src/test_async.c 0612a752896fad42d55c3999a5122af10dcf22ad F src/test_autoext.c 30e7bd98ab6d70a62bb9ba572e4c7df347fe645e -F src/test_backup.c c129c91127e9b46e335715ae2e75756e25ba27de +F src/test_backup.c 64fd6173ad99daade1227aa17c3ca0d18fa5e5fa - F src/test_btree.c 47cd771250f09cdc6e12dda5bc71bc0b3abc96e2 - F src/test_config.c 805727b0fec25f9a77aec2ecd6c98f8f25e41748 + F src/test_btree.c 5b89601dcb42a33ba8b820a6b763cc9cb48bac16 -F src/test_config.c 4f7b8030287d62fe56a1d99e68b41760feae381a ++F src/test_config.c a76e8a64c9b4833eb878188e1c490d0e6965d554 F src/test_demovfs.c 20a4975127993f4959890016ae9ce5535a880094 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_func.c 090f2c3339e85c2c964435f99aed6f3da9d59525 @@@ -217,9 -218,9 +222,9 @@@ F src/test_mutex.c a6bd7b9cf6e19d989e31 F src/test_onefile.c 0396f220561f3b4eedc450cef26d40c593c69a25 F src/test_osinst.c 90a845c8183013d80eccb1f29e8805608516edba F src/test_pcache.c a5cd24730cb43c5b18629043314548c9169abb00 - F src/test_quota.c 47cb7b606160ce8f603a7d47143dd1f74de09058 - F src/test_quota.h ee5da2ae7f84d1c8e0e0e2ab33f01d69f10259b5 + F src/test_quota.c 0af3e1e9a1f22bc5f431dd3efcc32762f4109f58 + F src/test_quota.h 8761e463b25e75ebc078bd67d70e39b9c817a0cb -F src/test_rtree.c aba603c949766c4193f1068b91c787f57274e0d9 +F src/test_rtree.c a1bbfc30f14d2bad2f93dbea7dcc697c97a40c66 F src/test_schema.c 8c06ef9ddb240c7a0fcd31bc221a6a2aade58bf0 F src/test_server.c 2f99eb2837dfa06a4aacf24af24c6affdf66a84f F src/test_spellfix.c 495535f3eb57acdc384572da570e869bb1834bf4 @@@ -237,22 -238,22 +242,22 @@@ F src/trigger.c ee7e178fb9188f44b532ceb F src/update.c d3076782c887c10e882996550345da9c4c9f9dea F src/utf.c 890c67dcfcc7a74623c95baac7535aadfe265e84 F src/util.c 4f6cfad661b2e3454b0cdd5b1b9d39a54942d0e3 - F src/vacuum.c bfd53f9bd20a8fdb70b0fa8e77182b866875c0d8 - F src/vdbe.c baed8c1e0525abfdaec81bdb3a8d0174ffcb7f68 + F src/vacuum.c 587a52bb8833d7ac15af8916f25437e2575028bd -F src/vdbe.c f5ad3c06dc3fe647097065829c013f3f1b9eadca ++F src/vdbe.c ae6803fd2e96e11898ee5d98dfa9854b4b53033f F src/vdbe.h 18f581cac1f4339ec3299f3e0cc6e11aec654cdb F src/vdbeInt.h 6ff4180a05683566a8835d12f7ec504b22932c82 -F src/vdbeapi.c 3662b6a468a2a4605a15dfab313baa6dff81ad91 -F src/vdbeaux.c d52c8a424fdd4b1d5cf1ac93cc7cd20da023ec5c +F src/vdbeapi.c bf1f632719ee596d43ccf6c2ed68ff8911f5b376 +F src/vdbeaux.c 88b9df24bcab179fbe7a39df7b3e17cce6f372d7 F src/vdbeblob.c 32f2a4899d67f69634ea4dd93e3f651936d732cb F src/vdbemem.c cb55e84b8e2c15704968ee05f0fae25883299b74 F src/vdbesort.c b25814d385895544ebc8118245c8311ded7f81c9 -F src/vdbetrace.c 79059ebd17b3c8545fab2a24253713e77e4ab392 +F src/vdbetrace.c 6700008a6a05e6e39531ed252c32557ceb962b91 - F src/vtab.c ae657b1c22cff43863458e768a44f915c07bc0e4 + F src/vtab.c bb8ea3a26608bb1357538a5d2fc72beba6638998 -F src/wal.c 7bb3ad807afc7973406c805d5157ec7a2f65e146 -F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6 +F src/wal.c 1ff2ebb47ba29610abd768bf74cecd9c33049ebf +F src/wal.h ce626f1f9000caf09a99a6634a8d794686f92e1b F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f F src/where.c 24c7494d8875ead994b4dfe5461340c27fd424ca -F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823 +F test/8_3_names.test 0ed0f6711fefac33829ef9f1d6ca3c56c48ef1c7 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 F test/all.test 52fc8dee494092031a556911d404ca30a749a30b @@@ -295,10 -296,10 +300,10 @@@ F test/badutf.test d5360fc31f643d37a973 F test/badutf2.test f5bc7f2d280670ecd79b9cf4f0f1760c607fe51f F test/bc_common.tcl 5c8689cc6d2fb44b7c0968ae4f85eb26d50022fa F test/between.test 16b1776c6323faadb097a52d673e8e3d8be7d070 - F test/bigfile.test 82dfe93ee7eb9e2e05641afa2b39ffd947a92ff1 - F test/bigfile2.test 852f948cb492aadab45b58f4d2f3b0832a115cb0 + F test/bigfile.test 8f88b5ef065e31c615c49d725ede94155fbe9609 + F test/bigfile2.test 8a3c242c3c3481e7cde5a6ef2a66fdc367a095f7 F test/bigrow.test f0aeb7573dcb8caaafea76454be3ade29b7fc747 -F test/bind.test 3c7b320969000c441a70952b0b15938fbb66237c +F test/bind.test 30af0fc61bc3836034215cdbdeca46113ca1b4a1 F test/bindxfer.test efecd12c580c14df5f4ad3b3e83c667744a4f7e0 F test/bitvec.test 75894a880520164d73b1305c1c3f96882615e142 F test/blob.test e7ac6c7d3a985cc4678c64f325292529a69ae252 @@@ -311,11 -312,11 +316,11 @@@ F test/boundary3.test 56ef82096b4329aca F test/boundary4.tcl 0bb4b1a94f4fc5ae59b79b9a2b7a140c405e2983 F test/boundary4.test 89e02fa66397b8a325d5eb102b5806f961f8ec4b F test/busy.test 76b4887f8b9160ba903c1ac22e8ff406ad6ae2f0 -F test/cache.test f64136b0893c293d0b910ed057b3b711249099a7 +F test/cache.test 3e50417948e06959aca785db81896b28a38c36dd F test/capi2.test 835d4cee9f542ea50fa8d01f3fe6de80b0627360 - F test/capi3.test 8dedb0050610e9ff95cd9d487beb0ce5f33a31ee + F test/capi3.test 56ab450125ead38846cbae7e5b6a216686c3cffa F test/capi3b.test efb2b9cfd127efa84433cd7a2d72ce0454ae0dc4 - F test/capi3c.test 01f197d73f4d4d66316483662f475cab7ab5bd60 + F test/capi3c.test 93d24621c9ff84da9da060f30431e0453db1cdb0 F test/capi3d.test 17b57ca28be3e37e14c2ba8f787d292d84b724a1 F test/capi3e.test f7408dda65c92b9056199fdc180f893015f83dde F test/cast.test 4c275cbdc8202d6f9c54a3596701719868ac7dc3 @@@ -631,18 -632,18 +637,18 @@@ F test/notnull.test cc7c78340328e6112a1 F test/null.test a8b09b8ed87852742343b33441a9240022108993 F test/openv2.test 0d3040974bf402e19b7df4b783e447289d7ab394 F test/oserror.test 50417780d0e0d7cd23cf12a8277bb44024765df3 - F test/pager1.test 717d4fbe95a704c0b08b22a85b06c077b898416d -F test/pager1.test 2163c6ef119f497a71a84137c957c63763e640ab ++F test/pager1.test f1f261a4dc5a40b385dfcef946c2e772180d12a9 F test/pager2.test 745b911dde3d1f24ae0870bd433dfa83d7c658c1 F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f -F test/pagerfault.test 452f2cc23e3bfcfa935f4442aec1da4fe1dc0442 +F test/pagerfault.test a15ef77c8495882d7debb43794e87b6e46174c8a F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401 F test/pagerfault3.test f16e2efcb5fc9996d1356f7cbc44c998318ae1d7 F test/pageropt.test 9191867ed19a2b3db6c42d1b36b6fbc657cd1ab0 F test/pagesize.test 1dd51367e752e742f58e861e65ed7390603827a0 -F test/pcache.test 065aa286e722ab24f2e51792c1f093bf60656b16 +F test/pcache.test fa8a2b0677225765eced806d9d1676b78a9e2c40 F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025 - F test/permutations.test dbda172249564f43ec556108a704581044c57dbd - F test/pragma.test e284a28b6e9debfb8b55d5413b7c27996e3ae2cd + F test/permutations.test 2af90e00cea9e7e7c0a6b16d34727cb5bbae14dd -F test/pragma.test cb736bcc75b8b629af21ac0ad83ba1d054a2107b ++F test/pragma.test 37d3475b699de6d7846bca81de3d0324b3a45054 F test/pragma2.test 3a55f82b954242c642f8342b17dffc8b47472947 F test/printf.test ec9870c4dce8686a37818e0bf1aba6e6a1863552 F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 @@@ -688,7 -689,7 +694,7 @@@ F test/selectA.test 06d1032fa9009314c95 F test/selectB.test 954e4e49cf1f896d61794e440669e03a27ceea25 F test/selectC.test 871fb55d884d3de5943c4057ebd22c2459e71977 F test/server1.test 46803bd3fe8b99b30dbc5ff38ffc756f5c13a118 - F test/shared.test 9d9b7085f877a8fd4bf3b353f53e52352edbf3f5 -F test/shared.test 1da9dbad400cee0d93f252ccf76e1ae007a63746 ++F test/shared.test 13376ba3be1c5685ab1ec184189adabd15fa70be F test/shared2.test 03eb4a8d372e290107d34b6ce1809919a698e879 F test/shared3.test ebf77f023f4bdaa8f74f65822b559e86ce5c6257 F test/shared4.test 72d90821e8d2fc918a08f16d32880868d8ee8e9d @@@ -729,10 -731,10 +736,10 @@@ F test/sysfault.test c79441d88d23696fbe F test/table.test a59d985ca366e39b17b175f387f9d5db5a18d4e2 F test/tableapi.test 2674633fa95d80da917571ebdd759a14d9819126 F test/tclsqlite.test 1597d353308531527583481d14d9da52ea8ed0af -F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c +F test/tempdb.test 3263e5c3f0604e54d307481e8587327c54544d18 F test/temptable.test 51edd31c65ed1560dd600b1796e8325df96318e2 F test/temptrigger.test 26670ed7a39cf2296a7f0a9e0a1d7bdb7abe936d - F test/tester.tcl 713ddb69b5c2737aa879662e20ec59d708631ec8 -F test/tester.tcl 2665f64c9ce71944b4d41269114e658fb81bda05 ++F test/tester.tcl 6e5ea4e52c6ba767e90903fcc7c4c57a28c08fd4 F test/thread001.test 7cc2ce08f9cde95964736d11e91f9ab610f82f91 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@@ -923,30 -925,30 +930,30 @@@ F test/vtabF.test fd5ad376f5a34fe0891df F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8 F test/vtab_shared.test 82f463886e18d7f8395a4b6167c91815efe54839 - F test/wal.test b03ffe24f722017c493bb512e53956583a271c15 -F test/wal.test a040047d7f2b9f34bc4d597964e5e7c09609c635 -F test/wal2.test d5021064bebfc717fe2bf4db2536ea030b76a773 -F test/wal3.test 6504bbf348b2d6dfade64a064f1050fd617e8706 -F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c -F test/wal5.test f58ed4b8b542f71c7441da12fbd769d99b362437 -F test/wal6.test 2e3bc767d9c2ce35c47106148d43fcbd072a93b3 -F test/wal7.test 2ae8f427d240099cc4b2dfef63cff44e2a68a1bd -F test/wal8.test 5ab217d21f7e5e86af2933a4ffd0d8357cc2c0bd -F test/wal_common.tcl a98f17fba96206122eff624db0ab13ec377be4fe -F test/walbak.test b9f68e39646375c2b877be906babcc15d38b4877 -F test/walbig.test f437473a16cfb314867c6b5d1dbcd519e73e3434 -F test/walcksum.test f5447800a157c9e2234fbb8e80243f0813941bde -F test/walcrash.test 4457436593be8c136f9148487c7dccd5e9013af2 -F test/walcrash2.test 019d60b89d96c1937adb2b30b850ac7e86e5a142 -F test/walcrash3.test 595e44c6197f0d0aa509fc135be2fd0209d11a2c -F test/walfault.test 97394d8de82a99f7abf1c12ed229640607fd0ad2 -F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483 -F test/walmode.test 4022fe03ae6e830583672caa101f046438a0473c -F test/walnoshm.test 84ca10c544632a756467336b7c3b864d493ee496 -F test/walpersist.test 8c6b7e3ec1ba91b5e4dc4e0921d6d3f87cd356a6 -F test/walro.test e6bb27762c9f22601cbb8bff6e0acfd124e74b63 -F test/walshared.test 6dda2293880c300baf5d791c307f653094585761 -F test/walslow.test e7be6d9888f83aa5d3d3c7c08aa9b5c28b93609a -F test/walthread.test a2ed5270eb695284d4ad27d252517bdc3317ee2a ++F test/wal.test 5759631b0e610d616c33cc21124b3395f39cd0c7 +F test/wal2.test 0f616db53cbf93bbd7a8ef8b33f048a2b43d2f0a +F test/wal3.test ae86a92d41d81730278fca0b71368f3e78e9c64a +F test/wal4.test 5755887f321baa4c55de0b91066fa7d0cafcac9d +F test/wal5.test 187ae92cc9ba1ec6803681b9025cad89af1a8c69 +F test/wal6.test c561d1e44c89f9cb458a7b03003ed4baac08ba07 +F test/wal7.test 18cf68ab8010ae0a2baaa48e5b59567a9503e63e +F test/wal8.test a0b7dee73fc3d3bbf167e04533d37df379a0b7d1 +F test/wal_common.tcl 15f152fd55703975878741beca6cfa4209d5b3b3 +F test/walbak.test 67339b9e54db0cdaaf21287349bc8056e2919f96 +F test/walbig.test 3ca3d94751b80054eed5bda20a1339ae1f619483 +F test/walcksum.test 6510e82303f6fffc2c55bb77a7774cd0eed21a6e +F test/walcrash.test a8fa8d8a9a50a49b7abaf8a4a7e2c7ea352c49be +F test/walcrash2.test c032d0040374ae28b41f99fc0cc290b4e2e34f17 +F test/walcrash3.test 97e775404f4c76e5c46f71fbd09691c7e9c25c68 +F test/walfault.test e5309befcaf4ab08151c35dba20cc5b8a5846748 +F test/walhook.test 5d2bdb04fd3e220e2f96e6b566d57e00020bdaec +F test/walmode.test aa45339b4afa435dde5d88e71a95459cc221a3f4 +F test/walnoshm.test 559b878f3aab838971d820329ca35f1caa7b038e +F test/walpersist.test abd956d66e2f36d2d9d05d3a969f48be6d2ddbec +F test/walro.test 180321fa4e7cf7e98b5df232763c3e0781673a41 +F test/walshared.test 04590b10c677f75318701818c50bc0dda5da64ab +F test/walslow.test 658066419a92d3bd85be71a11ce477af4ffe9153 +F test/walthread.test c3aaf9ef7ad21ae79c2345425bfddb39cdac954f F test/where.test 4c9f69987ed2aa0173fa930f2b41ab9879478cd8 F test/where2.test 43d4becaf5a5df854e6c21d624a1cb84c6904554 F test/where3.test 667e75642102c97a00bf9b23d3cb267db321d006 @@@ -977,7 -979,7 +984,7 @@@ F tool/mkkeywordhash.c bb52064aa614e142 F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97 F tool/mksqlite3c-noext.tcl 105023aa86f696a74b1d6a4929d1e1c3baf9471c - F tool/mksqlite3c.tcl 90f243ad9c76f814716452a4867a6a3befdb721a -F tool/mksqlite3c.tcl f289ba51f74f45c71a80c13e6c74a6dd92763253 ++F tool/mksqlite3c.tcl 2139ffe033d586b265e0c0bb0cabe706016b9dda F tool/mksqlite3h.tcl 78013ad79a5e492e5f764f3c7a8ef834255061f8 F tool/mksqlite3internalh.tcl 7b43894e21bcb1bb39e11547ce7e38a063357e87 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091 @@@ -1001,9 -1003,9 +1008,9 @@@ F tool/symbols-mingw.sh 4dbcea7e7476830 F tool/symbols.sh fec58532668296d7c7dc48be9c87f75ccdb5814f F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f - F tool/warnings-clang.sh a8a0a3babda96dfb1ff51adda3cbbf3dfb7266c2 + F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 - P 972e75bb5d7349297b94cec2f19561ee105a22cf - R dc2606f2c7e5fe470f213999e83f4d98 - U adam - Z f9040a054a2aa40cbe8724b598475c77 -P 7caca1939ce70d5b14ae8ca8ff6afb62f8aff361 -R 7d7d8055ffab93415bb0679c51b1e783 ++P ed53b645cc791e2c75885866ecb668fff14f8e7e cfcbf9375fddd0aae0dd17bdc76a710ab77ef667 ++R a2bdb973ff39fb5034d6425a7a821a3b + U drh -Z 4e021c1abd989c10ef460664cb392a3f ++Z 91498d3a538de86f544b60346b3f3742 diff --cc manifest.uuid index 57cce91ce0,04a75c4fc1..7bbb3b26a2 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - ed53b645cc791e2c75885866ecb668fff14f8e7e -cfcbf9375fddd0aae0dd17bdc76a710ab77ef667 ++9d1b8515625ce7fbde170180126bd1a273bb4994 diff --cc src/os_unix.c index 1582173e9f,0f11613b0a..28582f6ac6 --- a/src/os_unix.c +++ b/src/os_unix.c @@@ -3855,10 -3441,10 +3863,10 @@@ static int unixTruncate(sqlite3_file *i rc = robust_ftruncate(pFile->h, (off_t)nByte); if( rc ){ - pFile->lastErrno = errno; + storeLastErrno(pFile, errno); return unixLogError(SQLITE_IOERR_TRUNCATE, "ftruncate", pFile->zPath); }else{ - #ifndef NDEBUG + #ifdef SQLITE_DEBUG /* If we are doing a normal write to a database file (as opposed to ** doing a hot-journal rollback or a write to some file other than a ** normal database file) and we truncate the file to zero length, @@@ -3962,305 -3548,6 +3970,308 @@@ static int fcntlSizeHint(unixFile *pFil return SQLITE_OK; } + +#if (SQLITE_ENABLE_APPLE_SPI>0) && defined(__APPLE__) +#include "sqlite3_private.h" +#include +static int getDbPathForUnixFile(unixFile *pFile, char *dbPath); +#endif ++ ++#if SQLITE_ENABLE_LOCKING_STYLE +static int isProxyLockingMode(unixFile *); ++#endif + +#if (SQLITE_ENABLE_APPLE_SPI>0) && defined(__APPLE__) +static int unixTruncateDatabase(unixFile *, int); + +static int unixInvalidateSupportFiles(unixFile *, int); + +static int findCreateFileMode(const char *, int, mode_t*, uid_t *,gid_t *); + +/* opens a read/write connection to a file zName inheriting the appropriate +** user/perms from the database file if running as root. Returns the file +** descriptor by reference +*/ +static int unixOpenChildFile( + const char *zName, + int openFlags, + int dbOpenFlags, + int protFlags, + int *pFd +){ + int fd = -1; + mode_t openMode; /* Permissions to create file with */ + uid_t uid; /* Userid for the file */ + gid_t gid; /* Groupid for the file */ + int rc; + + assert(pFd!=NULL); + rc = findCreateFileMode(zName, dbOpenFlags, &openMode, &uid, &gid); + if( rc!=SQLITE_OK ){ + return rc; + } + fd = robust_open(zName, openFlags, openMode); + OSTRACE(("OPENX %-3d %s 0%o\n", fd, zName, openFlags)); + if( fd<0 ){ + rc = unixLogError(SQLITE_CANTOPEN_BKPT, "open", zName); + return rc; + } + /* if we're opening the wal or journal and running as root, set + ** the journal uid/gid */ + if( dbOpenFlags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) ){ + uid_t euid = geteuid(); + if( euid==0 && (euid!=uid || getegid()!=gid) ){ + if( fchown(fd, uid, gid) ){ + rc = SQLITE_CANTOPEN_BKPT; + } + } + } + if( rc==SQLITE_OK ){ + *pFd = fd; + } else { + *pFd = -1; + close(fd); + } + return rc; +} + +static int unixReplaceDatabase(unixFile *pFile, sqlite3 *srcdb) { + sqlite3_file *id = (sqlite3_file *)pFile; + Btree *pSrcBtree = NULL; + sqlite3_file *src_file = NULL; + unixFile *pSrcFile = NULL; + char srcWalPath[MAXPATHLEN+5]; + int srcWalFD = -1; + int rc = SQLITE_OK; + void *pLock = NULL; + int flags = 0; + sqlite3 *srcdb2 = NULL; + copyfile_state_t s; + int corruptSrcFileLock = 0; + int corruptDstFileLock = 0; + int isSrcCorrupt = 0; + int isDstCorrupt = 0; + + if( !sqlite3SafetyCheckOk(srcdb) ){ + return SQLITE_MISUSE; + } + +#if SQLITE_ENABLE_DATA_PROTECTION + flags |= pFile->protFlags; +#endif +#if SQLITE_ENABLE_LOCKING_STYLE + if( isProxyLockingMode(pFile) ){ + flags |= SQLITE_OPEN_AUTOPROXY; + } +#endif + + rc = sqlite3demo_superlock(pFile->zPath, 0, flags, 0, 0, &pLock); + if( rc ){ + if( rc==SQLITE_CORRUPT || rc==SQLITE_NOTADB ){ + isDstCorrupt = 1; + rc = sqlite3demo_superlock_corrupt(id, SQLITE_LOCK_EXCLUSIVE, + &corruptDstFileLock); + } + if( rc ){ + return rc; + } + } + /* get the src file descriptor adhering to the db struct access rules + ** this code is modeled after sqlite3_file_control() in main.c + */ + sqlite3_mutex_enter(srcdb->mutex); + if( srcdb->nDb>0 ){ + pSrcBtree = srcdb->aDb[0].pBt; + } + if( pSrcBtree ){ + Pager *pSrcPager; + sqlite3BtreeEnter(pSrcBtree); + pSrcPager = sqlite3BtreePager(pSrcBtree); + assert( pSrcPager!=0 ); + src_file = sqlite3PagerFile(pSrcPager); + assert( src_file!=0 ); + if( src_file->pMethods ){ + int srcFlags = 0; + pSrcFile = (unixFile *)src_file; +#if SQLITE_ENABLE_LOCKING_STYLE || defined(__APPLE__) + if ((pSrcFile->openFlags & O_RDWR) == O_RDWR) { + srcFlags = SQLITE_OPEN_READWRITE; + } else { + srcFlags = SQLITE_OPEN_READONLY; + } +#else + srcFlags = SQLITE_OPEN_READWRITE; +#endif +#if SQLITE_ENABLE_DATA_PROTECTION + srcFlags |= pSrcFile->protFlags; +#endif +#if SQLITE_ENABLE_LOCKING_STYLE + if( isProxyLockingMode(pSrcFile) ){ + srcFlags |= SQLITE_OPEN_AUTOPROXY; + } +#endif + rc = sqlite3_open_v2(pSrcFile->zPath, &srcdb2, srcFlags, 0); + if( rc==SQLITE_OK ){ + /* start a deferred transaction and read to establish a read lock */ + rc = sqlite3_exec(srcdb2, "BEGIN DEFERRED; PRAGMA schema_version", + 0, 0, 0); + if( rc==SQLITE_CORRUPT || rc==SQLITE_NOTADB ){ + isSrcCorrupt = 1; + rc = sqlite3demo_superlock_corrupt(src_file, SQLITE_LOCK_SHARED, + &corruptSrcFileLock); + } + } + } + } + if( !srcdb2 || pSrcFile==NULL || pSrcFile->h<0){ + rc = SQLITE_INTERNAL; + } + if( rc!=SQLITE_OK ){ + goto end_replace_database; + } + /* both databases are locked appropriately, copy the src wal journal if + ** one exists and then the actual database file + */ + strlcpy(srcWalPath, pSrcFile->zPath, MAXPATHLEN+5); + strlcat(srcWalPath, "-wal", MAXPATHLEN+5); + srcWalFD = open(srcWalPath, O_RDONLY); + if( !(srcWalFD<0) ){ + char dstWalPath[MAXPATHLEN+5]; + int dstWalFD = -1; + int protFlags = 0; + strlcpy(dstWalPath, pFile->zPath, MAXPATHLEN+5); + strlcat(dstWalPath, "-wal", MAXPATHLEN+5); + + rc = unixOpenChildFile(dstWalPath, O_RDWR|O_CREAT, SQLITE_OPEN_WAL, + protFlags, &dstWalFD); + if( rc==SQLITE_OK ){ + s = copyfile_state_alloc(); + lseek(srcWalFD, 0, SEEK_SET); + lseek(dstWalFD, 0, SEEK_SET); + if( fcopyfile(srcWalFD, dstWalFD, s, COPYFILE_DATA) ){ + int err=errno; + switch(err) { + case ENOMEM: + rc = SQLITE_NOMEM; + break; + default: + storeLastErrno(pFile, err); + rc = SQLITE_IOERR; + } + } + copyfile_state_free(s); + close(dstWalFD); + } + close(srcWalFD); + } + if( rc==SQLITE_OK ){ + /* before we copy, ensure that the file change counter will be modified */ + uint32_t srcChange = 0; + uint32_t dstChange = 0; + pread(pSrcFile->h, &srcChange, 4, 24); + pread(pFile->h, &dstChange, 4, 24); + + /* copy the actual database */ + s = copyfile_state_alloc(); + lseek(pSrcFile->h, 0, SEEK_SET); + lseek(pFile->h, 0, SEEK_SET); + if( fcopyfile(pSrcFile->h, pFile->h, s, COPYFILE_DATA) ){ + int err=errno; + switch(err) { + case ENOMEM: + rc = SQLITE_NOMEM; + break; + default: + storeLastErrno(pFile, err); + rc = SQLITE_IOERR; + } + } + copyfile_state_free(s); + + if (srcChange == dstChange) { + /* modify the change counter to force page zero to be reloaded */ + dstChange ++; + pwrite(pFile->h, &dstChange, 4, 24); + } + } + if( isSrcCorrupt ){ + sqlite3demo_superunlock_corrupt(src_file, corruptSrcFileLock); + }else{ + /* done with the source db so end the transaction */ + sqlite3_exec(srcdb2, "COMMIT", 0, 0, 0); + } + /* zero out any old journal clutter */ + if( rc==SQLITE_OK ){ + int skipWAL = (srcWalFD<0)?0:1; + unixInvalidateSupportFiles(pFile, skipWAL); + } + +end_replace_database: + if( pSrcBtree ){ + sqlite3_close(srcdb2); + sqlite3BtreeLeave(pSrcBtree); + } + sqlite3_mutex_leave(srcdb->mutex); + if( isDstCorrupt ){ + sqlite3demo_superunlock_corrupt(id, corruptDstFileLock); + }else{ + sqlite3demo_superunlock(pLock); + } + return rc; +} +#define SQLITE_FILE_HEADER_LEN 16 +/* Check for a conflicting lock. If one is found, print an this + ** on standard output using the format string given and return 1. + ** If there are no conflicting locks, return 0. + */ +static int unixIsLocked( + pid_t pid, /* PID to test for lock owner */ + int h, /* File descriptor to check */ + int type, /* F_RDLCK or F_WRLCK */ + unsigned int iOfst, /* First byte of the lock */ + unsigned int iCnt, /* Number of bytes in the lock range */ + const char *zType /* Type of lock */ +){ + struct flock lk; + int err; + + memset(&lk, 0, sizeof(lk)); + lk.l_type = type; + lk.l_whence = SEEK_SET; + lk.l_start = iOfst; + lk.l_len = iCnt; + + if( pid!=SQLITE_LOCKSTATE_ANYPID ){ +#ifndef F_GETLKPID +# warning F_GETLKPID undefined, _sqlite3_lockstate falling back to F_GETLK + err = fcntl(h, F_GETLK, &lk); +#else + lk.l_pid = pid; + err = fcntl(h, F_GETLKPID, &lk); +#endif + }else{ + err = fcntl(h, F_GETLK, &lk); + } + + if( err==(-1) ){ + fprintf(stderr, "fcntl(%d) failed: errno=%d\n", h, errno); + return -1; + } + + if( lk.l_type!=F_UNLCK && (pid==SQLITE_LOCKSTATE_ANYPID || lk.l_pid==pid) ){ +#ifdef SQLITE_DEBUG + fprintf(stderr, "%s lock held by %d\n", zType, (int)lk.l_pid); +#endif + return 1; + } + return 0; +} + +static int unixLockstatePid(unixFile *, pid_t, int *); + +#endif /* (SQLITE_ENABLE_APPLE_SPI>0) && defined(__APPLE__) */ + + /* ** If *pArg is inititially negative then this is a query. Set *pArg to ** 1 or 0 depending on whether or not bit mask of pFile->ctrlFlags is set. @@@ -4575,8 -3842,6 +4586,10 @@@ static void unixShmPurge(unixFile *pFd) } } ++#if defined(__APPLE__) && SQLITE_ENABLE_LOCKING_STYLE +static const char *proxySharedMemoryBasePath(unixFile *); ++#endif + /* ** Open a shared-memory area associated with open database file pDbFd. ** This particular implementation uses mmapped files. @@@ -4711,17 -3963,6 +4724,15 @@@ static int unixOpenSharedMemory(unixFil if( unixShmSystemLock(pShmNode, F_WRLCK, UNIX_SHM_DMS, 1)==SQLITE_OK ){ if( robust_ftruncate(pShmNode->h, 0) ){ rc = unixLogError(SQLITE_IOERR_SHMOPEN, "ftruncate", zShmFilename); + }else{ + /* If running as root set the uid/gid of the shm file to match + ** the database */ + uid_t euid = geteuid(); + if( (!pShmNode->isReadonly) && euid==0 && (euid!=sStat.st_uid || getegid()!=sStat.st_gid) ){ + if( osFchown(pShmNode->h, sStat.st_uid, sStat.st_gid) ){ + rc = SQLITE_IOERR_SHMOPEN; - }else{ - pDbFd->ctrlFlags |= UNIXFILE_CHOWN; + } + } } } if( rc==SQLITE_OK ){ @@@ -6343,17 -5157,13 +6354,17 @@@ static int unixOpen rc = unixLogError(SQLITE_CANTOPEN_BKPT, "open", zName); goto open_finished; } + - /* If this process is running as root and if creating a new rollback - ** journal or WAL file, set the ownership of the journal or WAL to be - ** the same as the original database. - */ - if( flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL) ){ - osFchown(fd, uid, gid); + /* if we're opening the wal or journal and running as root, set the + ** journal uid/gid */ + if( !isReadonly && (flags & (SQLITE_OPEN_WAL|SQLITE_OPEN_MAIN_JOURNAL)) ){ + uid_t euid = geteuid(); + if( euid==0 && (euid!=uid || getegid()!=gid) ){ + if( osFchown(fd, uid, gid) ){ + rc = SQLITE_CANTOPEN_BKPT; + goto open_finished; + } - p->ctrlFlags |= UNIXFILE_CHOWN; + } } } assert( fd>=0 ); @@@ -7049,28 -5851,6 +7060,32 @@@ static int proxyCreateLockPath(const ch return 0; } ++#if SQLITE_ENABLE_LOCKING_STYLE +static int isProxyLockingMode(unixFile *pFile) { + return (pFile->pMethod == &proxyIoMethods) ? 1 : 0; +} ++#endif + ++#if defined(__APPLE__) && SQLITE_ENABLE_LOCKING_STYLE +/* +** Return the shared memory base path based on the lock proxy file if the +** lock proxy file is hosted on a shared memory compatible FS +*/ +static const char *proxySharedMemoryBasePath(unixFile *pFile) { + proxyLockingContext *pCtx; + unixFile *pLockFile; + + assert(pFile!=NULL && pFile->lockingContext!=NULL); + assert(pFile->pMethod == &proxyIoMethods); + pCtx = ((proxyLockingContext *)(pFile->lockingContext)); + pLockFile = pCtx->lockProxy; + if( pLockFile->pMethod->iVersion>=2 && pLockFile->pMethod->xShmMap!=0 ){ + return pCtx->lockProxyPath; + } + return NULL; +} ++#endif + /* ** Create a new VFS file descriptor (stored in memory obtained from ** sqlite3_malloc) and open the file named "path" in the file descriptor. diff --cc src/pager.h index e90304cf1b,2b60e058da..0c72c9d5e8 --- a/src/pager.h +++ b/src/pager.h @@@ -151,10 -151,9 +151,10 @@@ int sqlite3PagerCloseWal(Pager *pPager) u8 sqlite3PagerIsreadonly(Pager*); int sqlite3PagerRefcount(Pager*); int sqlite3PagerMemUsed(Pager*); - const char *sqlite3PagerFilename(Pager*); + const char *sqlite3PagerFilename(Pager*, int); const sqlite3_vfs *sqlite3PagerVfs(Pager*); sqlite3_file *sqlite3PagerFile(Pager*); +sqlite3_file *sqlite3PagerWalFile(Pager *pPager); const char *sqlite3PagerJournalname(Pager*); int sqlite3PagerNosync(Pager*); void *sqlite3PagerTempSpace(Pager*); diff --cc test/pager1.test index 70d42a76df,61a0c0ccdb..c393cafe78 --- a/test/pager1.test +++ b/test/pager1.test @@@ -535,9 -545,6 +545,8 @@@ proc copy_on_mj_delete {method filenam return SQLITE_OK } - set pwd [get_pwd] +if {![forced_proxy_locking]} { + # proxy locking uses can't deal with auto proxy file paths longer than MAXPATHLEN foreach {tn1 tcl} { 1 { set prefix "test.db" } 2 {