]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge all the latest trunk changes into the apple-osx branch.
authordrh <drh@noemail.net>
Tue, 2 Aug 2011 18:25:20 +0000 (18:25 +0000)
committerdrh <drh@noemail.net>
Tue, 2 Aug 2011 18:25:20 +0000 (18:25 +0000)
FossilOrigin-Name: 77376b332b4460208f837f7bdf6df8c90d5071d5

19 files changed:
1  2 
Makefile.in
main.mk
manifest
manifest.uuid
src/os.c
src/os_unix.c
src/select.c
src/sqlite.h.in
src/sqliteInt.h
src/test1.c
src/test_config.c
src/vdbe.c
src/vdbeapi.c
src/wal.c
test/multiplex.test
test/tester.tcl
test/wal3.test
test/wal5.test
test/wal6.test

diff --cc Makefile.in
Simple merge
diff --cc main.mk
Simple merge
diff --cc manifest
index 3708a4362ebb35505d0d30353ec5ef4dd54246ba,c87f2c9cc00ffcf3c2ca36e3c4cd348d06f98220..411227dd8e26c462cf1c03fa13966314915cd67d
+++ b/manifest
@@@ -1,12 -1,12 +1,12 @@@
- C Changes\sto\smake\spragma\ssynchronous\ssticky\swhen\sSQLITE_DEFAULT_WAL_SAFETYLEVEL\sis\sused
- D 2011-06-25T21:43:15.946
 -C Make\ssure\sIS\sNOT\sNULL\sconstraints\swork\son\svirtual\stables.\nFix\sfor\sticket\s[6c14288a473ceff].
 -D 2011-08-02T01:57:39.661
++C Merge\sall\sthe\slatest\strunk\schanges\sinto\sthe\sapple-osx\sbranch.
++D 2011-08-02T18:25:20.857
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
- F Makefile.in 8410b02448997eb43bdf0ffa482c9bc2d2624e45
 -F Makefile.in 1e6988b3c11dee9bd5edc0c804bd4468d74a9cdc
++F Makefile.in 2aed3fdeed9a8ab56f07e35c2486b789d1fa9fad
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
- F Makefile.msc 11082f65b452b908d93013292c17850378c39284
+ F Makefile.msc 8e04f517922b9e31a5bf975f07bb66df79ae7076
  F Makefile.vxworks c85ec1d8597fe2f7bc225af12ac1666e21379151
  F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
- F VERSION 3fcdd7fbe3eb282df3978fe77288544543767961
+ F VERSION f724de7326e87b7f3b0a55f16ef4b4d993680d54
  F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
  F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
  F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248
@@@ -102,12 -102,9 +102,12 @@@ F ext/rtree/rtree_util.tcl 06aab2ed5b82
  F ext/rtree/sqlite3rtree.h 1af0899c63a688e272d69d8e746f24e76f10a3f0
  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 b2f00a81c37fbce7098d77c58eb816d9bd94d3d3
 -F main.mk 50adb7368bd0faa888eb4634b874d542d44f3de3
++F main.mk 2c6142be5deca401db225d41945d49bf9c4fb9a3
  F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
  F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f
  F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac
@@@ -127,34 -124,34 +127,34 @@@ F src/auth.c 523da7fb4979469955d822ff92
  F src/backup.c 986c15232757f2873dff35ee3b35cbf935fc573c
  F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef
  F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
 -F src/btree.c 8c46f0ab69ad9549c75a3a91fed87abdaa743e2f
 +F src/btree.c e09181860cc8b32ac3c767b0747a5ee66104817b
  F src/btree.h f5d775cd6cfc7ac32a2535b70e8d2af48ef5f2ce
  F src/btreeInt.h 67978c014fa4f7cc874032dd3aacadd8db656bc3
- F src/build.c 5a428625d21ad409514afb40ad083bee25dd957a
+ F src/build.c 5e614e586d9f8a81c16c80b545b9e1747f96c1bb
  F src/callback.c 0425c6320730e6d3981acfb9202c1bed9016ad1a
  F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
  F src/ctime.c 7deec4534f3b5a0c3b4a4cbadf809d321f64f9c4
- F src/date.c d3c11de76392ea62637bfac0f4655889fc2f5a85
- F src/delete.c 4925f9121525fc871f5d8d13c1f7dcc91abb38bb
- F src/expr.c ab46ab0f0c44979a8164ca31728d7d10ae5e8106
+ F src/date.c a3c6842bad7ae632281811de112a8ba63ff08ab3
+ F src/delete.c ff68e5ef23aee08c0ff528f699a19397ed8bbed8
+ F src/expr.c 4bbdfaf66bc614be9254ce0c26a17429067a3e07
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c 9fabba17a4d4778dc660f0cb9d781fc86d7b9d41
+ F src/fkey.c c8492fed772af1ed61251582707266227612b45b
 -F src/func.c 59bb046d7e3df1ab512ac339ccb0a6f996a17cb7
 +F src/func.c 1b9d471b632d8529e0f86b7bd2b918dcc2cb1097
  F src/global.c c70a46f28680f8d7c097dbc0430ccf3b932e90b0
  F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
  F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
  F src/insert.c 3eea5a53d2644116fb865afaa4699fabe62b441c
  F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e
 -F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
 +F src/legacy.c 015826a958f690302d27e096a68d50b3657e4201
  F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
- F src/loadext.c 3ae0d52da013a6326310655be6473fd472347b85
+ F src/loadext.c 99a161b27a499fc8ad40745b7b1900a26f0a5f51
 -F src/main.c fa654e1802e14a5f6c09c37971c3b69c1001d9c8
 +F src/main.c a5414c66da45e65518e9f84e9cfe4ac1ff30ea06
  F src/malloc.c 591aedb20ae40813f1045f2ef253438a334775d9
  F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 -F src/mem1.c 00bd8265c81abb665c48fea1e0c234eb3b922206
 +F src/mem1.c 46095d62b241466ef51970e592aa3a7a87e443e1
  F src/mem2.c e307323e86b5da1853d7111b68fd6b84ad6f09cf
- F src/mem3.c 9b237d911ba9904142a804be727cc6664873f8a3
+ F src/mem3.c 61c9d47b792908c532ca3a62b999cf21795c6534
  F src/mem5.c c2c63b7067570b00bf33d751c39af24182316f7f
  F src/memjournal.c 0ebce851677a7ac035ba1512a7e65851b34530c6
  F src/mutex.c 6949180803ff05a7d0e2b9334a95b4fb5a00e23f
@@@ -164,35 -161,34 +164,35 @@@ F src/mutex_os2.c 882d735098c07c8c6a547
  F src/mutex_unix.c b4f4e923bb8de93ec3f251fadb50855f23df9579
  F src/mutex_w32.c 5e54f3ba275bcb5d00248b8c23107df2e2f73e33
  F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30
- F src/os.c 1663f3754a3da185369a121a4f417762f77880b6
 -F src/os.c fcc717427a80b2ed225373f07b642dc1aad7490b
++F src/os.c af614089eb9328f3a6a8374d2e4c12ff2761988b
  F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
- F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
+ F src/os_common.h 65a897143b64667d23ed329a7984b9b405accb58
  F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
- F src/os_unix.c af3aa6c091f501a590b45c95aa6af269ce728a94
- F src/os_win.c eafcd6b91cf204a7ef29ac1ef2a1b7132e132e58
 -F src/os_unix.c 51caec436f811fa387a85cf7b05f13962c7fe0dc
++F src/os_unix.c f7883504e103e121d3acf7f4fd4fbddec4f5e625
+ F src/os_win.c 60af92b1b1cc7aee13f5e0b5f9dde2d7abb41354
 -F src/pager.c 120550e7ef01dafaa2cbb4a0528c0d87c8f12b41
 +F src/pager.c e3688b37e781e8e069ed6375299da82a34a41794
  F src/pager.h 3f8c783de1d4706b40b1ac15b64f5f896bcc78d1
  F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
  F src/pcache.c 49e718c095810c6b3334e3a6d89970aceaddefce
  F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
  F src/pcache1.c 912bd5687d6df344698d8e69560f347b6e21c18a
 -F src/pragma.c ebcd20f1e654f5cb3aeef864ed69c4697719fbaa
 -F src/prepare.c e64261559a3187698a3e7e6c8b001a4f4f98dab4
 +F src/pragma.c 66661dbe8428dd3215bd4c8f8a43dd3326e0bf6f
 +F src/prepare.c 9d7403fe75fefa134351b41400d09ba1b189134b
  F src/printf.c 585a36b6a963df832cfb69505afa3a34ed5ef8a1
  F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
- F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706
+ F src/resolve.c 36368f44569208fa074e61f4dd0b6c4fb60ca2b4
  F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
- F src/select.c 75b7dd8c6a5ff9b8ec3f7ed51d31af8b30f114bc
- F src/shell.c 0e0173b3e79d956368013e759f084caa7995ecb1
- F src/sqlite.h.in dc26f18c71a30680b163317aa3d068e3aa02980c
 -F src/select.c d219c4b68d603cc734b6f9b1e2780fee12a1fa0d
++F src/select.c 015f2371832c921254220f9f15568f66601935f6
+ F src/shell.c bbe7818ff5bc8614105ceb81ad67b8bdc0b671dd
 -F src/sqlite.h.in 0b3cab7b2ea51f58396e8871fa5f349cfece5330
++F src/sqlite.h.in 4f475c9bcbf8dcee7b7714cff2b339fe538a005d
 +F src/sqlite3_private.h 1d18557420cb0cc51ff31ec0a3fcce11e5cd6f5a
- F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754
- F src/sqliteInt.h 7240bba17d8f49a667d67bdbbe4cdf898536fc61
+ F src/sqlite3ext.h 1a1a4f784aa9c3b00edd287940197de52487cd93
 -F src/sqliteInt.h ba4a6d6288efb25b84bc0d7d0aaf80f9b42523ba
++F src/sqliteInt.h 5c29fe37ecd1b105fba48956855e23798477d266
  F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
  F src/status.c 7ac64842c86cec2fc1a1d0e5c16d3beb8ad332bf
  F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
- F src/tclsqlite.c 5db825be61708b1a2b3f8f6e185e9b753829acef
- F src/test1.c 4671911a936bc2c9a845bf32f70d770e7a5cd0b8
+ F src/tclsqlite.c c355b33803fb756dc09297ec84d19604301fa622
 -F src/test1.c e7ea726d26b9007bae7907d8b40280c70ec6c504
++F src/test1.c 0b610fa55524110c08484a3d418d79eb40fde5ae
  F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31
  F src/test3.c 124ff9735fb6bb7d41de180d6bac90e7b1509432
  F src/test4.c d1e5a5e904d4b444cf572391fdcb017638e36ff7
@@@ -203,9 -199,9 +203,9 @@@ F src/test8.c 6b1d12912a04fe6fca8c45bb9
  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 90707f2dd59c01f11bbbbb168833fdef73f1e5de
 -F src/test_config.c b4648b103586d2ae863056080c657680f6fa4825
++F src/test_config.c e870ccc14e3dceb9a067645d19787a6644dafa1b
  F src/test_demovfs.c 20a4975127993f4959890016ae9ce5535a880094
  F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
  F src/test_func.c cbdec5cededa0761daedde5baf06004a9bf416b5
@@@ -237,24 -233,24 +237,24 @@@ F src/test_vfstrace.c 0b884e06094a746da
  F src/test_wholenumber.c 6129adfbe7c7444f2e60cc785927f3aa74e12290
  F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
  F src/tokenize.c c819d9f72168a035d545a5bdafe9b085b20df705
- F src/trigger.c c836a6caac16ba96611558922106858f6ca3d6bf
- F src/update.c 80d77311d91ebc06b27149e75701f1b3e9356622
+ F src/trigger.c 1cfb80e2290ef66ea89cb4e821caae65a02c0d56
+ F src/update.c 74a6cfb34e9732c1e2a86278b229913b4b51eeec
  F src/utf.c c53eb7404b3eb5c1cbb5655c6a7a0e0ce6bd50f0
- F src/util.c 0f33bbbdfcc4a2d8cf20c3b2a16ffc3b57c58a70
+ F src/util.c 06302ffd2b80408d4f6c7af71f7090e0cf8d8ff7
  F src/vacuum.c 05513dca036a1e7848fe18d5ed1265ac0b32365e
- F src/vdbe.c 80d511d7096918f4f6be6a63988a885c54dd1048
 -F src/vdbe.c a9ced64f380bbd8b04da3a1c3a9602d3942704b5
++F src/vdbe.c 30e1d38a118f156a5af4718fc67cb8710e16d72e
  F src/vdbe.h 5cf09e7ee8a3f7d93bc51f196a96550786afe7a1
  F src/vdbeInt.h ad84226cc0adcb1185c22b70696b235a1678bb45
- F src/vdbeapi.c 7f01db7d26758b2be316116f8325a0b9f0d8edd6
- F src/vdbeaux.c 0b2e2880f13af400a27c92a7673287c3eaec8b21
 -F src/vdbeapi.c 11dc47987abacb76ad016dcf5abc0dc422482a98
++F src/vdbeapi.c 335435e65443f38d3073b5043e80cbbb7090c2d9
+ F src/vdbeaux.c 4d100407e3c72e163854aff8903d19d5ecdf46c0
  F src/vdbeblob.c f024f0bf420f36b070143c32b15cc7287341ffd3
  F src/vdbemem.c 0498796b6ffbe45e32960d6a1f5adfb6e419883b
 -F src/vdbetrace.c 5d0dc3d5fd54878cc8d6d28eb41deb8d5885b114
 +F src/vdbetrace.c 4b92fe7355f682368203d29b2be7125cbab85e79
  F src/vtab.c 901791a47318c0562cd0c676a2c6ff1bc530e582
- F src/wal.c 876f9b68df44e65a32c5106010a0a95ee554a284
 -F src/wal.c 3154756177d6219e233d84291d5b05f4e06ff5e9
 -F src/wal.h 66b40bd91bc29a5be1c88ddd1f5ade8f3f48728a
++F src/wal.c 92c7c876b026d5e38fab3ce332e49266ffcf8b2b
 +F src/wal.h e75d87752bd5df3dc4152ee2cb3b0dcd0b309e5e
  F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f
- F src/where.c 55403ce19c506be6a321c7f129aff693d6103db5
+ F src/where.c 7d09f4c1512affb60cc1190a4b33d121d4ce039a
  F test/8_3_names.test b93687beebd17f6ebf812405a6833bae5d1f4199
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
  F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
@@@ -394,12 -391,12 +395,12 @@@ F test/enc3.test 5c550d59ff31dccdba5d1a
  F test/enc4.test b145fa25feb56ea1d51a5bc43ca268c0cf691a67
  F test/eqp.test f14fadd76da53405e9885e2431cacf7191d83cdb
  F test/eval.test bc269c365ba877554948441e91ad5373f9f91be3
 -F test/exclusive.test 53e1841b422e554cecf0160f937c473d6d0e3062
 +F test/exclusive.test 897074dc6706b0c4f3b1dc4580ffddffe2a79206
  F test/exclusive2.test 343d55130c12c67b8bf10407acec043a6c26c86b
  F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7
- F test/exists.test 5e2d64b4eb5a9d08876599bdae2e1213d2d12e2a
+ F test/exists.test 8f7b27b61c2fbe5822f0a1f899c715d14e416e30
  F test/expr.test 67c9fd6f8f829e239dc8b0f4a08a73c08b09196d
 -F test/fallocate.test 43dc34b8c24be6baffadc3b4401ee15710ce83c6
 +F test/fallocate.test 95a45d7a705ab985a62ceed8ac7b145fcb61154e
  F test/filectrl.test 97003734290887566e01dded09dc9e99cb937e9e
  F test/filefmt.test f178cfc29501a14565954c961b226e61877dd32c
  F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da
@@@ -504,11 -501,11 +505,11 @@@ F test/in3.test 3cbf58c87f4052cee3a58b3
  F test/in4.test 64f3cc1acde1b9161ccdd8e5bde3daefdb5b2617
  F test/incrblob.test 76e787ca3301d9bfa6906031c626d26f8dd707de
  F test/incrblob2.test edc3a96e557bd61fb39acc8d2edd43371fbbaa19
 -F test/incrblob3.test aedbb35ea1b6450c33b98f2b6ed98e5020be8dc7
 +F test/incrblob3.test 086482e7937202be9f8cf327117a042d8628fe7d
- F test/incrblob_err.test c577c91d4ed9e8336cdb188b15d6ee2a6fe9604e
+ F test/incrblob_err.test d2562d2771ebffd4b3af89ef64c140dd44371597
  F test/incrblobfault.test 917c0292224c64a56ef7215fd633a3a82f805be0
  F test/incrvacuum.test 453d1e490d8f5ad2c9b3a54282a0690d6ae56462
 -F test/incrvacuum2.test ae04573b73ad52179f56e194fff0fbe43b509d23
 +F test/incrvacuum2.test 08b23884a3acc8f5027385adafede3a0b044e3f9
  F test/incrvacuum_ioerr.test 57d2f5777ab13fa03b87b262a4ea1bad5cfc0291
  F test/index.test b5429732b3b983fa810e3ac867d7ca85dae35097
  F test/index2.test ee83c6b5e3173a3d7137140d945d9a5d4fdfb9d6
@@@ -599,7 -595,7 +600,7 @@@ F test/misc5.test 9f9338f8211c7f5d1cbe1
  F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
  F test/misc7.test 29032efcd3d826fbd409e2a7af873e7939f4a4e3
  F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33
- F test/multiplex.test afd41c4fcf132a8940761c7852b427c37705e4bb
 -F test/multiplex.test b45367b1dac7dfa4c5b8ff0f3844260804a0034d
++F test/multiplex.test 0577b94b3c93d3a07dcc4bde71bf6b75064542af
  F test/mutex1.test 78b2b9bb320e51d156c4efdb71b99b051e7a4b41
  F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660
  F test/nan.test dc212a22b36109fd1ae37154292444ef249c5ec2
@@@ -620,8 -616,8 +621,8 @@@ F test/pageropt.test 8146bf448cf09e87bb
  F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb
  F test/pcache.test 065aa286e722ab24f2e51792c1f093bf60656b16
  F test/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16
- F test/permutations.test 1e8892ebf1bd6e9e8036f4841c72a91bf72da74a
+ F test/permutations.test aae89941ca0968b53633c97b5dd0d6f9f9899d27
 -F test/pragma.test fdfc09067ea104a0c247a1a79d8093b56656f850
 +F test/pragma.test 6c4b98a9f5e3fbc23631fcbfa53b095f3955ca72
  F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47
  F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea
  F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301
@@@ -660,10 -656,10 +661,10 @@@ F test/select7.test dad6f00f0d49728a879
  F test/select8.test 391de11bdd52339c30580dabbbbe97e3e9a3c79d
  F test/select9.test 74c0fb2c6eecb0219cbed0cbe3df136f8fbf9343
  F test/selectA.test 06d1032fa9009314c95394f2ca2e60d9f7ae8532
- F test/selectB.test f305cc6660804cb239aab4e2f26b0e288b59958b
+ F test/selectB.test 0d072c5846071b569766e6cd7f923f646a8b2bfa
  F test/selectC.test f9bf1bc4581b5b8158caa6e4e4f682acb379fb25
  F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c
 -F test/shared.test b9114eaea7e748a3a4c8ff7b9ca806c8f95cef3e
 +F test/shared.test e5ed27551ba06b28e851101683f0caef1445f4ac
  F test/shared2.test 7f6ad2d857d0f4e5d6a0b9a897b5e56a6b6ea18c
  F test/shared3.test d69bdd5f156580876c5345652d21dc2092e85962
  F test/shared4.test d0fadacb50bb6981b2fb9dc6d1da30fa1edddf83
@@@ -684,9 -680,9 +685,9 @@@ F test/speed3.test 5a419039e9da95d906ad
  F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
  F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
  F test/speed4p.test 0e51908951677de5a969b723e03a27a1c45db38b
- F test/sqllimits1.test e90a0ed94452076f6a10209d378e06b5f75ef0a0
+ F test/sqllimits1.test 0ebf7bed0b99c96f24e0b7fa5e59dbc42359c421
  F test/stat.test c7b20ea43003dc2dc33335e231c27be8284c4a2a
 -F test/stmt.test 25d64e3dbf9a3ce89558667d7f39d966fe2a71b9
 +F test/stmt.test 78a6764439cfa5abdcbf98d4d084739e81eeec4f
  F test/subquery.test b524f57c9574b2c0347045b4510ef795d4686796
  F test/subselect.test d24fd8757daf97dafd2e889c73ea4c4272dcf4e4
  F test/substr.test 18f57c4ca8a598805c4d64e304c418734d843c1a
@@@ -697,10 -693,10 +698,10 @@@ F test/sysfault.test c79441d88d23696fbe
  F test/table.test 04ba066432430657712d167ebf28080fe878d305
  F test/tableapi.test 2674633fa95d80da917571ebdd759a14d9819126
  F test/tclsqlite.test 8c154101e704170c2be10f137a5499ac2c6da8d3
 -F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c
 +F test/tempdb.test 3263e5c3f0604e54d307481e8587327c54544d18
- F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a
+ F test/temptable.test 1a21a597055dcf6002b6f1ee867632dccd6e925c
  F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05
- F test/tester.tcl be83dc1662e7bce357d53f7ff9cecdc16a7046eb
 -F test/tester.tcl aad52c7644513e5650f6613d371b0af3193c3885
++F test/tester.tcl a7e086805b188f86135f872c1258e3b4e19d0eb9
  F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f
  F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db
  F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca
@@@ -880,27 -878,28 +883,28 @@@ F test/vtabF.test fd5ad376f5a34fe0891df
  F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5
  F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
  F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d
 -F test/wal.test 5617ad308bfdb8a8885220d8a261a6096a8d7e57
 -F test/wal2.test aa0fb2314b3235be4503c06873e41ebfc0757782
 -F test/wal3.test d512a5c8b4aa345722d11e8f1671db7eb15a0e39
 -F test/wal4.test 3404b048fa5e10605facaf70384e6d2943412e30
 -F test/wal5.test 08e145a352b1223930c7f0a1de82a8747a99c322
 -F test/wal6.test 2e3bc767d9c2ce35c47106148d43fcbd072a93b3
 +F test/wal.test c2df96d6f209076fe0571054eedfc4879d1c8a3a
 +F test/wal2.test aaeac9c0f901cb3a779a49a5100decc615f04d76
- F test/wal3.test a4670279d6ed3fc4e0355d0e77882f7f46d54bbc
++F test/wal3.test 887978789111cd7f0a6a6dde34702a69fe3b3470
 +F test/wal4.test 6a68c45bc1ca24a3592ec449ddcb92b29d0e0e87
- F test/wal5.test ad9865a6e39bfcf62c96f075e4c31838295b6509
- F test/wal6.test 8df39843b1471dc02993d173937b2c6589e2cb59
++F test/wal5.test 7fffb2796bb57cb12c6300a98e143293df03248b
++F test/wal6.test c561d1e44c89f9cb458a7b03003ed4baac08ba07
  F test/wal7.test 2ae8f427d240099cc4b2dfef63cff44e2a68a1bd
 -F test/wal_common.tcl a98f17fba96206122eff624db0ab13ec377be4fe
 -F test/walbak.test 4df1c7369da0301caeb9a48fa45997fd592380e4
 -F test/walbig.test e882bc1d014afffbfa2b6ba36e0f07d30a633ad0
 -F test/walcksum.test a37b36375c595e61bdb7e1ec49b5f0979b6fc7ce
 -F test/walcrash.test e763841551d6b23677ccb419797c1589dcbdbaf5
 -F test/walcrash2.test 019d60b89d96c1937adb2b30b850ac7e86e5a142
 -F test/walfault.test 58fce626359c9376fe35101b5c0f2df8040aa839
 -F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483
 -F test/walmode.test 22ddccd073c817ac9ead62b88ac446e8dedc7d2c
 +F test/wal_common.tcl 15f152fd55703975878741beca6cfa4209d5b3b3
 +F test/walbak.test 767e1c9e0ea0cfb907873b332883e66e187fa4bc
 +F test/walbig.test 78ac493db2abdb65b9c6cace5b851cc32df1d449
 +F test/walcksum.test cf6787f2ee1a6a3da6f0c2b20b9ede5153e4e03f
 +F test/walcrash.test 80c1cc3173a0ef09d8303fa556cb0187a36d82ea
 +F test/walcrash2.test c032d0040374ae28b41f99fc0cc290b4e2e34f17
 +F test/walfault.test 7db81f3dac64ce8897196f199c2909078bcabf8d
 +F test/walhook.test c934ac5219fee2b4e7653d291db9107b8dc73bba
 +F test/walmode.test 8fe643a94841a1f95186e91e220181429f1188c1
  F test/walnoshm.test a074428046408f4eb5c6a00e09df8cc97ff93317
 -F test/walro.test 2d5d69e2e99da19ce6faab340330234fc4ca0720
 -F test/walshared.test 6dda2293880c300baf5d791c307f653094585761
 -F test/walslow.test d21625e2e99e11c032ce949e8a94661576548933
 -F test/walthread.test a25a393c068a2b42b44333fa3fdaae9072f1617c
+ F test/walpersist.test 45fb0c94fb63908e2d66b1d99ce4645bfce0fa1e
 +F test/walro.test 05769ae10ddce1b6ad41bdd5326ab7ef951c8278
 +F test/walshared.test 0befc811dcf0b287efae21612304d15576e35417
 +F test/walslow.test 989854bc5c214700a9f2d545bb158643813b8881
 +F test/walthread.test e6e32e93ccebfa401dfc0dd930c79daa3472b0ae
  F test/where.test de337a3fe0a459ec7c93db16a519657a90552330
  F test/where2.test 43d4becaf5a5df854e6c21d624a1cb84c6904554
  F test/where3.test 8e1175c7ef710c70502858fc4fb08d784b3620b9
@@@ -950,11 -950,11 +955,11 @@@ F tool/speedtest2.tcl ee2149167303ba8e9
  F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
  F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
  F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c
- F tool/symbols.sh bc2a3709940d47c8ac8e0a1fdf17ec801f015a00
+ F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5
  F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
- F tool/warnings.sh 347d974d143cf132f953b565fbc03026f19fcb4d
- P 8f8b373eed7052e6e93c1805fc1effcf1db09366
- R e151aa11e88480c804b5ef43a2ab643c
- U adam
- Z 3111cbbb811aa7ac12c37845c0ffea17
+ F tool/warnings.sh 2ebae31e1eb352696f3c2f7706a34c084b28c262
 -P ed630b012f468d6779b83dd8c4dbf3a8dafee573
 -R 171bb090fbd613c7785a72bd19098ec2
++P c6158b254fabd02a3d58b1a047a3c5fa979b41a8 a55f4ab99952a731e4cd8f6ef17389062e5ed4c5
++R e28b3bb5c7ab3bb40c311c2729336554
+ U drh
 -Z 642ce1d00dc515b7cad2aa099629b2e0
++Z 1fdb11afa5488fb1c722198196102057
diff --cc manifest.uuid
index 54617e53b2a303a6b35c6a9d4c46f8d958776051,7c80798eaca7a19dc482896e2cb5fe44122e6e7a..3318122b30c2e9926e2831c4c9ee093abba743b3
@@@ -1,1 -1,1 +1,1 @@@
- c6158b254fabd02a3d58b1a047a3c5fa979b41a8
 -a55f4ab99952a731e4cd8f6ef17389062e5ed4c5
++77376b332b4460208f837f7bdf6df8c90d5071d5
diff --cc src/os.c
index 49e11b290a982c343d02f6bcaf328cae983bb280,41ec69ce4594328162271935f92f04d318d698a8..0f5e7798b7e6508c64a6a690699d91f48179e283
+++ b/src/os.c
@@@ -137,12 -136,7 +137,12 @@@ int sqlite3OsOpen
    ** down into the VFS layer.  Some SQLITE_OPEN_ flags (for example,
    ** SQLITE_OPEN_FULLMUTEX or SQLITE_OPEN_SHAREDCACHE) are blocked before
    ** reaching the VFS. */
 -  rc = pVfs->xOpen(pVfs, zPath, pFile, flags & 0x87f7f, pFlagsOut);
 +#if SQLITE_ENABLE_DATA_PROTECTION
-   openFlags = flags & (0x87f3f | SQLITE_OPEN_FILEPROTECTION_MASK);
++  openFlags = flags & (0x87f7f | SQLITE_OPEN_FILEPROTECTION_MASK);
 +#else
-   openFlags = flags & 0x87f3f;
++  openFlags = flags & 0x87f7f;
 +#endif
 +  rc = pVfs->xOpen(pVfs, zPath, pFile, openFlags, pFlagsOut);
    assert( rc==SQLITE_OK || pFile->pMethods==0 );
    return rc;
  }
diff --cc src/os_unix.c
index 85e17598bbec67190e60ae1de545d946ed30f174,9e7b458214870e4cac6041efce535a7f4f87cf3f..7755e62a0b89a0e7dcccdee241472da23d7d9568
@@@ -5549,10 -4878,8 +5570,10 @@@ static int findCreateFileMode
      memcpy(zDb, zPath, nDb);
      zDb[nDb] = '\0';
  
-     if( 0==stat(zDb, &sStat) ){
+     if( 0==osStat(zDb, &sStat) ){
        *pMode = sStat.st_mode & 0777;
 +      *pUid = sStat.st_uid;
 +      *pGid = sStat.st_gid;
      }else{
        rc = SQLITE_IOERR_FSTAT;
      }
diff --cc src/select.c
Simple merge
diff --cc src/sqlite.h.in
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/test1.c
index dc5f5d2de4dff973904748236caf4959293c3ab3,9a5a50103f7e1547109b4acdafe529f0673a5e04..7fe99beac44c03b9c030eb5fc289dc15a4b81152
@@@ -5191,98 -5096,72 +5191,163 @@@ static int file_control_lockproxy_test
    return TCL_OK;  
  }
  
 -
 +#ifdef __APPLE__
 +#include <sys/param.h>
 +#include <sys/mount.h>
 +#include <sys/errno.h>
 +#endif
 +
 +/*
 + ** tclcmd:   path_is_local PWD
 + */
 +static int path_is_local(
 +  ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
 +  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
 +  int objc,              /* Number of arguments */
 +  Tcl_Obj *CONST objv[]  /* Command arguments */
 +){
 +  sqlite3 *db;
 +  const char *zPath;
 +  int nPath;
 +  
 +  if( objc!=2 ){
 +    Tcl_AppendResult(interp, "wrong # args: should be \"",
 +                     Tcl_GetStringFromObj(objv[0], 0), " PATH", 0);
 +    return TCL_ERROR;
 +  }
 +  zPath = Tcl_GetStringFromObj(objv[1], &nPath);
 +  
 +#ifdef __APPLE__
 +  {
 +    struct statfs fsInfo;
 +    if( statfs(zPath, &fsInfo) == -1 ){
 +      int err = errno;
 +      Tcl_AppendResult(interp, "Error calling statfs on path",
 +                       Tcl_NewIntObj(err), 0);
 +      return TCL_ERROR;
 +    }
 +    if( fsInfo.f_flags&MNT_LOCAL ){
 +      Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); 
 +    } else {
 +      Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); 
 +    }
 +  }
 +#else
 +  Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); 
 +#endif
 +  
 +  return TCL_OK;  
 +}
 +
 +/*
 + ** tclcmd:   path_is_dos PWD
 + */
 +static int path_is_dos(
 +  ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
 +  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
 +  int objc,              /* Number of arguments */
 +  Tcl_Obj *CONST objv[]  /* Command arguments */
 +){
 +  sqlite3 *db;
 +  const char *zPath;
 +  int nPath;
 +  
 +  if( objc!=2 ){
 +    Tcl_AppendResult(interp, "wrong # args: should be \"",
 +                     Tcl_GetStringFromObj(objv[0], 0), " PATH", 0);
 +    return TCL_ERROR;
 +  }
 +  zPath = Tcl_GetStringFromObj(objv[1], &nPath);
 +  
 +#ifdef __APPLE__
 +  {
 +    struct statfs fsInfo;
 +    if( statfs(zPath, &fsInfo) == -1 ){
 +      int err = errno;
 +      Tcl_AppendResult(interp, "Error calling statfs on path",
 +                       Tcl_NewIntObj(err), 0);
 +      return TCL_ERROR;
 +    }
 +    if (0 == strncmp("msdos", fsInfo.f_fstypename, 5)) {
 +      Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); 
 +    } else if (0 == strncmp("exfat", fsInfo.f_fstypename, 5)) {
 +      Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); 
 +    } else {
 +      Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); 
 +    }
 +  }
 +#else
 +  Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); 
 +#endif
 +  
 +  return TCL_OK;  
 +}
 +
+ /*
+ ** tclcmd:   file_control_win32_av_retry DB  NRETRY  DELAY
+ **
+ ** This TCL command runs the sqlite3_file_control interface with
+ ** the SQLITE_FCNTL_WIN32_AV_RETRY opcode.
+ */
+ static int file_control_win32_av_retry(
+   ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
+   Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
+   int objc,              /* Number of arguments */
+   Tcl_Obj *CONST objv[]  /* Command arguments */
+ ){
+   sqlite3 *db;
+   int rc;
+   int a[2];
+   char z[100];
+   if( objc!=4 ){
+     Tcl_AppendResult(interp, "wrong # args: should be \"",
+         Tcl_GetStringFromObj(objv[0], 0), " DB NRETRY DELAY", 0);
+     return TCL_ERROR;
+   }
+   if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
+     return TCL_ERROR;
+   }
+   if( Tcl_GetIntFromObj(interp, objv[2], &a[0]) ) return TCL_ERROR;
+   if( Tcl_GetIntFromObj(interp, objv[3], &a[1]) ) return TCL_ERROR;
+   rc = sqlite3_file_control(db, NULL, SQLITE_FCNTL_WIN32_AV_RETRY, (void*)a);
+   sqlite3_snprintf(sizeof(z), z, "%d %d %d", rc, a[0], a[1]);
+   Tcl_AppendResult(interp, z, (char*)0);
+   return TCL_OK;  
+ }
+ /*
+ ** tclcmd:   file_control_persist_wal DB PERSIST-FLAG
+ **
+ ** This TCL command runs the sqlite3_file_control interface with
+ ** the SQLITE_FCNTL_PERSIST_WAL opcode.
+ */
+ static int file_control_persist_wal(
+   ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
+   Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
+   int objc,              /* Number of arguments */
+   Tcl_Obj *CONST objv[]  /* Command arguments */
+ ){
+   sqlite3 *db;
+   int rc;
+   int bPersist;
+   char z[100];
+   if( objc!=3 ){
+     Tcl_AppendResult(interp, "wrong # args: should be \"",
+         Tcl_GetStringFromObj(objv[0], 0), " DB FLAG", 0);
+     return TCL_ERROR;
+   }
+   if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){
+     return TCL_ERROR;
+   }
+   if( Tcl_GetIntFromObj(interp, objv[2], &bPersist) ) return TCL_ERROR;
+   rc = sqlite3_file_control(db, NULL, SQLITE_FCNTL_PERSIST_WAL, (void*)&bPersist);
+   sqlite3_snprintf(sizeof(z), z, "%d %d", rc, bPersist);
+   Tcl_AppendResult(interp, z, (char*)0);
+   return TCL_OK;  
+ }
  /*
  ** tclcmd:   sqlite3_vfs_list
  **
@@@ -5988,16 -5957,12 +6144,18 @@@ int Sqlitetest1_Init(Tcl_Interp *interp
       { "file_control_test",          file_control_test,   0   },
       { "file_control_lasterrno_test", file_control_lasterrno_test,  0   },
       { "file_control_lockproxy_test", file_control_lockproxy_test,  0   },
 +#ifdef __APPLE__
 +     { "file_control_truncate_test", file_control_truncate_test,  0   },
 +     { "file_control_replace_test", file_control_replace_test,  0   },
 +#endif 
       { "file_control_chunksize_test", file_control_chunksize_test,  0   },
-      { "file_control_sizehint_test", file_control_sizehint_test,  0   },
+      { "file_control_sizehint_test",  file_control_sizehint_test,   0   },
+      { "file_control_win32_av_retry", file_control_win32_av_retry,  0   },
+      { "file_control_persist_wal",    file_control_persist_wal,     0   },
       { "sqlite3_vfs_list",           vfs_list,     0   },
       { "sqlite3_create_function_v2", test_create_function_v2, 0 },
 +     { "path_is_local",              path_is_local,  0   },
 +     { "path_is_dos",                path_is_dos,  0   },
  
       /* Functions from os.h */
  #ifndef SQLITE_OMIT_UTF16
Simple merge
diff --cc src/vdbe.c
Simple merge
diff --cc src/vdbeapi.c
Simple merge
diff --cc src/wal.c
Simple merge
Simple merge
diff --cc test/tester.tcl
Simple merge
diff --cc test/wal3.test
Simple merge
diff --cc test/wal5.test
index 5ef6345cf1035a49cad11a35fd906b19907a4670,af4056ccd26354e6e4ef2f155dfb844781cb3efb..756f727ce6205d4b878f4694a58816094173c919
@@@ -247,22 -233,9 +247,13 @@@ foreach {testprefix do_wal_checkpoint} 
      do_test 2.3.$tn.3 { sql2 { BEGIN; SELECT * FROM t1 } } {1 2}
      do_test 2.3.$tn.4 { sql1 { INSERT INTO t1 VALUES(3, 4) } } {}
      do_test 2.3.$tn.5 { sql1 { INSERT INTO t2 VALUES(3, 4) } } {}
 -    do_test 2.3.$tn.6 { file_page_counts } {1 7 1 7}
 -    do_test 2.3.$tn.7 { code1 { do_wal_checkpoint db -mode full } } {1 7 5}
 +    do_test 2.3.$tn.6 { file_page_counts } [
 +      list 1 [wal_frames db 4 3] 1 [wal_frames db 4 3]
 +    ]
 +    do_test 2.3.$tn.7 { code1 { do_wal_checkpoint db -mode full } } [
 +      list 1 [wal_frames db 4 3] [wal_frames db 3 2]
 +    ]
-     if {$tcl_platform(platform) == "windows"} {
-         # on unix, the size_hint is a no-op if no chunk size is set.
-         # the windows implementation does not have a similar check,
-         # and because of this, the db file size has an extra page.
-         do_test 2.3.$tn.8 { file_page_counts } {2 7 2 7}
-     } {
-         do_test 2.3.$tn.8 { file_page_counts } [
-           list 1 [wal_frames db 4 3] 2 [wal_frames db 4 3]
-         ]
-     }
+     do_test 2.3.$tn.8 { file_page_counts } {2 7 2 7}
    }
  
    # Check that checkpoints block on the correct locks. And respond correctly
diff --cc test/wal6.test
Simple merge