]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Pull in all the changes from trunk up through the version 3.7.5
authordrh <drh@noemail.net>
Thu, 27 Jan 2011 18:48:02 +0000 (18:48 +0000)
committerdrh <drh@noemail.net>
Thu, 27 Jan 2011 18:48:02 +0000 (18:48 +0000)
release candidate 1.

FossilOrigin-Name: 09d6c91dcff0699daec02de0cfd1cdc4e61b4f6b

12 files changed:
1  2 
Makefile.in
manifest
manifest.uuid
src/func.c
src/main.c
src/os_unix.c
src/prepare.c
src/test1.c
src/test_config.c
src/vdbeapi.c
test/malloc_common.tcl
test/memsubsys1.test

diff --cc Makefile.in
Simple merge
diff --cc manifest
index f108f2d3a07d8a43fdb0f9fa4d402a6a702c4710,5a8fd8dea0eccc6b656bab9ed4f15582800d0238..e074ad155397bbb0c3ee7f847473bb2d9b72cd2b
+++ b/manifest
@@@ -1,10 -1,10 +1,10 @@@
  -----BEGIN PGP SIGNED MESSAGE-----
  Hash: SHA1
  
- C Merge\sin\sall\schanges\sto\sthe\strunk\sthrough\sversion\s3.7.4rc3.
- D 2010-12-07T15:49:03
 -C SQLite\sversion\s3.7.5\srelease\scandidate\s1
 -D 2011-01-27T14:35:01.967
++C Pull\sin\sall\sthe\schanges\sfrom\strunk\sup\sthrough\sthe\sversion\s3.7.5\s\nrelease\scandidate\s1.
++D 2011-01-27T18:48:02.799
  F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
- F Makefile.in dec697a7eb6ee9d6c04f77f4e46b1aff020d2662
 -F Makefile.in de6498556d536ae60bb8bb10e8c1ba011448658c
++F Makefile.in 0df5f50f0d224a6265a2922f8922cda77b02c89a
  F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
  F Makefile.vxworks c85ec1d8597fe2f7bc225af12ac1666e21379151
  F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
@@@ -137,20 -134,20 +137,20 @@@ F src/delete.c 7ed8a8c8b5f748ece92df173
  F src/expr.c 1810f3056b11de99cc10e24629edf00e5fbd3a75
  F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
  F src/fkey.c 17950a28f28b23e8ad3feaac5fc88c324d2f600a
- F src/func.c 3856c6899fa4a9cb2da7b00cf5796171d88e34ae
 -F src/func.c cb41f614edc43b00bfeb030f9768e80eaff47edd
++F src/func.c 343c0bd8579d42ce80915c4f258638c1cebc26ea
  F src/global.c 02335177cf6946fe5525c6f0755cf181140debf3
  F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
  F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
  F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
  F src/insert.c a4995747c062256582a90b4f87f716e11b067050
  F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e
 -F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
 +F src/legacy.c 015826a958f690302d27e096a68d50b3657e4201
  F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
  F src/loadext.c 8af9fcc75708d60b88636ccba38b4a7b3c155c3e
- F src/main.c 657885e071f21e601abb727bf4794e55c0722df8
- F src/malloc.c 3d7284cd9346ab6e3945535761e68c23c6cf40ef
 -F src/main.c 6653e46db7ecb5a7449d8a12900147192f748b97
++F src/main.c de8fd6a086591cfcdf155a315e607509c293fad0
+ F src/malloc.c 92d59a007d7a42857d4e9454aa25b6b703286be1
  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/mem5.c 6fe00f46997bebb690397cb029719f711e7640e3
@@@ -165,32 -162,31 +165,32 @@@ F src/notify.c 976dd0f6171d4588e89e874f
  F src/os.c 22ac61d06e72a0dac900400147333b07b13d8e1d
  F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9
  F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f
- F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e
- F src/os_unix.c 49f8334f45bd3f44970e9afd8a70e8dd0f8a2282
- F src/os_win.c 2f90f7bdec714fad51cd31b4ecad3cc1b4bb5aad
- F src/pager.c c0aca5c733c15a16fe158c3215d857841a4e5381
+ F src/os_os2.c 2e452c9f2ca507623ad351c33a8a8b27849b1863
 -F src/os_unix.c 1be46a35bad4bec5171e4de88aaff817260eb378
++F src/os_unix.c 9b2e17514578abddb9b6577424de39577a3e48f0
+ F src/os_win.c 9abdcdd925416d854eabb0996c96debd92abfef5
+ F src/pager.c 37696d876b1c23aa95d8ad7e4afd72d8675984fa
  F src/pager.h 0ea59db2a33bc6c2c02cae34de33367e1effdf76
  F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
  F src/pcache.c 09d38c44ab275db581f7a2f6ff8b9bc7f8c0faaa
  F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
- F src/pcache1.c e9578a3beac26f229ee558a4e16c863f2498185f
+ F src/pcache1.c d548e31beafa792d1994b663a29a5303569efc4e
 -F src/pragma.c 8a6cd3c787f882fa44f6490d2411fc26839ce8f3
 -F src/prepare.c 395b3fab1b93f45b6aa194b23ebc201221c47b99
 +F src/pragma.c 3ff495d7f9c51c58d33269dfb8d5bd9f82c3d566
- F src/prepare.c 7f225d1bf1670fdfb37c9c63b342e4206a252c29
- F src/printf.c 8ae5082dd38a1b5456030c3755ec3a392cd51506
++F src/prepare.c ce4af845101308f785087a7071758bc4449f25b2
+ F src/printf.c df2ff3bb5409e8958136933342c46464fbd017e7
  F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
  F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706
  F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
  F src/select.c 8a7ba246b0b4bb45df7fbc52681728a0e3deaaa7
- F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056
- F src/sqlite.h.in b7e8a4e4749cfae9c99e1fbe3f9f87763cbbf7a2
+ F src/shell.c 83c6f0cc5a79a081c7b9ddfe4f557b47e0bad976
+ F src/sqlite.h.in 76955fcd1c5371268ecc8afe0ce6c49ea750ae38
 +F src/sqlite3_private.h 2a814d17913732831acf13e7e87860105a3416e4
  F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754
- F src/sqliteInt.h b96d5ddb8b419a2ed7cf69a7778b53872d73e8a7
+ F src/sqliteInt.h 45926deaf59b1ce3f55d21d5f91a8cecb6a7eb4c
  F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44
- F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b
+ F src/status.c 4997380fbb915426fef9e500b4872e79c99267fc
  F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
- F src/tclsqlite.c 77c5c4b8ac7b2d94ee480e1ad626fbd921d948e4
- F src/test1.c 665cd9008b5e491e69076e4c58f540d29393ca76
+ F src/tclsqlite.c 549859dc2c143f3deb6a92636a2d27973652c164
 -F src/test1.c 771407a49ae199241f0efb7055634e4a1899c026
++F src/test1.c ffc41da99a715c662cad62920106ac8d9aaf32ef
  F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31
  F src/test3.c 056093cfef69ff4227a6bdb9108564dc7f45e4bc
  F src/test4.c 0528360b5025688002a5feb6be906ddce52eaaee
@@@ -201,9 -197,9 +201,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 c3ba770a9924181aeed1717efb724b5ff17ccf34
 -F src/test_config.c 9f025a7f3686c94e82dc6d6bd3cbf0f89cd67487
++F src/test_config.c 4c093dae195323e9b9a5482d48a34ba912cefd8e
  F src/test_demovfs.c 0aed671636735116fc872c5b03706fd5612488b5
  F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
  F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20
@@@ -235,19 -231,19 +235,19 @@@ F src/update.c 227e6cd512108b84f69421fc
  F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685
  F src/util.c ab1c92426494f499f42b9e307537b03e923d75c1
  F src/vacuum.c 924bd1bcee2dfb05376f79845bd3b4cec7b54b2f
 -F src/vdbe.c 5d310eaf1a4d8383602126fa82e01291ab7d3cf3
 +F src/vdbe.c 624c618542806c2075588ee5d2bdf43d91e34c21
  F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
- F src/vdbeInt.h 1f2137b905969f4de0648256aeb73abdf88f9213
- F src/vdbeapi.c 09ebd299007972e9262dec825d8fc3baedf0d239
- F src/vdbeaux.c b810a66902ee40c71cdb9c64f43760da516c91df
+ F src/vdbeInt.h 6e6f28e9bccc6c703dca1372fd661c57b5c15fb0
 -F src/vdbeapi.c 8e9324fd35eb70d0b5904bd1af40f2598744dc4d
++F src/vdbeapi.c 35553aa4e234c173858606665f28bafafea22ae1
+ F src/vdbeaux.c 33448d23b857654dd69ed2103611f5c733606f68
  F src/vdbeblob.c 18955f0ee6b133cd08e1592010cb9a6b11e9984c
  F src/vdbemem.c 411649a35686f54268ccabeda175322c4697f5a6
- F src/vdbetrace.c 864cef96919323482ebd9986f2132435115e9cc2
+ F src/vdbetrace.c 3ba13bc32bdf16d2bdea523245fd16736bed67b5
  F src/vtab.c b297e8fa656ab5e66244ab15680d68db0adbec30
- F src/wal.c f26b8d297bd11cb792e609917f9d4c6718ac8e0e
+ F src/wal.c dbca424f71678f663a286ab2a98f947af1d412a7
  F src/wal.h c1aac6593a0b02b15dc625987e619edeab39292e
  F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f
- F src/where.c fa22d45b2577c77146f2e894d58011d472d64103
+ F src/where.c af069e6b53234118014dabfece96a9515b69d76b
  F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
  F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
  F test/all.test 51756962d522e474338e9b2ebb26e7364d4aa125
@@@ -379,11 -376,11 +380,11 @@@ F test/enc3.test 5c550d59ff31dccdba5d1a
  F test/enc4.test 4b575ef09e0eff896e73bd24076f96c2aa6a42de
  F test/eqp.test 69670e7919030f21de29fb99bf1d68f97aedcbdb
  F test/eval.test bc269c365ba877554948441e91ad5373f9f91be3
 -F test/exclusive.test 53e1841b422e554cecf0160f937c473d6d0e3062
 +F test/exclusive.test 897074dc6706b0c4f3b1dc4580ffddffe2a79206
- F test/exclusive2.test 76e63c05349cb70d09d60b99d2ae625525ff5155
+ F test/exclusive2.test b65264c3e76e1db6c6eda15c02000a40743f6541
  F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7
  F test/expr.test 620a636cf7b7d4e5834a0b9d83a4da372e24a7b7
 -F test/fallocate.test 43dc34b8c24be6baffadc3b4401ee15710ce83c6
 +F test/fallocate.test a9927b638567e2e776c112f54d701402a0e74023
  F test/filectrl.test 97003734290887566e01dded09dc9e99cb937e9e
  F test/filefmt.test f77c92141960b7933bc6691631d2ad62257ef40a
  F test/fkey1.test 01c7de578e11747e720c2d9aeef27f239853c4da
@@@ -512,10 -509,10 +513,10 @@@ F test/join5.test 86675fc2919269aa923c8
  F test/join6.test bf82cf3f979e9eade83ad0d056a66c5ed71d1901
  F test/journal1.test 36f2d1bb9bf03f790f43fbdb439e44c0657fab19
  F test/journal2.test 50a3604768494d4a337f194f0a9480e7c57dcb72
 -F test/journal3.test ff175219be1b02d2f7e54297ad7e491b7533edb6
 +F test/journal3.test 7cfbd86429305c96c9d985665320db5364764d96
  F test/jrnlmode.test e3fe6c4a2c3213d285650dc8e33aab7eaaa5ce53
  F test/jrnlmode2.test a19e28de1a6ec898067e46a122f1b71c9323bf00
- F test/jrnlmode3.test cfcdb12b90e640a23b92785a002d96c0624c8710
+ F test/jrnlmode3.test c6522b276ba315fd1416198de6fc1da9e72409fb
  F test/keyword1.test a2400977a2e4fde43bf33754c2929fda34dbca05
  F test/lastinsert.test 474d519c68cb79d07ecae56a763aa7f322c72f51
  F test/laststmtchanges.test ae613f53819206b3222771828d024154d51db200
@@@ -528,13 -525,12 +529,13 @@@ F test/lock.test db74fdf5a73bad29ab3d86
  F test/lock2.test 5242d8ac4e2d59c403aebff606af449b455aceff
  F test/lock3.test f271375930711ae044080f4fe6d6eda930870d00
  F test/lock4.test c82268c031d39345d05efa672f80b025481b3ae5
 -F test/lock5.test b2abb5e711bc59b0eae00f6c97a36ec9f458fada
 -F test/lock6.test ad5b387a3a8096afd3c68a55b9535056431b0cf5
 +F test/lock5.test d0d313f059ae5661726d3f197ba6ed8f69257d8e
 +F test/lock6.test 83434ae8ca1d1c5e2eaf74d4e44aa24ab62b291c
  F test/lock7.test 64006c84c1c616657e237c7ad6532b765611cf64
  F test/lock_common.tcl d279887a0ab16cdb6d935c1203e64113c5a000e9
- F test/lookaside.test 382e7bc2fab23d902c8eafb1b9ed7ababfff75a6
 +F test/lock_proxy.test 95be9c32d79be25cf643b4e41a0aa0e53aa21621
 -F test/main.test 9d7bbfcc1b52c88ba7b2ba6554068ecf9939f252
+ F test/lookaside.test 93f07bac140c5bb1d49f3892d2684decafdc7af2
 +F test/main.test 753e2b772c041bd8dbd17c7e4132b3981378eaab
  F test/make-where7.tcl 05c16b5d4f5d6512881dfec560cb793915932ef9
  F test/malloc.test 927e6c8668a1d48c23aa6189bda02aff5a1b83de
  F test/malloc3.test 4128b1e6ffa506103b278ad97af89174f310c7ca
@@@ -556,11 -552,11 +557,11 @@@ F test/mallocH.test 79b65aed612c9b3ed2d
  F test/mallocI.test a88c2b9627c8506bf4703d8397420043a786cdb6
  F test/mallocJ.test b5d1839da331d96223e5f458856f8ffe1366f62e
  F test/mallocK.test d79968641d1b70d88f6c01bdb9a7eb4a55582cc9
- F test/malloc_common.tcl 2c807f3ca596a1a41fc5d7131e12eed913f60824
 -F test/malloc_common.tcl 660b82ab528521cc4a48ff6df05ca3b6a00d47c5
 -F test/manydb.test b3d3bc4c25657e7f68d157f031eb4db7b3df0d3c
 -F test/memdb.test 0825155b2290e900264daaaf0334b6dfe69ea498
++F test/malloc_common.tcl 4c63cf4e38cca5d1f21910e38a15ab78899678e8
 +F test/manydb.test 7faa0df55bbab2b14c25f323801db336c4e7ce3a
 +F test/memdb.test f773146f66ee2c635854a8264317f39a6cc3e18c
  F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2
- F test/memsubsys1.test 6827c7d06d5d60eda7a23c8d0b75d6922bd539dc
 -F test/memsubsys1.test 679db68394a5692791737b150852173b3e2fea10
++F test/memsubsys1.test 7abc5c90b20e25040e2c800e3d95703d59d843a2
  F test/memsubsys2.test 72a731225997ad5e8df89fdbeae9224616b6aecc
  F test/minmax.test 722d80816f7e096bf2c04f4111f1a6c1ba65453d
  F test/minmax2.test 33504c01a03bd99226144e4b03f7631a274d66e0
@@@ -583,17 -579,17 +584,17 @@@ F test/notify3.test d60923e186e0900f481
  F test/notnull.test cc7c78340328e6112a13c3e311a9ab3127114347
  F test/null.test a8b09b8ed87852742343b33441a9240022108993
  F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec
- F test/pager1.test e066fb2e2dc1ac1cd9ef2b44a28ae3cc79a9150f
- F test/pager2.test 0fbb6b6dc40ce1fecfe758c555a748ad2e9beaa3
+ F test/pager1.test 7006a8b5dd3df1fe0d51d7da014333d7dc099778
+ F test/pager2.test 745b911dde3d1f24ae0870bd433dfa83d7c658c1
  F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f
 -F test/pagerfault.test 9de4d3e0c59970b4c6cb8dac511fa242f335d8a7
 +F test/pagerfault.test bea066b9162e1ab6843c2c1524ebb0965715e956
  F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401
  F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806
  F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb
- F test/pcache.test 4118a183908ecaed343a06fcef3ba82e87e0129d
+ F test/pcache.test 065aa286e722ab24f2e51792c1f093bf60656b16
  F test/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16
  F test/permutations.test c0ce0f3b741dd92a6d4c2671dbacba4b92dd81eb
 -F test/pragma.test fdfc09067ea104a0c247a1a79d8093b56656f850
 +F test/pragma.test 88048136eed6baa2097dd7ab5145d3288128ca70
  F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47
  F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea
  F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301
@@@ -879,8 -877,8 +882,8 @@@ F tool/lempar.c 01ca97f87610d1dac6d8cd9
  F tool/mkkeywordhash.c d2e6b4a5965e23afb80fbe74bb54648cd371f309
  F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
  F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
 -F tool/mksqlite3c.tcl e0db70c2c52b0e3d0867ca931229e5b90ffe7837
 +F tool/mksqlite3c.tcl 136c838dba145ad65296522ff27cdd792657eaa0
- F tool/mksqlite3h.tcl 03b6ca938c833814923674d8a160e91fcedb4571
+ F tool/mksqlite3h.tcl d76c226a5e8e1f3b5f6593bcabe5e98b3b1ec9ff
  F tool/mksqlite3internalh.tcl 7b43894e21bcb1bb39e11547ce7e38a063357e87
  F tool/omittest.tcl 27d6f6e3b1e95aeb26a1c140e6eb57771c6d794a
  F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
@@@ -902,14 -900,14 +905,14 @@@ F tool/speedtest2.tcl ee2149167303ba8e9
  F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
  F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
  F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
- P c8bc057c7def6bbbebd89ee52b582bad75fb0509 11c74c0dae0e302f248ec4af6dc8a9376203b034
- R f56fc98cc45db5c78ece2f3f120ef0e8
 -P 6f2c72a0f6579db3f40c079436ca40e3e52bd6d9
 -R 59a65e1de1a8ae7d9445e2c547dd8236
++P d2ccf7fc0673e875ff7b84cd37b89c65df4bec7f 35ac78f55159705af140b949ee33852aedd62816
++R 4156a032d04be89bfd81b2f0d3b7a3a1
  U drh
- Z 2f1441de3189b083ad6152c4d3e98a30
 -Z 98b20f33ccda8aca8fd5329534c7e6b1
++Z 3878aa782505f9e49d943ef2cef669a8
  -----BEGIN PGP SIGNATURE-----
  Version: GnuPG v1.4.6 (GNU/Linux)
  
- iD8DBQFM/ldyoxKgR168RlERAlUOAJoCRDoVTFpbr6OE7/Ud5TIa2NWEOACeIlqf
- qmpiDDfSfUooUtaCFjP2Gzg=
- =y70I
 -iD8DBQFNQYKZoxKgR168RlERAoZXAJwJ1Csq9EFTXieXNgpSf4QMSqUs5QCfcNG/
 -DEbh0HvWPBsaT4iBPcr+lKE=
 -=bDRk
++iD8DBQFNQb3moxKgR168RlERAqESAJ910BVGm3bFKLOAlkRsiysh65xHwQCeNSAx
++HeSBjjtzBA0KoGQfQkL0aKA=
++=epZr
  -----END PGP SIGNATURE-----
diff --cc manifest.uuid
index ece9d942292430d3f186c827200fae32a6892b10,dcf56e3c0ca991fc7195be2179a3b915cb47a603..2409795d440100ddcd7628947f363275a0d9eae1
@@@ -1,1 -1,1 +1,1 @@@
- d2ccf7fc0673e875ff7b84cd37b89c65df4bec7f
 -35ac78f55159705af140b949ee33852aedd62816
++09d6c91dcff0699daec02de0cfd1cdc4e61b4f6b
diff --cc src/func.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/os_unix.c
index 355264ada4e58385fa9972698f99d6412329f083,fa200ae80019019ebaa83ff8efd0718183fce969..c5d0e26e84298a57d05f7fbadee677e5d015493b
@@@ -3154,221 -3135,11 +3156,224 @@@ static int unixFileControl(sqlite3_fil
        return proxyFileControl(id,op,pArg);
      }
  #endif /* SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__) */
 +#if (SQLITE_ENABLE_APPLE_SPI>0) && defined(__APPLE__)
 +    case SQLITE_TRUNCATE_DATABASE: {
 +      unixFile *pFile = (unixFile*)id;
 +      int trc = SQLITE_OK;
 +      int eFileLock = pFile->eFileLock;
 +      int rc = SQLITE_OK;
 +      char jPath[MAXPATHLEN+9];
 +      size_t jLen;
 +      
 +      if( eFileLock<SQLITE_LOCK_SHARED ){
 +        rc = pFile->pMethod->xLock(id, SQLITE_LOCK_SHARED);
 +      }
 +      if( !rc && eFileLock<SQLITE_LOCK_EXCLUSIVE ){
 +        rc = pFile->pMethod->xLock(id, SQLITE_LOCK_EXCLUSIVE);
 +      }
 +      if( rc ){
 +        if( pFile->eFileLock > eFileLock ){
 +          pFile->pMethod->xUnlock(id, eFileLock);
 +        }
 +        return rc;
 +      }
 +      rc = pFile->pMethod->xTruncate(id, ((pFile->fsFlags & SQLITE_FSFLAGS_IS_MSDOS) != 0) ? 1L : 0L);
 +      if( !rc && (SQLITE_OK==getDbPathForUnixFile(pFile, jPath)) ){
 +        jLen = strlcat(jPath, "-journal", MAXPATHLEN+9);
 +        if( jLen < MAXPATHLEN+9 ){
 +          int jfd = open(jPath, O_TRUNC);
 +          if( (jfd == -1) ){
 +            if ( errno!=ENOENT ){
 +              perror(jPath);
 +            }
 +          } else {
 +            fsync(jfd);
 +            close(jfd);
 +          }
 +        }
 +      }else{
 +        trc=rc;
 +      }
 +      if( !trc ){
 +        trc = pFile->pMethod->xSync(id, SQLITE_SYNC_FULL);
 +      }
 +      if( pFile->eFileLock > eFileLock ){
 +        int unlockRC = pFile->pMethod->xUnlock(id, SQLITE_LOCK_SHARED);
 +        if (!rc) rc = unlockRC;
 +      }
 +      if( pFile->eFileLock > eFileLock ){
 +        int unlockRC = pFile->pMethod->xUnlock(id, SQLITE_LOCK_NONE);
 +        if (!rc) rc = unlockRC;
 +      }
 +      if( trc ){
 +        return trc;
 +      }
 +      return rc;
 +    }
 +      
 +    case SQLITE_REPLACE_DATABASE: {
 +      unixFile *pFile = (unixFile*)id;
 +      int trc = SQLITE_OK;
 +      int eFileLock = pFile->eFileLock;
 +      int rc = SQLITE_OK;
 +      char jPath[MAXPATHLEN+9];
 +      size_t jLen;
 +      sqlite3 *srcdb = (sqlite3 *)pArg;
 +      Btree *pSrcBtree = NULL;
 +      int eSrcFileLock = SQLITE_LOCK_NONE;
 +      int srcLockRC = -1;
 +      sqlite3_file *src_file = NULL;
 +      unixFile *pSrcFile = NULL;
 +      
 +      if( !sqlite3SafetyCheckOk(srcdb) ){
 +        return SQLITE_MISUSE;
 +      }
 +      if( eFileLock<SQLITE_LOCK_SHARED ){
 +        rc = pFile->pMethod->xLock(id, SQLITE_LOCK_SHARED);
 +      }
 +      if( !rc && eFileLock<SQLITE_LOCK_EXCLUSIVE ){
 +        rc = pFile->pMethod->xLock(id, SQLITE_LOCK_EXCLUSIVE);
 +      }
 +      if( !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 ){
 +            pSrcFile = (unixFile *)src_file;
 +            eSrcFileLock = pSrcFile->eFileLock;
 +            if( eSrcFileLock<SQLITE_LOCK_SHARED ){
 +              rc = pSrcFile->pMethod->xLock(src_file, SQLITE_LOCK_SHARED);
 +              srcLockRC = rc; /* SQLITE_OK means we need to unlock later */
 +            } else if( eSrcFileLock==SQLITE_LOCK_EXCLUSIVE ){
 +              /* if the src database has an exclusive lock, verify that the
 +               ** it doesn't have a journal file with open transactions 
 +               */
 +              if( getDbPathForUnixFile(pSrcFile, jPath) ){
 +                rc = SQLITE_INTERNAL;
 +              }else{
 +                jLen = strlcat(jPath, "-journal", MAXPATHLEN+9);
 +                if( jLen < MAXPATHLEN+9 ){
 +                  int jfd = open(jPath, O_RDONLY);
 +                  if( jfd==-1 ){
 +                    if( errno!=ENOENT ){
 +                      pFile->lastErrno = errno;
 +                      rc = SQLITE_IOERR;
 +                    }
 +                  }else{
 +                    /* if the journal exists ensure there's no pending 
 +                     ** transaction by checking the journal header */
 +                    char magic[8];
 +                    ssize_t rlen = pread(jfd, magic, 8, 0);
 +                    if( rlen<0 ){
 +                      pFile->lastErrno = errno;
 +                      rc = SQLITE_IOERR;
 +                    }else if( rlen==8 ){
 +                      char test[8] = {'\0','\0','\0','\0','\0','\0','\0','\0'};
 +                      if( memcmp(magic,test,8) ){
 +                        rc = SQLITE_LOCKED;
 +                      }
 +                    }else if( rlen!=0 ){
 +                      rc = SQLITE_INTERNAL;
 +                    }
 +                    close(jfd);
 +                  }
 +                }
 +              }
 +            }
 +          }else{
 +            rc = SQLITE_MISUSE;
 +          }
 +          if( rc ){
 +            if( srcLockRC==SQLITE_OK ){
 +              pSrcFile->pMethod->xUnlock(src_file, eSrcFileLock);
 +            }
 +            sqlite3BtreeLeave(pSrcBtree);
 +          }
 +        }
 +        if( pSrcFile==NULL || (pSrcFile->h<0) ){
 +          rc = SQLITE_INTERNAL;
 +          sqlite3_mutex_leave(srcdb->mutex);
 +        }
 +      }
 +      if( rc ){
 +        /* unroll state changes and return error code */
 +        if( pFile->eFileLock > eFileLock ){
 +          pFile->pMethod->xUnlock(id, eFileLock);
 +        }
 +        return rc;
 +      }else{
 +        /* both databases are locked appropriately, copy file data
 +         ** and then unroll the locks we added. 
 +         */
 +        copyfile_state_t s;
 +        
 +        s = copyfile_state_alloc();
 +        if( fcopyfile(pSrcFile->h, pFile->h, s, COPYFILE_ALL) ){
 +          switch(errno) {
 +            case ENOMEM:
 +              rc = SQLITE_NOMEM;
 +              break;
 +            default:
 +              rc = SQLITE_INTERNAL;
 +          }
 +        }
 +        copyfile_state_free(s);
 +        if( srcLockRC==SQLITE_OK ){
 +          pSrcFile->pMethod->xUnlock(src_file, eSrcFileLock);
 +        }
 +        sqlite3BtreeLeave(pSrcBtree);
 +        sqlite3_mutex_leave(srcdb->mutex);
 +      }
 +      
 +      if( !rc && (SQLITE_OK==getDbPathForUnixFile(pFile, jPath)) ){
 +        jLen = strlcat(jPath, "-journal", MAXPATHLEN+9);
 +        if( jLen < MAXPATHLEN+9 ){
 +          int jfd = open(jPath, O_TRUNC);
 +          if( (jfd == -1) ){
 +            if ( errno!=ENOENT ){
 +              perror(jPath);
 +            }
 +          } else {
 +            fsync(jfd);
 +            close(jfd);
 +          }
 +        }
 +      }else{
 +        trc=rc;
 +      }
 +      if( !trc ){
 +        trc = pFile->pMethod->xSync(id, SQLITE_SYNC_FULL);
 +      }
 +      if( pFile->eFileLock > eFileLock ){
 +        int unlockRC = pFile->pMethod->xUnlock(id, SQLITE_LOCK_SHARED);
 +        if (!rc) rc = unlockRC;
 +      }
 +      if( pFile->eFileLock > eFileLock ){
 +        int unlockRC = pFile->pMethod->xUnlock(id, SQLITE_LOCK_NONE);
 +        if (!rc) rc = unlockRC;
 +      }
 +      if( trc ){
 +        return trc;
 +      }
 +      return rc;
 +    }
 +#endif /* (SQLITE_ENABLE_APPLE_SPI>0) && defined(__APPLE__) */
+     case SQLITE_FCNTL_SYNC_OMITTED: {
+       return SQLITE_OK;  /* A no-op */
+     }
    }
-   return SQLITE_ERROR;
+   return SQLITE_NOTFOUND;
  }
  
  /*
diff --cc src/prepare.c
Simple merge
diff --cc src/test1.c
Simple merge
Simple merge
diff --cc src/vdbeapi.c
Simple merge
Simple merge
Simple merge