From: drh Date: Wed, 18 Aug 2010 00:24:09 +0000 (+0000) Subject: Merge the 3.7.1 pre-release snapshot changes as of [2010-08-18] X-Git-Tag: mountain-lion~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=61d3bfb78be32d7d0967956fe0e51ddbceaa4ed1;p=thirdparty%2Fsqlite.git Merge the 3.7.1 pre-release snapshot changes as of [2010-08-18] into the apple-osx branch. FossilOrigin-Name: 866e9286ae4226b2bec40ef18c672a41768abf1f --- 61d3bfb78be32d7d0967956fe0e51ddbceaa4ed1 diff --cc configure index c8c0c1f99f,e0c7fa0c00..d21a70db05 mode 100644,100755..100644 --- a/configure +++ b/configure @@@ -1,6 -1,6 +1,6 @@@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. - # Generated by GNU Autoconf 2.62 for sqlite 3.7.0.1. -# Generated by GNU Autoconf 2.62 for sqlite 3.7.1. ++# Generated by GNU Autoconf 2.62 for sqlite >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. @@@ -743,8 -743,8 +743,8 @@@ SHELL=${CONFIG_SHELL-/bin/sh # Identity of this package. PACKAGE_NAME='sqlite' PACKAGE_TARNAME='sqlite' - PACKAGE_VERSION='3.7.0.1' - PACKAGE_STRING='sqlite 3.7.0.1' -PACKAGE_VERSION='3.7.1' -PACKAGE_STRING='sqlite 3.7.1' ++PACKAGE_VERSION='>>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT' ++PACKAGE_STRING='sqlite >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT' PACKAGE_BUGREPORT='' # Factoring default headers for most tests. @@@ -1487,7 -1487,7 +1487,7 @@@ if test "$ac_init_help" = "long"; the # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF - \`configure' configures sqlite 3.7.0.1 to adapt to many kinds of systems. -\`configure' configures sqlite 3.7.1 to adapt to many kinds of systems. ++\`configure' configures sqlite >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@@ -1552,7 -1552,7 +1552,7 @@@ f if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sqlite 3.7.0.1:";; - short | recursive ) echo "Configuration of sqlite 3.7.1:";; ++ short | recursive ) echo "Configuration of sqlite >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT:";; esac cat <<\_ACEOF @@@ -1670,7 -1670,7 +1670,7 @@@ f test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF - sqlite configure 3.7.0.1 -sqlite configure 3.7.1 ++sqlite configure >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT generated by GNU Autoconf 2.62 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@@ -1684,7 -1684,7 +1684,7 @@@ cat >config.log <<_ACEO This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. - It was created by sqlite $as_me 3.7.0.1, which was -It was created by sqlite $as_me 3.7.1, which was ++It was created by sqlite $as_me >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT, which was generated by GNU Autoconf 2.62. Invocation command line was $ $0 $@ @@@ -13972,7 -13972,7 +13972,7 @@@ exec 6>& # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" - This file was extended by sqlite $as_me 3.7.0.1, which was -This file was extended by sqlite $as_me 3.7.1, which was ++This file was extended by sqlite $as_me >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT, which was generated by GNU Autoconf 2.62. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@@ -14025,7 -14025,7 +14025,7 @@@ Report bugs to . _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ - sqlite config.status 3.7.0.1 -sqlite config.status 3.7.1 ++sqlite config.status >>>>>>> BEGIN MERGE CONFLICT3.7.1============================3.7.0.1<<<<<<< END MERGE CONFLICT configured by $0, generated by GNU Autoconf 2.62, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --cc manifest index 276891a494,7a2812507f..93b92a8618 --- a/manifest +++ b/manifest @@@ -1,11 -1,14 +1,14 @@@ - C Updating\sapple-osx\swith\sminor\ssource\sfixes,\sdatabase\struncate\sand\sreplace\sprivate\scalls\sand\sa\sbunch\sof\sconditionalization\sfor\stests\srunning\sin\sdifferent\senvironments - D 2010-08-18T00:09:48 - F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 + -----BEGIN PGP SIGNED MESSAGE----- + Hash: SHA1 + -C Remove\sa\sNEVER()\sthat\sis\sactually\sreachable. -D 2010-08-17T19:49:14 ++C Merge\sthe\s3.7.1\spre-release\ssnapshot\schanges\sas\sof\s[2010-08-18]\s\ninto\sthe\sapple-osx\sbranch. ++D 2010-08-18T00:24:10 + F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f -F Makefile.in ec08dc838fd8110fe24c92e5130bcd91cbb1ff2e +F Makefile.in 9e1872338c526a5d6797f19dd04388f2a321e3d6 - F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 - F Makefile.vxworks 4314cde20a1d9460ec5083526ea975442306ae7e + F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 + F Makefile.vxworks c85ec1d8597fe2f7bc225af12ac1666e21379151 F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 - F VERSION 84a3e1c74ef99b2c08ceb1142780ac63d6e44c3d + F VERSION ddbfd1d7e557883fe2fd646cffe46c28cebcff48 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531 F art/2005osaward.gif 0d1851b2a7c1c9d0ccce545f3e14bca42d7fd248 @@@ -21,8 -24,8 +24,8 @@@ F art/src_logo.gif 9341ef09f0e53cd44c0c F config.guess 226d9a188c6196f3033ffc651cbc9dcee1a42977 F config.h.in 868fdb48c028421a203470e15c69ada15b9ba673 F config.sub 9ebe4c3b3dab6431ece34f16828b594fb420da55 - F configure 37e90c7b9b88007f064f690ed79e64e228a51158 - F configure.ac 14740970ddb674d92a9f5da89083dff1179014ff -F configure e0e4abf2b1a2c53a3b46e9ee9eb859fad58df4c4 x ++F configure 6058ffa62c2ad5a77621f62adfe19b45852f6511 + F configure.ac 699040cc9abb7465dca5a2972bc89d227fd8f734 F contrib/sqlitecon.tcl 210a913ad63f9f991070821e599d600bd913e0ad F doc/lemon.html f0f682f50210928c07e562621c3b7e8ab912a538 F doc/pager-invariants.txt 870107036470d7c419e93768676fae2f8749cf9e @@@ -78,7 -81,7 +81,7 @@@ F ext/icu/README.txt bf8461d8cdc6b8f514 F ext/icu/icu.c 850e9a36567bbcce6bd85a4b68243cad8e3c2de2 F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 - F ext/rtree/rtree.c 99ce980d111729c4f438ec883dc2048ae8614ab5 -F ext/rtree/rtree.c f2fbb6470155316027a8b888e8623bc1819fe443 ++F ext/rtree/rtree.c f76dba3edc1bd5f261f9d71e455fb62619099151 F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e F ext/rtree/rtree1.test 51bb0cd0405970501e63258401ae5ad235a4f468 F ext/rtree/rtree2.test 7b665c44d25e51b3098068d983a39902b2e2d7a1 @@@ -124,25 -124,25 +127,25 @@@ F src/callback.c da3c38d0ef5d7f04fae371 F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df F src/date.c 5dd8448a0bfea8d31fb14cff487d0c06ff8c8b20 - F src/delete.c 41cb4f78557810eecc167b7e2317de7e12d20929 - F src/expr.c 96bda574284ead53ba7af6334414b4e958cc866a + F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd + F src/expr.c 9532d71de52ad7a5523b0a4b9d7d64874560e328 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb - F src/fkey.c e2116672a6bd610dc888e27df292ebc7999c9bb0 - F src/func.c 2448e7118bd35a4de4caefbccb4dde7ef9542bd0 + F src/fkey.c 58bbf52c6ddd3f64ca40a3230f9e548a83a5cb16 -F src/func.c 464b0dc70618b896c402c574eb04bc5eacf35341 ++F src/func.c 62373e488ecf8b29a28548ff9d922a9fae36b808 F src/global.c 02335177cf6946fe5525c6f0755cf181140debf3 F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 - F src/insert.c d9476f23f85a20eea3cc25a4b9f9cbae77a33bf2 + 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 1c7a61ce1281041f437333f366a96aa0d29bb581 - F src/main.c 5f44f46e02a19ce7e4a0e8bc16cb2c9a63d7a077 - F src/malloc.c 09c3777bf733a387bec6aa344e455eb4e8ecf47e + F src/loadext.c 6d422ea91cf3d2d00408c5a8f2391cd458da85f8 -F src/main.c 99622181f36d68e9f2a851c7b34263b3dcd03470 ++F src/main.c 414f59006f66a665169327700ceb27c2fd0e7c72 + F src/malloc.c 19a468460c7df72de245f10c06bd0625777b7c83 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 -F src/mem1.c 89d4ea8d5cdd55635cbaa48ad53132af6294cbb2 +F src/mem1.c 0f36f1eecd786240924a56f8796ffa850d47a96f - F src/mem2.c 2ee7bdacda8299b5a91cff9f7ee3e46573195c38 + F src/mem2.c 12c91260fd2320eda9355dea5445b137f848c05b F src/mem3.c 9b237d911ba9904142a804be727cc6664873f8a3 F src/mem5.c eb7a5cb98915dd7a086fa415ce3a5a0f20d0acff F src/memjournal.c 4a93a25ad9f76c40afa070ffd7187eb3a5fd7aee @@@ -157,45 -157,44 +160,45 @@@ F src/os.c 60178f518c4d6c0dcb59f7292232 F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9 F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e - F src/os_unix.c b7267d7fa3b77306bcebcd6bb2a322ebf06e4d21 - F src/os_win.c 1f8b0a1a5bcf6289e7754d0d3c16cec16d4c93ab - F src/pager.c c0f3c60b701a794344961700da7c4e2ae23d79a8 - F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c - F src/parse.y 220a11ac72e2c9dffbf4cbe5fe462f328bd8d884 -F src/os_unix.c 11194cbcf6a57456e58022dc537ab8c3497d9bb9 ++F src/os_unix.c 3853edc254c464c040232a0b422b8f513205399a + F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7 -F src/pager.c 3c0f1bd2f6870b2b98f540470d39cde9c5c964d2 ++F src/pager.c e75ccadfe01cf67e25a0abd5343cd84d7373dd71 + F src/pager.h ef8c8f71ab022cc2fff768a1175dd32355be9dcd + F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07 F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050 - F src/pcache1.c 3a7c28f46a61b43ff0b5c087a7983c154f4b264c - F src/pragma.c 055115ce2ba78af1aee2b973d947172a036f7a98 - F src/prepare.c e81fd00d882e849498b0927a046cd06aab7bd502 - F src/printf.c 5f5b65a83e63f2096a541a340722a509fa0240a7 + F src/pcache1.c 638844c118163e3a10e1e3265703adf74870312d -F src/pragma.c 8b24ce00a93de345b6c3bd1e1e2cfba9f63d2325 -F src/prepare.c ce4c35a2b1d5fe916e4a46b70d24a6e997d7c4c6 ++F src/pragma.c 3dbb254a99d7a5ccaff8eb1f8689556ff82fe6d0 ++F src/prepare.c 23b5da0608820c9f76aa61d4955ebdbd23ffda36 + F src/printf.c 8ae5082dd38a1b5456030c3755ec3a392cd51506 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 - F src/select.c 4903ff1bbd08b55cbce00ea43c645530de41b362 - F src/shell.c fd4ccdb37c3b68de0623eb938a649e0990710714 - F src/sqlite.h.in 8b05aef506d9bc7fc7da1572744e3174cb16ed59 + F src/select.c 8add6cab889fc02e1492eda8dba462ccf11f51dd + F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056 + F src/sqlite.h.in 2d72a6242df41c517e38eec8791abcf5484a36f1 +F src/sqlite3_private.h 2a814d17913732831acf13e7e87860105a3416e4 F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89 - F src/sqliteInt.h d9e42f2029d4c526f9ba960bda1980ef17429c30 - F src/sqliteLimit.h 196e2f83c3b444c4548fc1874f52f84fdbda40f3 - F src/status.c 4df6fe7dce2d256130b905847c6c60055882bdbe + F src/sqliteInt.h e33b15e8176442bf7484f0e716edfd1ce03b2979 + F src/sqliteLimit.h 4ae9b005144400984cbcafd4d7c09659bb2af92a + F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e - F src/tclsqlite.c ae1e4fb653c91ddad7e2534d209711a12604ccc4 - F src/test1.c 8d65857cd33db9baa6f276ce6fcd76c98c798261 - F src/test2.c e3f564ab1e9fd0b47b0c9e23e7054e38bf0836cf + F src/tclsqlite.c 5cd96419fb6c771006f064196ccc70c29d01bec7 -F src/test1.c 55005c9781b157b1d215ba145768783b9abae78c ++F src/test1.c 6abff878520c77f10891b06c36a57b3226ebc3d4 + F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31 F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94 - F src/test4.c ad03bb987ddedce928f4258c1e7fa4109a73497d - F src/test5.c cc55900118fa4add8ec9cf69fc4225a4662f76b1 + F src/test4.c 0528360b5025688002a5feb6be906ddce52eaaee + F src/test5.c e1a19845625144caf038031234a12185e40d315c F src/test6.c c7256cc21d2409486d094277d5b017e8eced44ba - F src/test7.c 3f2d63e4ccf97f8c2cf1a7fa0a3c8e2e2a354e6e - F src/test8.c f959db9a22d882013b64c92753fa793b2ce3bdea + F src/test7.c d67f65d82815eb0b57699b122ca0145dbea55bbb + F src/test8.c 6b1d12912a04fe6fca8c45bb9c3ea022f4352228 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 5a11c51af2156e2d07186930b36f2b8239a4393f +F src/test_config.c 91e758b037c7c58a6e3b3ce6babae883666174e9 - F src/test_demovfs.c da81a5f7785bb352bda7911c332a983ec4f17f27 + F src/test_demovfs.c 0aed671636735116fc872c5b03706fd5612488b5 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20 F src/test_hexio.c 1237f000ec7a491009b1233f5c626ea71bce1ea2 @@@ -222,19 -221,19 +225,19 @@@ F src/update.c 1521162d20c2994af1fdc883 F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685 F src/util.c 32aebf04c10e51ad3977a928b7416bed671b620b F src/vacuum.c 241a8386727c1497eba4955933356dfba6ff8c9f - F src/vdbe.c a4c6eed89bb8332aa5ac4828e38e30e7c833477a - F src/vdbe.h 471f6a3dcec4817ca33596fe7f6654d56c0e75f3 - F src/vdbeInt.h 19ebc8c2a2e938340051ee65af3f377fb99102d1 - F src/vdbeapi.c a4e1b491545b8927d54c96b5ac8e44e460e2b7d5 - F src/vdbeaux.c 7f99c1f00e4b31e8b28d8a87ecc2322bb46ae99c -F src/vdbe.c 66c262a923915e596379b1d597178e04c5d719e4 ++F src/vdbe.c 60ef76968e7ab2288ee1e39573a090e549fd8f3d + F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2 + F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc -F src/vdbeapi.c d0f4407e465f261780ad725c1caece7d66a6aa35 ++F src/vdbeapi.c 232d20465aa606c12520840597361279c7a96236 + F src/vdbeaux.c c73bcefcebfd3d2cf91bf6a41ef0fb0d884814c6 F src/vdbeblob.c 258a6010ba7a82b72b327fb24c55790655689256 - F src/vdbemem.c 5e579abf6532001dfbee0e640dc34eae897a9807 + F src/vdbemem.c e5673f81a2381b35c60e73ef0a8502be2ab1041e F src/vdbetrace.c 864cef96919323482ebd9986f2132435115e9cc2 - F src/vtab.c a0f8a40274e4261696ef57aa806de2776ab72cda - F src/wal.c 0925601f3299c2941a67c9cfff41ee710f70ca82 - F src/wal.h 906c85760598b18584921fe08008435aa4eeeeb2 + F src/vtab.c 0e8e0cb30dffb078367e843e84e37ef99236c7e4 + F src/wal.c 109c45210e5b01c6fd3de92805488a2f6895e17f + F src/wal.h 96669b645e27cd5a111ba59f0cae7743a207bc3c F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f - F src/where.c 903a7828a0a7de03b5d0f1b5eff222d8d5b138f1 + F src/where.c 7db3e41c2a846f9deeb24f1bbb75461b4010b7b5 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 F test/all.test 6745008c144bd2956d58864d21f7b304689c1cce @@@ -351,7 -350,7 +354,7 @@@ F test/enc.test e54531cd6bf941ee6760be0 F test/enc2.test 6d91a5286f59add0cfcbb2d0da913b76f2242398 F test/enc3.test 5c550d59ff31dccdba5d1a02ae11c7047d77c041 F test/eval.test bc269c365ba877554948441e91ad5373f9f91be3 - F test/exclusive.test b8ac927ca1067abd0044703aca2d00cd56d518ab -F test/exclusive.test b1f9012cabc124af947165d15ffa62ad20f63db8 ++F test/exclusive.test 9e62270fdf967870921053e2ec0f293b67c140a4 F test/exclusive2.test fcbb1c9ca9739292a0a22a3763243ad6d868086b F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7 F test/expr.test 9f521ae22f00e074959f72ce2e55d46b9ed23f68 @@@ -473,8 -473,8 +477,8 @@@ 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 2d5a8b6d68de8512f522532731d90ca96912f3b7 + F test/jrnlmode.test e3fe6c4a2c3213d285650dc8e33aab7eaaa5ce53 F test/jrnlmode2.test a19e28de1a6ec898067e46a122f1b71c9323bf00 F test/jrnlmode3.test cfcdb12b90e640a23b92785a002d96c0624c8710 F test/keyword1.test a2400977a2e4fde43bf33754c2929fda34dbca05 @@@ -489,13 -489,12 +493,13 @@@ F test/lock.test 842e80b6be816c79525a20 F test/lock2.test 5242d8ac4e2d59c403aebff606af449b455aceff F test/lock3.test f271375930711ae044080f4fe6d6eda930870d00 F test/lock4.test c82268c031d39345d05efa672f80b025481b3ae5 -F test/lock5.test b2abb5e711bc59b0eae00f6c97a36ec9f458fada +F test/lock5.test d0d313f059ae5661726d3f197ba6ed8f69257d8e F test/lock6.test 8df56060f396151777390982422c800d026e1722 F test/lock7.test 64006c84c1c616657e237c7ad6532b765611cf64 - F test/lock_common.tcl e7013c6208f5fa818735c324eb0249b4c0f317cf + F test/lock_common.tcl 57727421a6a850443944cbadfdf5a6dd9e4ac81c +F test/lock_proxy.test 9ea4307b186949fcfd012e4cd44149d2b6360da6 F test/lookaside.test 382e7bc2fab23d902c8eafb1b9ed7ababfff75a6 -F test/main.test 9d7bbfcc1b52c88ba7b2ba6554068ecf9939f252 +F test/main.test 753e2b772c041bd8dbd17c7e4132b3981378eaab F test/make-where7.tcl 05c16b5d4f5d6512881dfec560cb793915932ef9 F test/malloc.test 927e6c8668a1d48c23aa6189bda02aff5a1b83de F test/malloc3.test 4bc57f850b212f706f3e1b37c4eced1d5a727cd1 @@@ -543,16 -542,17 +547,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 8343530e91cf617b3157dac05531fa4038e9a263 - F test/pager2.test f5c757c271ce642d36a393ecbfb3aef1c240dcef - F test/pagerfault.test c1d176326ce244db157ce9c3ba128be2a9b172d6 -F test/pager1.test 6922029d71a8090169c71a67a141b6b94ad17d50 ++F test/pager1.test 3c43e01a1daa7a843b8be832b87e719363f585f2 + F test/pager2.test 0fbb6b6dc40ce1fecfe758c555a748ad2e9beaa3 + F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f -F test/pagerfault.test f025fbe0cbab8f3aec6cc5676af60d7b488f868c ++F test/pagerfault.test 01e6fd28134f8c000273a5040dce1e089f5ae3a3 F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401 F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806 F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb F test/pcache.test 4118a183908ecaed343a06fcef3ba82e87e0129d F test/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16 - F test/permutations.test 3fe47c21c32b294b2354e702a25bfbff65747bb1 + F test/permutations.test 17498d1219f922d5a6da893a94c4dc7766fb2426 -F test/pragma.test ed78d200f65c6998df51196cb8c39d5300570f24 +F test/pragma.test 66a412d365188cebac3e4e2075eaf8f5d6eb87a2 F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47 F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 @@@ -588,9 -588,9 +593,9 @@@ F test/select8.test 391de11bdd52339c305 F test/select9.test 74c0fb2c6eecb0219cbed0cbe3df136f8fbf9343 F test/selectA.test 06d1032fa9009314c95394f2ca2e60d9f7ae8532 F test/selectB.test f305cc6660804cb239aab4e2f26b0e288b59958b - F test/selectC.test 33bb5673a8141df193c6fd56e6de7fea38b8d2ee + F test/selectC.test f9bf1bc4581b5b8158caa6e4e4f682acb379fb25 F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c - F test/shared.test a192585f23f5b9aab2e16fe6f11af79893353a62 -F test/shared.test b9114eaea7e748a3a4c8ff7b9ca806c8f95cef3e ++F test/shared.test e5ed27551ba06b28e851101683f0caef1445f4ac F test/shared2.test d6ba4ca1827ea36a1ac23a99e3c36eeac9165450 F test/shared3.test d69bdd5f156580876c5345652d21dc2092e85962 F test/shared4.test d0fadacb50bb6981b2fb9dc6d1da30fa1edddf83 @@@ -621,10 -621,10 +626,10 @@@ F test/sync.test ded6b39d8d8ca3c0c55185 F test/table.test 04ba066432430657712d167ebf28080fe878d305 F test/tableapi.test 7262a8cbaa9965d429f1cbd2747edc185fa56516 F test/tclsqlite.test 8c154101e704170c2be10f137a5499ac2c6da8d3 -F test/tempdb.test 800c36623d67a2ad1f58784b9c5644e0405af6e6 +F test/tempdb.test 285dda9fdf10730702549e8aa19c9258bbf753b8 F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05 - F test/tester.tcl faae2f58058f129fa13992bdf728ee672d513588 -F test/tester.tcl 6135019fcfac363ea0e11aee670cc97080ab578e ++F test/tester.tcl fc391eaf41d13b83084b2433abfbe3228ff92b30 F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca @@@ -783,24 -785,25 +790,25 @@@ F test/vtabE.test 7c4693638d7797ce2eda1 F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8 F test/vtab_shared.test 0eff9ce4f19facbe0a3e693f6c14b80711a4222d - F test/wal.test 93cbc7a85563b2445940b77bf20d527755e6fc9d - F test/wal2.test 86d38974445365f082fdc1c41cd8151f6d83685d - F test/wal3.test c5d29ae29989b87dfe583b96c839a824d830e8e4 -F test/wal.test 5847943563e4a38aa9ceff12891a52bdda17f3a6 -F test/wal2.test 223f3e14d475730af772a7f5862d4bcfa7565c3a -F test/wal3.test 695ea0f6c516423c611891df9a285aacd33344e3 -F test/wal4.test 3404b048fa5e10605facaf70384e6d2943412e30 ++F test/wal.test 06430c11a0732b84231e30b466cc4265a57c07ea ++F test/wal2.test 998e1807c7bea96f1a5246adf670d02137118339 ++F test/wal3.test 2bc5bed33ba16db805ee00185c083a7c24070fe2 +F test/wal4.test 6a68c45bc1ca24a3592ec449ddcb92b29d0e0e87 F test/wal_common.tcl 895d76138043b86bdccf36494054bdabcf65837b -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 05c470688d742688e455dd56816bd6bcffa298f8 -F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483 -F test/walmode.test 4ecd37284f245247f7935896ab66f6943f0432a0 +F test/walbak.test 767e1c9e0ea0cfb907873b332883e66e187fa4bc +F test/walbig.test 78ac493db2abdb65b9c6cace5b851cc32df1d449 +F test/walcksum.test cf6787f2ee1a6a3da6f0c2b20b9ede5153e4e03f +F test/walcrash.test 80c1cc3173a0ef09d8303fa556cb0187a36d82ea +F test/walcrash2.test 929c99d14ee2e3e3ef82585058968a8b12f72706 +F test/walfault.test 60527645638532a565a8e729db287ef0dba85ece +F test/walhook.test c934ac5219fee2b4e7653d291db9107b8dc73bba - F test/walmode.test 72517eb4f787c21b0478e608009642405885d613 ++F test/walmode.test c326079dd35481bbf1bbcf0f74a2d16463c97e49 + F test/walshared.test 985b4a3406b2b2dace1d52a42d26a11dd6900981 -F test/walslow.test d21625e2e99e11c032ce949e8a94661576548933 -F test/walthread.test a25a393c068a2b42b44333fa3fdaae9072f1617c +F test/walslow.test 989854bc5c214700a9f2d545bb158643813b8881 +F test/walthread.test e6e32e93ccebfa401dfc0dd930c79daa3472b0ae F test/where.test de337a3fe0a459ec7c93db16a519657a90552330 F test/where2.test 43d4becaf5a5df854e6c21d624a1cb84c6904554 - F test/where3.test aa44a9b29e8c9f3d7bb94a3bb3a95b31627d520d + F test/where3.test 3bf8006d441b66a57bee02bb420423f84eb8fde3 F test/where4.test e9b9e2f2f98f00379e6031db6a6fca29bae782a2 F test/where5.test fdf66f96d29a064b63eb543e28da4dfdccd81ad2 F test/where6.test 5da5a98cec820d488e82708301b96cb8c18a258b @@@ -842,7 -846,14 +851,14 @@@ F tool/speedtest2.tcl ee2149167303ba8e9 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f - P f88c6367d2f96cc93846ba38e6b963a1a3936e8d - R 5e13346496ee8c75e29f49b7f6c975c4 - U adam - Z 6d6d71585a30456468bba06c8dd3f59f -P 3f8c068a41b01f59d7f5d56f3bced78587f4d26c -R 0e975e64194b772586d783ae23f541c3 ++P 5e2ee7db0f7a2a042b182336438107e2248d7b88 acb171d4cfef2fec8833f761019f5c81f0d138a0 ++R 947bd4c119b9d5f55074dc6610886e81 + U drh -Z 7c3874a9d62d92c19dbda87e69ee4cca ++Z 964ffe986640ee03584034c0fbd63d28 + -----BEGIN PGP SIGNATURE----- + Version: GnuPG v1.4.6 (GNU/Linux) + -iD8DBQFMaue9oxKgR168RlERAu71AJ9Nk4H9NiTuF/IHZPG8buHkH0saeACfS7El -cdIbCKIWYZrkomUAPmV/H70= -=c7oq ++iD8DBQFMaygtoxKgR168RlERAh8BAJ0Sc7lcQ318/YZu4lIkJpwUbxBirgCgiK/F ++nDAJI3FVvDVZNT4ltJLHPkQ= ++=ltft + -----END PGP SIGNATURE----- diff --cc manifest.uuid index b71ba23600,66d60a01a4..116ede08d0 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 5e2ee7db0f7a2a042b182336438107e2248d7b88 -acb171d4cfef2fec8833f761019f5c81f0d138a0 ++866e9286ae4226b2bec40ef18c672a41768abf1f diff --cc src/os_unix.c index 5ddb7daf65,e3ea4f222f..6a959442a1 --- a/src/os_unix.c +++ b/src/os_unix.c @@@ -3033,12 -3047,55 +3047,61 @@@ static int unixFileSize(sqlite3_file *i static int proxyFileControl(sqlite3_file*,int,void*); #endif + /* + ** This function is called to handle the SQLITE_FCNTL_SIZE_HINT + ** file-control operation. + ** + ** If the user has configured a chunk-size for this file, it could be + ** that the file needs to be extended at this point. Otherwise, the + ** SQLITE_FCNTL_SIZE_HINT operation is a no-op for Unix. + */ + static int fcntlSizeHint(unixFile *pFile, i64 nByte){ + if( pFile->szChunk ){ + i64 nSize; /* Required file size */ + struct stat buf; /* Used to hold return values of fstat() */ + + if( fstat(pFile->h, &buf) ) return SQLITE_IOERR_FSTAT; + + nSize = ((nByte+pFile->szChunk-1) / pFile->szChunk) * pFile->szChunk; + if( nSize>(i64)buf.st_size ){ + #if defined(HAVE_POSIX_FALLOCATE) && HAVE_POSIX_FALLOCATE + if( posix_fallocate(pFile->h, buf.st_size, nSize-buf.st_size) ){ + return SQLITE_IOERR_WRITE; + } + #else + /* If the OS does not have posix_fallocate(), fake it. First use + ** ftruncate() to set the file size, then write a single byte to + ** the last byte in each block within the extended region. This + ** is the same technique used by glibc to implement posix_fallocate() + ** on systems that do not have a real fallocate() system call. + */ + int nBlk = buf.st_blksize; /* File-system block size */ + i64 iWrite; /* Next offset to write to */ + int nWrite; /* Return value from seekAndWrite() */ + + if( ftruncate(pFile->h, nSize) ){ + pFile->lastErrno = errno; + return SQLITE_IOERR_TRUNCATE; + } + iWrite = ((buf.st_size + 2*nBlk - 1)/nBlk)*nBlk-1; + do { + nWrite = seekAndWrite(pFile, iWrite, "", 1); + iWrite += nBlk; + } while( nWrite==1 && iWrite0) && defined(__APPLE__) +#include "sqlite3_private.h" +#include +static int getDbPathForUnixFile(unixFile *pFile, char *dbPath); +#endif + /* ** Information and control of an open file handle. */ diff --cc src/pager.c index 6c7cdc25b2,e39ca9009a..e0c29f3dc5 --- a/src/pager.c +++ b/src/pager.c @@@ -3363,21 -3888,10 +3889,22 @@@ static int pager_write_pagelist(Pager * ** file size will be. */ assert( rc!=SQLITE_OK || isOpen(pPager->fd) ); - if( rc==SQLITE_OK && pPager->dbSize>(pPager->dbOrigSize+1) ){ + if( rc==SQLITE_OK && pPager->dbSize>pPager->dbHintSize ){ sqlite3_int64 szFile = pPager->pageSize * (sqlite3_int64)pPager->dbSize; sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_SIZE_HINT, &szFile); + } +#endif + + /* Before the first write, give the VFS a hint of what the final + ** file size will be. + */ + if( rc==SQLITE_OK + && pPager->dbSize>(pPager->dbFileSize+1) + && isOpen(pPager->fd) + ){ + sqlite3_int64 szFile = pPager->pageSize * (sqlite3_int64)pPager->dbSize; + sqlite3OsFileControl(pPager->fd, SQLITE_FCNTL_SIZE_HINT, &szFile); + pPager->dbHintSize = pPager->dbSize; } while( rc==SQLITE_OK && pList ){ diff --cc src/test1.c index dd02971544,f458cdb40b..e8059f4a1d --- a/src/test1.c +++ b/src/test1.c @@@ -5216,9 -5185,8 +5295,10 @@@ 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 }, + { "file_control_chunksize_test", file_control_chunksize_test, 0 }, + { "sqlite3_vfs_list", vfs_list, 0 }, + { "path_is_local", path_is_local, 0 }, + { "path_is_dos", path_is_dos, 0 }, - { "sqlite3_vfs_list", vfs_list, 0 }, /* Functions from os.h */ #ifndef SQLITE_OMIT_UTF16 diff --cc test/pagerfault.test index f9c82ddb60,be9266149e..e671a3d3eb --- a/test/pagerfault.test +++ b/test/pagerfault.test @@@ -1046,36 -1046,155 +1046,188 @@@ ifcapable crashtest } +#------------------------------------------------------------------------- +# When a 3.7.0 client opens a write-transaction on a database file that +# has been appended to or truncated by a pre-370 client, it updates +# the db-size in the file header immediately. This test case provokes +# errors during that operation. +# +do_test pagerfault-22-pre1 { + faultsim_delete_and_reopen + db func a_string a_string + execsql { + PRAGMA page_size = 1024; + PRAGMA auto_vacuum = 0; + CREATE TABLE t1(a); + CREATE INDEX i1 ON t1(a); + INSERT INTO t1 VALUES(a_string(3000)); + CREATE TABLE t2(a); + INSERT INTO t2 VALUES(1); + } + db close + sql36231 { INSERT INTO t1 VALUES(a_string(3000)) } + faultsim_save_and_close +} {} +do_faultsim_test pagerfault-22 -prep { + faultsim_restore_and_reopen +} -body { + execsql { INSERT INTO t2 VALUES(2) } + execsql { SELECT * FROM t2 } +} -test { + faultsim_test_result {0 {1 2}} + faultsim_integrity_check +} + ++ + #------------------------------------------------------------------------- + # When a 3.7.0 client opens a write-transaction on a database file that + # has been appended to or truncated by a pre-370 client, it updates + # the db-size in the file header immediately. This test case provokes + # errors during that operation. + # + do_test pagerfault-22-pre1 { + faultsim_delete_and_reopen + db func a_string a_string + execsql { + PRAGMA page_size = 1024; + PRAGMA auto_vacuum = 0; + CREATE TABLE t1(a); + CREATE INDEX i1 ON t1(a); + INSERT INTO t1 VALUES(a_string(3000)); + CREATE TABLE t2(a); + INSERT INTO t2 VALUES(1); + } + db close + sql36231 { INSERT INTO t1 VALUES(a_string(3000)) } + faultsim_save_and_close + } {} + do_faultsim_test pagerfault-22 -prep { + faultsim_restore_and_reopen + } -body { + execsql { INSERT INTO t2 VALUES(2) } + execsql { SELECT * FROM t2 } + } -test { + faultsim_test_result {0 {1 2}} + faultsim_integrity_check + } + + #------------------------------------------------------------------------- + # Provoke an OOM error during a commit of multi-file transaction. One of + # the databases written during the transaction is an in-memory database. + # This test causes rollback of the in-memory database after CommitPhaseOne() + # has successfully returned. i.e. the series of calls for the aborted commit + # is: + # + # PagerCommitPhaseOne() -> SQLITE_OK + # PagerCommitPhaseOne() -> SQLITE_IOERR + # PagerRollback() + # PagerRollback() + # + do_faultsim_test pagerfault-23 -prep { + foreach f [glob -nocomplain test.db*] { file delete -force $f } + sqlite3 db :memory: + db eval { + ATTACH 'test.db2' AS aux; + CREATE TABLE t1(a, b); + CREATE TABLE aux.t2(a, b); + } + } -body { + execsql { + BEGIN; + INSERT INTO t1 VALUES(1,2); + INSERT INTO t2 VALUES(3,4); + COMMIT; + } + } -test { + faultsim_test_result {0 {}} + faultsim_integrity_check + } + + do_faultsim_test pagerfault-24 -prep { + faultsim_delete_and_reopen + db eval { PRAGMA temp_store = file } + execsql { CREATE TABLE x(a, b) } + } -body { + execsql { CREATE TEMP TABLE t1(a, b) } + } -test { + faultsim_test_result {0 {}} \ + {1 {unable to open a temporary database file for storing temporary tables}} + set ic [db eval { PRAGMA temp.integrity_check }] + if {$ic != "ok"} { error "Integrity check: $ic" } + } + + proc lockrows {n} { + if {$n==0} { return "" } + db eval { SELECT * FROM t1 WHERE oid = $n } { + return [lockrows [expr {$n-1}]] + } + } + + + do_test pagerfault-25-pre1 { + faultsim_delete_and_reopen + db func a_string a_string + execsql { + PRAGMA page_size = 1024; + PRAGMA auto_vacuum = 0; + CREATE TABLE t1(a); + INSERT INTO t1 VALUES(a_string(500)); + INSERT INTO t1 SELECT a_string(500) FROM t1; + INSERT INTO t1 SELECT a_string(500) FROM t1; + INSERT INTO t1 SELECT a_string(500) FROM t1; + INSERT INTO t1 SELECT a_string(500) FROM t1; + INSERT INTO t1 SELECT a_string(500) FROM t1; + } + faultsim_save_and_close + } {} + do_faultsim_test pagerfault-25 -prep { + faultsim_restore_and_reopen + db func a_string a_string + set ::channel [db incrblob -readonly t1 a 1] + execsql { + PRAGMA cache_size = 10; + BEGIN; + INSERT INTO t1 VALUES(a_string(3000)); + INSERT INTO t1 VALUES(a_string(3000)); + } + } -body { + lockrows 30 + } -test { + catch { lockrows 30 } + catch { db eval COMMIT } + close $::channel + faultsim_test_result {0 {}} + } + + do_faultsim_test pagerfault-26 -prep { + faultsim_delete_and_reopen + execsql { + PRAGMA page_size = 1024; + PRAGMA journal_mode = truncate; + PRAGMA auto_vacuum = full; + PRAGMA locking_mode=exclusive; + CREATE TABLE t1(a, b); + INSERT INTO t1 VALUES(1, 2); + PRAGMA page_size = 4096; + } + } -body { + execsql { + VACUUM; + } + } -test { + faultsim_test_result {0 {}} + + set contents [db eval {SELECT * FROM t1}] + if {$contents != "1 2"} { error "Bad database contents ($contents)" } + + set sz [file size test.db] + if {$testrc!=0 && $sz!=1024*3 && $sz!=4096*3} { + error "Expected file size to be 3072 or 12288 bytes - actual size $sz bytes" + } + if {$testrc==0 && $sz!=4096*3} { + error "Expected file size to be 12288 bytes - actual size $sz bytes" + } + } + + finish_test diff --cc test/tester.tcl index fc2fd73e69,fb26561b23..528cdc8ceb --- a/test/tester.tcl +++ b/test/tester.tcl @@@ -1149,36 -1151,12 +1155,41 @@@ proc permutation {} catch {set perm $::G(perm:name)} set perm } + proc presql {} { + set presql "" + catch {set presql $::G(perm:presql)} + set presql + } +proc forced_proxy_locking {} { + ifcapable lock_proxy_pragmas&&prefer_proxy_locking { + set force_proxy_value 0 + set force_key "SQLITE_FORCE_PROXY_LOCKING=" + foreach {env_pair} [exec env] { + if { [string first $force_key $env_pair] == 0} { + set force_proxy_value [string range $env_pair [string length $force_key] end] + } + } + if { "$force_proxy_value " == "1 " } { + return 1 + } + } + return 0 +} + +proc wal_is_ok {} { + if { [forced_proxy_locking] } { + return 0 + } + if { ![path_is_local "."] } { + return 0 + } + if { [path_is_dos "."] } { + return 0 + } + return 1 +} + #------------------------------------------------------------------------- # proc slave_test_script {script} {