From: drh Date: Fri, 19 Nov 2010 23:50:48 +0000 (+0000) Subject: Merge all the latest changes from the trunk into the apple-osx branch. X-Git-Tag: mountain-lion~45 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5a5ced7da91dc856b25f858f3ff9ed93550b0b98;p=thirdparty%2Fsqlite.git Merge all the latest changes from the trunk into the apple-osx branch. FossilOrigin-Name: c8bc057c7def6bbbebd89ee52b582bad75fb0509 --- 5a5ced7da91dc856b25f858f3ff9ed93550b0b98 diff --cc Makefile.in index 5932f6561e,c9d42c622d..00bb894c9f --- a/Makefile.in +++ b/Makefile.in @@@ -463,17 -464,8 +467,19 @@@ EXTHDR += $(TOP)/ext/rtree/rtree.h EXTHDR += \ $(TOP)/ext/icu/sqliteicu.h + EXTHDR += \ + $(TOP)/ext/rtree/sqlite3rtree.h +EXTHDR += \ + $(TOP)/ext/sqlrr/sqlrr.h + +# If using the amalgamation, use sqlite3.c directly to build the test +# fixture. Otherwise link against libsqlite3.la. (This distinction is +# necessary because the test fixture requires non-API symbols which are +# hidden when the library is built via the amalgamation). +# +TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.la +TESTFIXTURE_SRC1 = sqlite3.c +TESTFIXTURE_SRC = $(TESTSRC) $(TOP)/src/tclsqlite.c $(TESTFIXTURE_SRC$(USE_AMALGAMATION)) # This is the default Makefile target. The objects listed here # are what get build when you type just "make" with no arguments. diff --cc ext/rtree/rtree.c index 4fc4f43d3f,9cac2f3c07..0b784ea2b9 --- a/ext/rtree/rtree.c +++ b/ext/rtree/rtree.c @@@ -63,9 -105,9 +105,10 @@@ #include #include +#include #ifndef SQLITE_AMALGAMATION + #include "sqlite3rtree.h" typedef sqlite3_int64 i64; typedef unsigned char u8; typedef unsigned int u32; @@@ -145,6 -189,15 +190,15 @@@ struct Rtree #define RTREE_REINSERT(p) RTREE_MINCELLS(p) #define RTREE_MAXCELLS 51 -/* ++/* + ** The smallest possible node-size is (512-64)==448 bytes. And the largest + ** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). + ** Therefore all non-root nodes must contain at least 3 entries. Since + ** 2^40 is greater than 2^64, an r-tree structure always has a depth of + ** 40 or less. + */ + #define RTREE_MAX_DEPTH 40 + /* ** An rtree cursor object. */ @@@ -741,13 -851,39 +852,39 @@@ static int rtreeEof(sqlite3_vtab_curso return (pCsr->pNode==0); } -/* ++/* + ** The r-tree constraint passed as the second argument to this function is + ** guaranteed to be a MATCH constraint. + */ + static int testRtreeGeom( + Rtree *pRtree, /* R-Tree object */ + RtreeConstraint *pConstraint, /* MATCH constraint to test */ + RtreeCell *pCell, /* Cell to test */ + int *pbRes /* OUT: Test result */ + ){ + int i; + double aCoord[RTREE_MAX_DIMENSIONS*2]; + int nCoord = pRtree->nDim*2; + + assert( pConstraint->op==RTREE_MATCH ); + assert( pConstraint->pGeom ); + + for(i=0; iaCoord[i]); + } + return pConstraint->xGeom(pConstraint->pGeom, nCoord, aCoord, pbRes); + } + /* ** Cursor pCursor currently points to a cell in a non-leaf page. - ** Return true if the sub-tree headed by the cell is filtered + ** Set *pbEof to true if the sub-tree headed by the cell is filtered ** (excluded) by the constraints in the pCursor->aConstraint[] ** array, or false otherwise. + ** + ** Return SQLITE_OK if successful or an SQLite error code if an error + ** occurs within a geometry callback. */ - static int testRtreeCell(Rtree *pRtree, RtreeCursor *pCursor){ + static int testRtreeCell(Rtree *pRtree, RtreeCursor *pCursor, int *pbEof){ RtreeCell cell; int ii; int bRes = 0; @@@ -763,11 -899,28 +900,28 @@@ ); switch( p->op ){ - case RTREE_LE: case RTREE_LT: bRes = p->rValuerValue>cell_max; break; + case RTREE_LE: case RTREE_LT: + bRes = p->rValuerValue>cell_max; + break; + - case RTREE_EQ: + case RTREE_EQ: bRes = (p->rValue>cell_max || p->rValueop==RTREE_MATCH ); + rc = testRtreeGeom(pRtree, p, &cell, &bRes); + if( rc!=SQLITE_OK ){ + return rc; + } + bRes = !bRes; + break; + } } } diff --cc manifest index 62cf24b18e,4c91ca52d0..30e6570b25 --- a/manifest +++ b/manifest @@@ -1,7 -1,7 +1,10 @@@ - C Integrated\sproxy\slocking\sfile\ssupport\sfor\sWAL\sjournal\smode\sand\sdouble\sfree\sfix - D 2010-11-09T00:43:59 -C Add\stests\sfor\s"PRAGMA\scheckpoint_fullfsync". -D 2010-11-19T18:48:10 ++-----BEGIN PGP SIGNED MESSAGE----- ++Hash: SHA1 ++ ++C Merge\sall\sthe\slatest\schanges\sfrom\sthe\strunk\sinto\sthe\sapple-osx\sbranch. ++D 2010-11-19T23:50:48 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f - F Makefile.in c58f7d37ad0f9b28655ba4e28c6cb0f879569cd7 -F Makefile.in e7a59672eaeb04408d1fa8501618d7501a3c5e39 ++F Makefile.in 9a343cc2c92c47da1b51941ab10a37db213e50b3 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.vxworks c85ec1d8597fe2f7bc225af12ac1666e21379151 F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 @@@ -78,25 -80,26 +83,29 @@@ 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 4646fb3f52f11842450c6465af382589d8a232ab -F ext/rtree/rtree.c 1a15546893b4c05df810ebc18d3bf910ac8ca601 ++F ext/rtree/rtree.c d818635ff92b7ec84ed055b136b97da262b4f4d1 F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e - F ext/rtree/rtree1.test 51bb0cd0405970501e63258401ae5ad235a4f468 - F ext/rtree/rtree2.test 7b665c44d25e51b3098068d983a39902b2e2d7a1 - F ext/rtree/rtree3.test dece988c363368af8c11862995c762071894918f - F ext/rtree/rtree4.test 94fdd570ab5bc47244d87d4590023be43ac786bd - F ext/rtree/rtree5.test 92508f5152a50110af6551fa5b769d1bbd7c4ef3 - F ext/rtree/rtree6.test 903720aaab819764c3693aaac0affe8174104ac8 - F ext/rtree/rtree7.test 6fd29fb8e13795c822f4ceeea92ab5d61c96976d + F ext/rtree/rtree1.test dbd4250ac0ad367a262eb9676f7e3080b0368206 + F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba + F ext/rtree/rtree3.test a494da55c30ee0bc9b01a91c80c81b387b22d2dc + F ext/rtree/rtree4.test 0061e6f464fd3dc6a79f82454c5a1c3dadbe42af + F ext/rtree/rtree5.test ce3d7ccae2cfd9d2e1052b462424964c9bdcda12 + F ext/rtree/rtree6.test 309806a2a27ef5897d4dd6aee2e8006bf754cc22 + F ext/rtree/rtree7.test bcb647b42920b3b5d025846689147778485cc318 + F ext/rtree/rtree8.test 9772e16da71e17e02bdebf0a5188590f289ab37d + F ext/rtree/rtree9.test df9843d1a9195249c8d3b4ea6aedda2d5c73e9c2 + F ext/rtree/rtreeA.test ace05e729a36e342d40cf94e9efc7b4723d9dcdf F ext/rtree/rtree_perf.tcl 6c18c1f23cd48e0f948930c98dfdd37dfccb5195 F ext/rtree/rtree_util.tcl 06aab2ed5b826545bf215fff90ecb9255a8647ea - F ext/rtree/tkt3363.test 2bf324f7908084a5f463de3109db9c6e607feb1b + 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 + F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 - F main.mk c65aaec3a68162beb49281cbfed56cf17f1701a1 -F main.mk 05d0f3475dd331896bd607cfb45c5e21b94589ad ++F main.mk bb9f05a55a75ca2aed934bb9fbdb985ae97c6a3e F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac @@@ -109,45 -112,45 +118,45 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7 F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad - F src/alter.c 8dc27638e7e2553e80b2b621f232be5eb1e85ef3 - F src/analyze.c da65ce99bb159b10e85a1e460adbe53a88062500 - F src/attach.c 17bec1f18254d9341369f20f90ba24ce35d20d10 + F src/alter.c 6a0c176e64a34929a4436048066a84ef4f1445b3 + F src/analyze.c 1ea594a912a14138e20a05db09d9065e46f29a2a + F src/attach.c 252c4f7e36cc219349451ed63e278c60e80b26f3 F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 - F src/backup.c 8ff0b7018df253c7f30d3f9702b0b16f19209d5c + F src/backup.c d5b0137bc20327af08c14772227cc35134839c30 F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff - F src/btree.c 5047fb303cdf6806a42676a6f513c57e15b7d69b - F src/btree.h b4ba2fdf6b64c7c376bdfffa826af6b786b151d9 - F src/btreeInt.h 5b034ff54800046cc5870605d683ac1f9134bd99 - F src/build.c 0018d49629fc4807100c988dd191dd95e185bb38 - F src/callback.c da3c38d0ef5d7f04fae371e519bda61aa9cb1704 + F src/btree.c ccafb8a86e9837daabe89ec590862907a669ecad + F src/btree.h 10f9296bf4edf034f5adce921b7b4383a56a1c90 + F src/btreeInt.h c424f2f131cc61ddf130f9bd736b3df12c8a51f0 + F src/build.c 00a327120d81ace6267e714ae8010c997d55de5d + F src/callback.c a1d1b1c9c85415dff013af033e2fed9c8382d33b F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df - F src/date.c 5dd8448a0bfea8d31fb14cff487d0c06ff8c8b20 + F src/date.c 1548fdac51377e4e7833251de878b4058c148e1b F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd - F src/expr.c 9ee507c3dc6eaa5657cbd1dad026cdeda89c559f + F src/expr.c 4b05c74061e9597f16bea6857b5598a8b5d5be5e F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb - F src/fkey.c 58bbf52c6ddd3f64ca40a3230f9e548a83a5cb16 - F src/func.c 62373e488ecf8b29a28548ff9d922a9fae36b808 + F src/fkey.c 17950a28f28b23e8ad3feaac5fc88c324d2f600a -F src/func.c 2b7cf54d2569c2eba42fe81165d1932b546681a3 ++F src/func.c 3856c6899fa4a9cb2da7b00cf5796171d88e34ae 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 6d422ea91cf3d2d00408c5a8f2391cd458da85f8 - F src/main.c 79573a52c9746bdc3e7942e0127556fa39cdbae5 - F src/malloc.c 19a468460c7df72de245f10c06bd0625777b7c83 + F src/loadext.c 8af9fcc75708d60b88636ccba38b4a7b3c155c3e -F src/main.c 721e5530b14b91a1fb6aead279af8b8729fa9a20 ++F src/main.c 657885e071f21e601abb727bf4794e55c0722df8 + F src/malloc.c 3d7284cd9346ab6e3945535761e68c23c6cf40ef F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 - F src/mem1.c 0f36f1eecd786240924a56f8796ffa850d47a96f - F src/mem2.c 9e5f72e38573db9598fe60d3fa530d473cc8714e -F src/mem1.c 00bd8265c81abb665c48fea1e0c234eb3b922206 ++F src/mem1.c 46095d62b241466ef51970e592aa3a7a87e443e1 + F src/mem2.c e307323e86b5da1853d7111b68fd6b84ad6f09cf F src/mem3.c 9b237d911ba9904142a804be727cc6664873f8a3 - F src/mem5.c eb7a5cb98915dd7a086fa415ce3a5a0f20d0acff - F src/memjournal.c 4a93a25ad9f76c40afa070ffd7187eb3a5fd7aee + F src/mem5.c 6fe00f46997bebb690397cb029719f711e7640e3 + F src/memjournal.c 0ebce851677a7ac035ba1512a7e65851b34530c6 F src/mutex.c 6949180803ff05a7d0e2b9334a95b4fb5a00e23f - F src/mutex.h 6fde601e55fa6c3fae768783c439797ab84c87c6 + F src/mutex.h fe2ef5e1c4dae531d5a544f9241f19c56d26803d F src/mutex_noop.c d5cfbca87168c661a0b118cd8e329a908e453151 F src/mutex_os2.c 6a62583e374ba3ac1a3fcc0da2bfdac7d3942689 F src/mutex_unix.c abb8c98a6c27c57280e71522d059e929c708d019 @@@ -157,33 -160,32 +166,33 @@@ F src/os.c 22ac61d06e72a0dac90040014733 F src/os.h 9dbed8c2b9c1f2f2ebabc09e49829d4777c26bf9 F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f F src/os_os2.c 72d0b2e562952a2464308c4ce5f7913ac10bef3e - F src/os_unix.c 79cf726c9a0bcc4691a01389031513c10bf15bed - F src/os_win.c 51cb62f76262d961ea4249489383d714501315a7 - F src/pager.c a5f5d9787b11dfb0b6082e6f5846d00b459a8e19 - F src/pager.h ef8c8f71ab022cc2fff768a1175dd32355be9dcd -F src/os_unix.c de5be4cdbf3d07018059934eaf7e5d8d594a895c ++F src/os_unix.c 357e5f1b261c601f0fef1211a040cc699056298f + F src/os_win.c 2f90f7bdec714fad51cd31b4ecad3cc1b4bb5aad + F src/pager.c a8b36940ca8afcb45224e0017669782b3b2c90a3 + F src/pager.h 0ea59db2a33bc6c2c02cae34de33367e1effdf76 F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 - F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07 + F src/pcache.c 09d38c44ab275db581f7a2f6ff8b9bc7f8c0faaa F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050 - F src/pcache1.c e921e8a1d52c93abde63cb6dad1fa39770410c52 - F src/pragma.c 3dbb254a99d7a5ccaff8eb1f8689556ff82fe6d0 - F src/prepare.c 23b5da0608820c9f76aa61d4955ebdbd23ffda36 + F src/pcache1.c e9578a3beac26f229ee558a4e16c863f2498185f -F src/pragma.c 8e87e9e3e8a6734995d22f60dcc8bb838db52436 -F src/prepare.c c2b318037d626fed27905c9446730b560637217a ++F src/pragma.c a56ea45deaa2e81227a8a26a2aa6745f21699700 ++F src/prepare.c 75d214bf34d3891cfafb8c4c75df3f7f9acbc4d6 F src/printf.c 8ae5082dd38a1b5456030c3755ec3a392cd51506 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50 F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 - F src/select.c 8add6cab889fc02e1492eda8dba462ccf11f51dd + F src/select.c 550d67688f5e8bc8022faf6d014838afba1415af F src/shell.c 8517fc1f9c59ae4007e6cc8b9af91ab231ea2056 - F src/sqlite.h.in 2d72a6242df41c517e38eec8791abcf5484a36f1 + F src/sqlite.h.in e6e87d10e6a3756b8c7e9a11703716b6a1575a40 +F src/sqlite3_private.h 2a814d17913732831acf13e7e87860105a3416e4 - F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89 - F src/sqliteInt.h e33b15e8176442bf7484f0e716edfd1ce03b2979 + F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754 + F src/sqliteInt.h f5b5041bfebd5654212992f6ebaa3f575c4b9c17 F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44 F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e - F src/tclsqlite.c cacee9482417b6fc6043f6bb831ff9496d46242d - F src/test1.c 6abff878520c77f10891b06c36a57b3226ebc3d4 + F src/tclsqlite.c 77c5c4b8ac7b2d94ee480e1ad626fbd921d948e4 -F src/test1.c c2aa29d0fd6db7506fb7f0de7bff1386078296df ++F src/test1.c b0cea79b02e227a8199c89c2e7a97b6e9cc613a2 F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31 - F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94 + F src/test3.c 056093cfef69ff4227a6bdb9108564dc7f45e4bc F src/test4.c 0528360b5025688002a5feb6be906ddce52eaaee F src/test5.c e1a19845625144caf038031234a12185e40d315c F src/test6.c c7256cc21d2409486d094277d5b017e8eced44ba @@@ -192,9 -194,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 91e758b037c7c58a6e3b3ce6babae883666174e9 -F src/test_config.c 55918873f0a2ebbd5b52417319987f9f99c401fa ++F src/test_config.c c3ba770a9924181aeed1717efb724b5ff17ccf34 F src/test_demovfs.c 0aed671636735116fc872c5b03706fd5612488b5 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20 @@@ -218,23 -224,23 +231,23 @@@ F src/test_vfs.c e10fcca756cafa89438311 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/tokenize.c 604607d6813e9551cf5189d899e0a25c12681080 F src/trigger.c b8bedb9c0084ceb51a40f54fcca2ce048c8de852 - F src/update.c 1521162d20c2994af1fdc8833e1a88dae09052c8 + F src/update.c 227e6cd512108b84f69421fc6c7aa1b83d60d6e0 F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685 - F src/util.c 32aebf04c10e51ad3977a928b7416bed671b620b - F src/vacuum.c 241a8386727c1497eba4955933356dfba6ff8c9f - F src/vdbe.c 60ef76968e7ab2288ee1e39573a090e549fd8f3d + F src/util.c cd78524566fe45671863eee78685969a4bfd4e4c + F src/vacuum.c 924bd1bcee2dfb05376f79845bd3b4cec7b54b2f -F src/vdbe.c 63bb1e56a035bc65b20d6f9c7d7c876f19b4605f ++F src/vdbe.c d623683612ebfc7fd7cae7f900dd95b92d114aa5 F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2 - F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc - F src/vdbeapi.c 232d20465aa606c12520840597361279c7a96236 - F src/vdbeaux.c c73bcefcebfd3d2cf91bf6a41ef0fb0d884814c6 - F src/vdbeblob.c 258a6010ba7a82b72b327fb24c55790655689256 - F src/vdbemem.c e5673f81a2381b35c60e73ef0a8502be2ab1041e + F src/vdbeInt.h 7f4cf1b2b69bef3a432b1f23dfebef57275436b4 -F src/vdbeapi.c fb0036185b3c56e15916a5ee96309cd4acf6818f ++F src/vdbeapi.c 09ebd299007972e9262dec825d8fc3baedf0d239 + F src/vdbeaux.c 762c2b146cf5fe7a7f743af1bbfed4a966aa937a + F src/vdbeblob.c e0ce3c54cc0c183af2ec67b63a289acf92251df4 + F src/vdbemem.c 23723a12cd3ba7ab3099193094cbb2eb78956aa9 F src/vdbetrace.c 864cef96919323482ebd9986f2132435115e9cc2 - F src/vtab.c 0e8e0cb30dffb078367e843e84e37ef99236c7e4 - F src/wal.c 5ac2119e23ee4424599d4275b66dc88d612a0543 - F src/wal.h 96669b645e27cd5a111ba59f0cae7743a207bc3c + F src/vtab.c b297e8fa656ab5e66244ab15680d68db0adbec30 + F src/wal.c f26b8d297bd11cb792e609917f9d4c6718ac8e0e + F src/wal.h c1aac6593a0b02b15dc625987e619edeab39292e F src/walker.c 3112bb3afe1d85dc52317cb1d752055e9a781f8f - F src/where.c 7db3e41c2a846f9deeb24f1bbb75461b4010b7b5 + F src/where.c fa22d45b2577c77146f2e894d58011d472d64103 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 F test/all.test 6745008c144bd2956d58864d21f7b304689c1cce @@@ -251,11 -257,11 +264,11 @@@ F test/async2.test bf5e2ca2c96763b4cba3 F test/async3.test 93edaa9122f498e56ea98c36c72abc407f4fb11e F test/async4.test 1787e3952128aa10238bf39945126de7ca23685a F test/async5.test f3592d79c84d6e83a5f50d3fd500445f7d97dfdf -F test/attach.test ce9660e51768fab93cf129787be886c5d6c4fd81 +F test/attach.test ccdedd5496a0244f8e45366ba9253af30083ea84 F test/attach2.test a295d2d7061adcee5884ef4a93c7c96a82765437 F test/attach3.test bd9830bc3a0d22ed1310c9bff6896927937017dc - F test/attachmalloc.test 38d2da5fdaf09ba0add57296967a3061e5842584 - F test/auth.test 8f21c160a4562f54f27618e85bac869efcecbcaf + F test/attachmalloc.test 1d5b821a676f7bf0b00d87cc106b78966789ba57 + F test/auth.test 26cc6f219580191539bf335abe03e55e49310846 F test/auth2.test 270baddc8b9c273682760cffba6739d907bd2882 F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5 F test/autoinc.test 85ef3180a737e6580086a018c09c6f1a52759b46 @@@ -351,12 -366,14 +373,14 @@@ F test/e_vacuum.test 057cc29445746fc1d2 F test/enc.test e54531cd6bf941ee6760be041dff19a104c7acea F test/enc2.test 6d91a5286f59add0cfcbb2d0da913b76f2242398 F test/enc3.test 5c550d59ff31dccdba5d1a02ae11c7047d77c041 + F test/enc4.test 4b575ef09e0eff896e73bd24076f96c2aa6a42de + F test/eqp.test 69670e7919030f21de29fb99bf1d68f97aedcbdb F test/eval.test bc269c365ba877554948441e91ad5373f9f91be3 - F test/exclusive.test 9e62270fdf967870921053e2ec0f293b67c140a4 - F test/exclusive2.test fcbb1c9ca9739292a0a22a3763243ad6d868086b -F test/exclusive.test 53e1841b422e554cecf0160f937c473d6d0e3062 ++F test/exclusive.test 897074dc6706b0c4f3b1dc4580ffddffe2a79206 + F test/exclusive2.test 76e63c05349cb70d09d60b99d2ae625525ff5155 F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7 - F test/expr.test 9f521ae22f00e074959f72ce2e55d46b9ed23f68 + 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 @@@ -491,16 -518,15 +525,16 @@@ 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 55bbfce7a6905be8282f125c2dbeb8688e2cfd8b ++F test/lock6.test 83434ae8ca1d1c5e2eaf74d4e44aa24ab62b291c F test/lock7.test 64006c84c1c616657e237c7ad6532b765611cf64 - F test/lock_common.tcl 18c637fc89e12f1ac0d27d2186f12c3d3f789e3e + F test/lock_common.tcl 43fef46b1c5b8ac05e382eab214705c23c70bc88 +F test/lock_proxy.test 95be9c32d79be25cf643b4e41a0aa0e53aa21621 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 + F test/malloc3.test 4128b1e6ffa506103b278ad97af89174f310c7ca F test/malloc4.test 957337613002b7058a85116493a262f679f3a261 F test/malloc5.test 4d16d1bb26d2deddd7c4f480deec341f9b2d0e22 F test/malloc6.test 2f039d9821927eacae43e1831f815e157659a151 @@@ -519,11 -545,11 +553,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 bd0b0916f03cb4f4c973bcb793f3057e84d5ecfb -F test/malloc_common.tcl 053003b3d925a4dbfd5159819a542266e5c8ed84 -F test/manydb.test b3d3bc4c25657e7f68d157f031eb4db7b3df0d3c -F test/memdb.test 0825155b2290e900264daaaf0334b6dfe69ea498 ++F test/malloc_common.tcl 520f8f1318586d09b6378315803c937d0be7795d +F test/manydb.test 7faa0df55bbab2b14c25f323801db336c4e7ce3a +F test/memdb.test f773146f66ee2c635854a8264317f39a6cc3e18c F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2 - F test/memsubsys1.test 98d5ff4c9f534cc863c07b74043bd44921893f29 -F test/memsubsys1.test 4cbec6f202c91504bfc4717bfc2ffd6160316c4c ++F test/memsubsys1.test 6827c7d06d5d60eda7a23c8d0b75d6922bd539dc F test/memsubsys2.test 72a731225997ad5e8df89fdbeae9224616b6aecc F test/minmax.test 722d80816f7e096bf2c04f4111f1a6c1ba65453d F test/minmax2.test 33504c01a03bd99226144e4b03f7631a274d66e0 @@@ -545,17 -572,17 +580,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 4d3bf78c043af2054cfb63897ef3f990a420c6a5 + F test/pager1.test 07b06b89d50bc38bb118a18b99c7bee645b315de F test/pager2.test 0fbb6b6dc40ce1fecfe758c555a748ad2e9beaa3 F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f - F test/pagerfault.test f168ec2c659faccffc083ec1847bf4295dd67d14 -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/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16 - F test/permutations.test 17498d1219f922d5a6da893a94c4dc7766fb2426 - F test/pragma.test 90f2386eba9785875dc19c6c464106ad7cca12c1 + F test/permutations.test 193238b7828759805091ecddd9a0912767f236a4 -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 @@@ -593,8 -624,8 +632,8 @@@ F test/selectA.test 06d1032fa9009314c95 F test/selectB.test f305cc6660804cb239aab4e2f26b0e288b59958b F test/selectC.test f9bf1bc4581b5b8158caa6e4e4f682acb379fb25 F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c -F test/shared.test b9114eaea7e748a3a4c8ff7b9ca806c8f95cef3e +F test/shared.test e5ed27551ba06b28e851101683f0caef1445f4ac - F test/shared2.test d6ba4ca1827ea36a1ac23a99e3c36eeac9165450 + F test/shared2.test 7f6ad2d857d0f4e5d6a0b9a897b5e56a6b6ea18c F test/shared3.test d69bdd5f156580876c5345652d21dc2092e85962 F test/shared4.test d0fadacb50bb6981b2fb9dc6d1da30fa1edddf83 F test/shared6.test 990d2584b5db28e6e1f24742c711b26e59757b67 @@@ -615,8 -646,8 +654,8 @@@ F test/speed4.test abc0ad3399dcf9703abe F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa F test/speed4p.test 0e51908951677de5a969b723e03a27a1c45db38b F test/sqllimits1.test e90a0ed94452076f6a10209d378e06b5f75ef0a0 - F test/stat.test 8b7342007bdb49a9427d57a9bb94d02d6e54f2d0 - F test/stmt.test 8e39760750cdf8044d4ca441b2b95053817c9a5f + 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 @@@ -624,10 -656,10 +664,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 285dda9fdf10730702549e8aa19c9258bbf753b8 -F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c ++F test/tempdb.test 3263e5c3f0604e54d307481e8587327c54544d18 F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05 - F test/tester.tcl e4bed769a9e7b55d569fe90e9548fc86d405acf8 -F test/tester.tcl 45e8f7b56ef93c5c66886f1bbd05dda78d248d86 ++F test/tester.tcl 33bbb5f93084f1280acec57f6a1879dfe8960718 F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca @@@ -706,8 -743,8 +751,8 @@@ F test/tkt3346.test 6f67c3ed7db94dfc5df F test/tkt3357.test 77c37c6482b526fe89941ce951c22d011f5922ed F test/tkt3419.test 1bbf36d7ea03b638c15804251287c2391f5c1f6b F test/tkt3424.test 61f831bd2b071bd128fa5d00fbda57e656ca5812 - F test/tkt3442.test 89d7b41a4ec4d9d9b40ab8575d648579fb13cb4f + F test/tkt3442.test 0adb70e9fe9cb750a702065a68ad647409dbc158 -F test/tkt3457.test edbf54b05cbe5165f00192becbd621038f1615e4 +F test/tkt3457.test 8a8f29536bf65b994bef5dde881404530b61a62a F test/tkt3461.test 228ea328a5a21e8663f80ee3d212a6ad92549a19 F test/tkt3493.test 1686cbde85f8721fc1bdc0ee72f2ef2f63139218 F test/tkt3508.test d75704db9501625c7f7deec119fcaf1696aefb7d @@@ -789,25 -826,26 +834,26 @@@ 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 70227190e713b3e7eb2a7d5ec3510b66db01f327 -F test/wal2.test f4ad3095da5269c89c823e7090ba2c116cdd1d63 -F test/wal3.test 957a5f2a8fe8a6ff01de1a15285ecf2f376fcaf8 -F test/wal4.test 3404b048fa5e10605facaf70384e6d2943412e30 +F test/wal.test d83c3d227e9e9bb5c7a0c1447ea4a3c6cd5fced4 - F test/wal2.test 998e1807c7bea96f1a5246adf670d02137118339 - F test/wal3.test 09278a6f54b3a847b502f426a63a0a3028c4e57e ++F test/wal2.test ca023e6440625f897f5ebcf4ae2d8bb652b181f3 ++F test/wal3.test 375c08e62b54233ad557473d1e63114f085be7a1 +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 81ed760def1c1573151d416b0d09178cf006f9fd -F test/walhook.test ed00a40ba7255da22d6b66433ab61fab16a63483 -F test/walmode.test 22ddccd073c817ac9ead62b88ac446e8dedc7d2c +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/walfault.test 395354b447eb3b249b725651fdbb6a83c461b5b4 +F test/walhook.test c934ac5219fee2b4e7653d291db9107b8dc73bba - F test/walmode.test 8746ec81f78597e0f988d8e31347dc1b9b22ebbd - F test/walshared.test 51082db7d1edc720256c524e9b22e92c50f72149 ++F test/walmode.test feb39956ec6f415fbb9dcb12d91243391c2c4715 + F test/walnoshm.test a074428046408f4eb5c6a00e09df8cc97ff93317 -F test/walshared.test 6dda2293880c300baf5d791c307f653094585761 -F test/walslow.test d21625e2e99e11c032ce949e8a94661576548933 -F test/walthread.test a25a393c068a2b42b44333fa3fdaae9072f1617c ++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 3bf8006d441b66a57bee02bb420423f84eb8fde3 + F test/where3.test 8ebedae552e13fc7f2b4e8df6cbe72a095347400 F test/where4.test e9b9e2f2f98f00379e6031db6a6fca29bae782a2 F test/where5.test fdf66f96d29a064b63eb543e28da4dfdccd81ad2 F test/where6.test 5da5a98cec820d488e82708301b96cb8c18a258b @@@ -828,8 -866,8 +874,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 be5206d081291aa4c0e1a328331171425bdbe77c - F tool/mksqlite3h.tcl eb100dce83f24b501b325b340f8b5eb8e5106b3b -F tool/mksqlite3c.tcl e0db70c2c52b0e3d0867ca931229e5b90ffe7837 ++F tool/mksqlite3c.tcl 136c838dba145ad65296522ff27cdd792657eaa0 + F tool/mksqlite3h.tcl 03b6ca938c833814923674d8a160e91fcedb4571 F tool/mksqlite3internalh.tcl 7b43894e21bcb1bb39e11547ce7e38a063357e87 F tool/omittest.tcl 27d6f6e3b1e95aeb26a1c140e6eb57771c6d794a F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c @@@ -851,7 -889,7 +897,14 @@@ F tool/speedtest2.tcl ee2149167303ba8e9 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f - P e01c5f3eda7fe6e6afe9c3894384f09b58173da1 - R 0f46b01a6860ee53146a14c10ec341dc - U adam - Z d51fce1db464c676813e4eba90c98e2f -P 570e79a8eb3bb2d2a15c46c55fbf52c9dd3e3ae8 -R a950411020f2e9a3c9e01441aa43e538 -U dan -Z 40fbbee993478998a34279e6b6efa9ec ++P fd4d38fa66de85676189ff4922fb1bf5f8cac9c4 765aa1b862fa38cede89bafe0e10c094e0544b7e ++R edc048689b86400e131d2f6440a0714d ++U drh ++Z e6c803c3f15462e630f40d2ef9def8b5 ++-----BEGIN PGP SIGNATURE----- ++Version: GnuPG v1.4.6 (GNU/Linux) ++ ++iD8DBQFM5w1boxKgR168RlERAkoAAJ9hX7bgyTYQryBDS6tUIBir1HRHMACeJ1nu ++KNrsAbBP663ZyA6UuIYCzmY= ++=H0Oq ++-----END PGP SIGNATURE----- diff --cc manifest.uuid index 2d60ca9cf6,738b7d7744..c8576f9d7c --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - fd4d38fa66de85676189ff4922fb1bf5f8cac9c4 -765aa1b862fa38cede89bafe0e10c094e0544b7e ++c8bc057c7def6bbbebd89ee52b582bad75fb0509 diff --cc src/main.c index cfe3c32bc4,f9e1a1c138..9153092c7d --- a/src/main.c +++ b/src/main.c @@@ -1663,14 -1711,8 +1718,14 @@@ int sqlite3_limit(sqlite3 *db, int limi } db->aLimit[limitId] = newLimit; } - return oldLimit; + return oldLimit; /* IMP: R-53341-35419 */ } +#if defined(SQLITE_ENABLE_AUTO_PROFILE) +static void profile_sql(void *aux, const char *sql, u64 ns) { +#pragma unused(aux) + fprintf(stderr, "Query: %s\n Execution Time: %llu ms\n", sql, ns / 1000000); +} +#endif /* ** This routine does the work of opening a database on behalf of diff --cc src/mem1.c index 29452d0485,61fbf4bdba..6b1c30afb5 --- a/src/mem1.c +++ b/src/mem1.c @@@ -111,9 -89,9 +111,9 @@@ static int sqlite3MemSize(void *pPrior) static void *sqlite3MemRealloc(void *pPrior, int nByte){ sqlite3_int64 *p = (sqlite3_int64*)pPrior; assert( pPrior!=0 && nByte>0 ); - nByte = ROUND8(nByte); + assert( nByte==ROUND8(nByte) ); /* EV: R-46199-30249 */ p--; - p = realloc(p, nByte+8 ); + p = SQLITE_REALLOC(p, nByte+8 ); if( p ){ p[0] = nByte; p++; diff --cc src/test1.c index e8059f4a1d,27834f36e1..d712e53300 --- a/src/test1.c +++ b/src/test1.c @@@ -5297,8 -5483,7 +5593,9 @@@ int Sqlitetest1_Init(Tcl_Interp *interp { "file_control_lockproxy_test", file_control_lockproxy_test, 0 }, { "file_control_chunksize_test", file_control_chunksize_test, 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 diff --cc src/test_config.c index c037e34e9a,12df78709a..5e92a8aa26 --- a/src/test_config.c +++ b/src/test_config.c @@@ -528,23 -534,7 +534,23 @@@ Tcl_SetVar2(interp, "sqlite_options", " #else Tcl_SetVar2(interp, "sqlite_options", "yytrackmaxstackdepth", "0", TCL_GLOBAL_ONLY); #endif + +#ifdef __APPLE__ +# if defined(__ppc__) + Tcl_SetVar2(interp, "os_options", "arch", "ppc", TCL_GLOBAL_ONLY); +# elif defined(__i386__) + Tcl_SetVar2(interp, "os_options", "arch", "i386", TCL_GLOBAL_ONLY); +# elif defined(__x86_64__) + Tcl_SetVar2(interp, "os_options", "arch", "x86_64", TCL_GLOBAL_ONLY); +# elif defined(__arm__) + Tcl_SetVar2(interp, "os_options", "arch", "arm", TCL_GLOBAL_ONLY); +# else +# error Unrecognized architecture for exec_options +# endif +#else + Tcl_SetVar2(interp, "os_options", "arch", "unknown", TCL_GLOBAL_ONLY); +#endif - + #define LINKVAR(x) { \ static const int cv_ ## x = SQLITE_ ## x; \ Tcl_LinkVar(interp, "SQLITE_" #x, (char *)&(cv_ ## x), \ diff --cc test/memsubsys1.test index 659dd0d95f,c24a8bf95d..3fa9993167 --- a/test/memsubsys1.test +++ b/test/memsubsys1.test @@@ -190,21 -180,18 +180,21 @@@ build_test_db memsubsys1-5 {PRAGMA page #show_memstats do_test memsubsys1-5.3 { set pg_used [lindex [sqlite3_status SQLITE_STATUS_PAGECACHE_USED 0] 2] - } 23 + } 24 -do_test memsubsys1-5.4 { - set maxreq [lindex [sqlite3_status SQLITE_STATUS_MALLOC_SIZE 0] 2] - expr {$maxreq>4096} -} 1 -do_test memsubsys1-5.5 { - set s_used [lindex [sqlite3_status SQLITE_STATUS_SCRATCH_USED 0] 2] -} 0 -do_test memsubsys1-5.6 { - set s_ovfl [lindex [sqlite3_status SQLITE_STATUS_SCRATCH_OVERFLOW 0] 2] - expr {$s_ovfl>6000} -} 1 +set msize [sqlite3_status SQLITE_STATUS_MALLOC_SIZE 0] +if {[lindex $msize 2]!=0} { + do_test memsubsys1-5.4 { + set maxreq [lindex [sqlite3_status SQLITE_STATUS_MALLOC_SIZE 0] 2] + expr {$maxreq>4096} + } 1 + do_test memsubsys1-5.5 { + set s_used [lindex [sqlite3_status SQLITE_STATUS_SCRATCH_USED 0] 2] + } 0 + do_test memsubsys1-5.6 { + set s_ovfl [lindex [sqlite3_status SQLITE_STATUS_SCRATCH_OVERFLOW 0] 2] + expr {$s_ovfl>6000} + } 1 +} # Test 6: Activate both PAGECACHE and SCRATCH with a 4k page size. # Make it so that SCRATCH is large enough diff --cc test/pragma.test index 36a304fedb,4b4418299c..8cbfef5434 --- a/test/pragma.test +++ b/test/pragma.test @@@ -1292,12 -1292,7 +1292,12 @@@ sqlite3 dbX :memory dbX eval {PRAGMA temp_store_directory = ""} dbX close -ifcapable lock_proxy_pragmas&&prefer_proxy_locking { +set skip_lock_proxy_tests [path_is_dos "."] - ifcapable !lock_proxy_pragmas&&prefer_proxy_locking { ++ifcapable !(lock_proxy_pragmas&&prefer_proxy_locking) { + set skip_lock_proxy_tests 1 +} + +if !$skip_lock_proxy_tests { set sqlite_hostid_num 1 set using_proxy 0 @@@ -1383,24 -1378,22 +1383,24 @@@ } {1} set sqlite_hostid_num 2 + # db access should be limited to one host at a time (simulate 2nd host id) do_test pragma-16.7 { - sqlite3 db test2.db - execsql { - PRAGMA lock_proxy_file=":auto:"; - } - catchsql { - select * from sqlite_master; - } + list [catch { + sqlite3 db test2.db + execsql { + PRAGMA lock_proxy_file=":auto:"; + select * from sqlite_master; + } + } msg] $msg } {1 {database is locked}} db close + # default to using proxy locking (simulate network file system detection) do_test pragma-16.8 { - sqlite3 db test2.db - catchsql { - select * from sqlite_master; - } + list [catch { + sqlite3 db test2.db + execsql { select * from sqlite_master } + } msg] $msg } {1 {database is locked}} db2 close diff --cc test/tester.tcl index ba87aa4aad,5911f5a544..f096bbadeb --- a/test/tester.tcl +++ b/test/tester.tcl @@@ -335,14 -337,100 +337,100 @@@ proc do_test {name cmd expected} } flush stdout } - + - proc do_execsql_test {testname sql result} { - uplevel do_test $testname [list "execsql {$sql}"] [list $result] + proc fix_testname {varname} { + upvar $varname testname + if {[info exists ::testprefix] + && [string is digit [string range $testname 0 0]] + } { + set testname "${::testprefix}-$testname" + } + } + + proc do_execsql_test {testname sql {result {}}} { + fix_testname testname + uplevel do_test $testname [list "execsql {$sql}"] [list [list {*}$result]] } proc do_catchsql_test {testname sql result} { + fix_testname testname uplevel do_test $testname [list "catchsql {$sql}"] [list $result] } + proc do_eqp_test {name sql res} { + uplevel do_execsql_test $name [list "EXPLAIN QUERY PLAN $sql"] [list $res] + } + + #------------------------------------------------------------------------- + # Usage: do_select_tests PREFIX ?SWITCHES? TESTLIST + # + # Where switches are: + # + # -errorformat FMTSTRING + # -count + # -query SQL + # -tclquery TCL + # -repair TCL + # + proc do_select_tests {prefix args} { + + set testlist [lindex $args end] + set switches [lrange $args 0 end-1] + + set errfmt "" + set countonly 0 + set tclquery "" + set repair "" + + for {set i 0} {$i < [llength $switches]} {incr i} { + set s [lindex $switches $i] + set n [string length $s] + if {$n>=2 && [string equal -length $n $s "-query"]} { + set tclquery [list execsql [lindex $switches [incr i]]] + } elseif {$n>=2 && [string equal -length $n $s "-tclquery"]} { + set tclquery [lindex $switches [incr i]] + } elseif {$n>=2 && [string equal -length $n $s "-errorformat"]} { + set errfmt [lindex $switches [incr i]] + } elseif {$n>=2 && [string equal -length $n $s "-repair"]} { + set repair [lindex $switches [incr i]] + } elseif {$n>=2 && [string equal -length $n $s "-count"]} { + set countonly 1 + } else { + error "unknown switch: $s" + } + } + if {$countonly && $errfmt!=""} { + error "Cannot use -count and -errorformat together" + } + set nTestlist [llength $testlist] + if {$nTestlist%3 || $nTestlist==0 } { + error "SELECT test list contains [llength $testlist] elements" + } + + eval $repair + foreach {tn sql res} $testlist { + if {$tclquery != ""} { + execsql $sql + uplevel do_test ${prefix}.$tn [list $tclquery] [list [list {*}$res]] + } elseif {$countonly} { + set nRow 0 + db eval $sql {incr nRow} + uplevel do_test ${prefix}.$tn [list [list set {} $nRow]] [list $res] + } elseif {$errfmt==""} { + uplevel do_execsql_test ${prefix}.${tn} [list $sql] [list [list {*}$res]] + } else { + set res [list 1 [string trim [format $errfmt {*}$res]]] + uplevel do_catchsql_test ${prefix}.${tn} [list $sql] [list $res] + } + eval $repair + } + + } + + proc delete_all_data {} { + db eval {SELECT tbl_name AS t FROM sqlite_master WHERE type = 'table'} { + db eval "DELETE FROM '[string map {' ''} $t]'" + } + } # Run an SQL script. # Return the number of microseconds per statement. diff --cc test/wal2.test index 16f5ce5f26,5dfc255251..26ea1ddfd7 --- a/test/wal2.test +++ b/test/wal2.test @@@ -1151,6 -1152,61 +1156,61 @@@ if {$::tcl_platform(platform) == "unix" } catch { db close } } -} +} + #------------------------------------------------------------------------- + # Test that "PRAGMA checkpoint_fullsync" appears to be working. + # + foreach {tn sql reslist} { + 1 { } {8 0 3 0 5 0} + 2 { PRAGMA checkpoint_fullfsync = 1 } {8 4 3 2 5 2} + 3 { PRAGMA checkpoint_fullfsync = 0 } {8 0 3 0 5 0} + } { + faultsim_delete_and_reopen + + execsql $sql + do_execsql_test wal2-14.$tn.1 { PRAGMA journal_mode = WAL } {wal} + + set sqlite_sync_count 0 + set sqlite_fullsync_count 0 + + do_execsql_test wal2-14.$tn.2 { + PRAGMA wal_autocheckpoint = 10; + CREATE TABLE t1(a, b); -- 2 wal syncs + INSERT INTO t1 VALUES(1, 2); -- 1 wal sync + PRAGMA wal_checkpoint; -- 1 wal sync, 1 db sync + BEGIN; + INSERT INTO t1 VALUES(3, 4); + INSERT INTO t1 VALUES(5, 6); + COMMIT; -- 1 wal sync + PRAGMA wal_checkpoint; -- 1 wal sync, 1 db sync + } {10} + + do_test wal2-14.$tn.3 { + list $sqlite_sync_count $sqlite_fullsync_count + } [lrange $reslist 0 1] + + set sqlite_sync_count 0 + set sqlite_fullsync_count 0 + + do_test wal2-14.$tn.4 { + execsql { INSERT INTO t1 VALUES(7, zeroblob(12*4096)) } + list $sqlite_sync_count $sqlite_fullsync_count + } [lrange $reslist 2 3] + + set sqlite_sync_count 0 + set sqlite_fullsync_count 0 + + do_test wal2-14.$tn.5 { + execsql { PRAGMA wal_autocheckpoint = 1000 } + execsql { INSERT INTO t1 VALUES(9, 10) } + execsql { INSERT INTO t1 VALUES(11, 12) } + execsql { INSERT INTO t1 VALUES(13, 14) } + db close + list $sqlite_sync_count $sqlite_fullsync_count + } [lrange $reslist 4 5] + } + + + finish_test diff --cc test/walshared.test index 8e53ea66e4,73a3fb8bc1..fbbdeb4de3 --- a/test/walshared.test +++ b/test/walshared.test @@@ -64,4 -60,4 +60,3 @@@ do_test walshared-1.4 sqlite3_enable_shared_cache $::enable_shared_cache finish_test --