From: drh Date: Sat, 10 Oct 2015 20:35:10 +0000 (+0000) Subject: Pull in the latest 3.9.0 tweaks from trunk. X-Git-Tag: version-3.13.0~148^2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=49184802526045ffda70e88664e094c437d6aad7;p=thirdparty%2Fsqlite.git Pull in the latest 3.9.0 tweaks from trunk. FossilOrigin-Name: ed174ccf0ae615647ba026fed649d26dc9a98640 --- 49184802526045ffda70e88664e094c437d6aad7 diff --cc manifest index 3a14d6a197,fa290bfaef..f50e403fd1 --- a/manifest +++ b/manifest @@@ -1,9 -1,9 +1,9 @@@ - C Merge\sthe\sversion\s3.9.0\schanges\sand\sthe\sincorporation\sof\sJSON1\sand\sFTS5\ninto\sthe\samalgamation\sfrom\strunk. - D 2015-10-09T15:29:24.465 -C Work\saround\sa\s"security\sfeature"\sbug\sin\smemcpy()\son\sOpenBSD. -D 2015-10-10T16:41:28.969 ++C Pull\sin\sthe\slatest\s3.9.0\stweaks\sfrom\strunk. ++D 2015-10-10T20:35:10.026 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f -F Makefile.in f0088ff0d2ac949fce6de7c00f13a99ac5bdb663 +F Makefile.in de2700ab4ca481c15970405274ccf3c872026e3c F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 -F Makefile.msc 0ed934b4ae6a5ec0b9d7e770104864f8372414ab +F Makefile.msc 9025b539b5dc491ea9c6c9c04109d2ff617bc990 F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858 F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 F VERSION cacf16a72f9a03cd06b939a764e32f6f53254c7f @@@ -314,8 -294,8 +314,8 @@@ F src/complete.c addcd8160b081131005d5b F src/ctime.c 509ef9c64d1321f42448f111da86400b1799218a F src/date.c fb1c99172017dcc8e237339132c91a21a0788584 F src/dbstat.c e637e7a7ff40ef32132a418c6fdf1cfb63aa27c7 -F src/delete.c 35c939eb8bacc9dd8a6715964e5f69feb8c20e44 +F src/delete.c 4545c9f793f27d14a32195f6a0b121913a80f692 - F src/expr.c 36381822e617cb3586d4be1af2cbc3dd5f2b84eb + F src/expr.c b89dfbb8a385a45411c487355597c01f4ea4c882 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fkey.c 31900763094a3736a5fc887469202eb579fef2d0 F src/func.c ecdd69ec6a1e406f04cc73324be2ebbf6354197f @@@ -323,12 -303,12 +323,12 @@@ F src/global.c 508e4087f7b41d688e4762dc F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5 F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 - F src/insert.c a1e265bbe11d179cb5dc61541e927c6d4f0d04bd -F src/insert.c 3c522beb5bf50a2efee1fca1e80fd40942e5817c ++F src/insert.c 5f9bbe7f68ce13a423edeb93014e8807c0cea729 F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e F src/lempar.c d344a95d60c24e2f490ee59db9784b1b17439012 - F src/loadext.c f0b66d28e377fd6c6d36cc9d92df1ff251ebee44 + F src/loadext.c b3f1a529245b14c881b270a9f29fae6c5727cde8 -F src/main.c fec97668771438033a7559883401067b139729e1 +F src/main.c 3679a4f40434358fdfdfc86bf9576604b8d6fc9b F src/malloc.c 3a37ce6979a40f499d8cea9e9ab4e8517854d35d F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987 @@@ -363,12 -343,12 +363,12 @@@ F src/printf.c 0c4bcdd1c2e2521024f0a69c F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c 1954a0f01bf65d78d7d559aea3d5c67f33376d91 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e - F src/select.c 2c4bfdf7c797df9b43121ed7850bf939b6f27405 + F src/select.c 36c05502d5aef2a14aff3f7faba95b0c7d87ca9a -F src/shell.c d25df04168d6ba5a4fa05bdbf859df667f9eb621 -F src/sqlite.h.in 4b76d74d69af48c534c58fb723137dc6944bdedc +F src/shell.c 993863f82d764be0c00803056e56b9b744f86f02 +F src/sqlite.h.in 8f4deb5874227c7635300fb75105ff6e92131fb5 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3ext.h 64350bf36833a56ad675e27392a913f417c5c308 -F src/sqliteInt.h e21cc96bc24161df7373f6b24367cf580496889d +F src/sqliteInt.h 4150e72a668204fbcbdfbcc5f44c9aa5151663f8 F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/status.c f266ad8a2892d659b74f0f50cb6a88b6e7c12179 F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e @@@ -422,7 -402,7 +422,7 @@@ F src/threads.c bbfb74450643cb5372a43ad F src/tokenize.c 83c6ed569423a3af83a83973b444cf7123be33a6 F src/treeview.c 154f0acc622fa3514de8777dcedf4c8a8802b4ce F src/trigger.c 322f23aad694e8f31d384dcfa386d52a48d3c52f - F src/update.c 9e102cc3d8732aeb6b977569c8ce1f73fb0031bd -F src/update.c dc37664095ca8604293ff1de2d9a547c6efb5e6e ++F src/update.c 19b4edc4f0334db61a9fc1c73f01225df0634b31 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c F src/util.c fc612367108b74573c5fd13a85d0a23027f438bd F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 @@@ -1411,7 -1390,7 +1411,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 35b1b8d4b97715030700e37b292bb4f1bb3f44d6 8a4e19888f512c3ee95aa3040924fc932fbdab1a - R f005c1911f49ea59f115ca01df4b8659 -P 35e6248abb4435a8b26d270092b856beff867406 -R 9fd826df5b8be6e5111bab176d72d145 ++P c1d96fb654b2c0f66d586aa39d80ea0468186690 fab6f09044d033dd09ed8a22e06bc6a7851bbabf ++R 02a4785c3756a1a4b812b7d61a902d18 U drh - Z fe8223e98215302615def90ec799c3a5 -Z 61d2ace382c5fa85de2f4090e2c287bd ++Z 2a76f9be830458577e699f50ad91ee21 diff --cc manifest.uuid index 94a03e8a64,ea0c817d83..8feaf7595d --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - c1d96fb654b2c0f66d586aa39d80ea0468186690 -fab6f09044d033dd09ed8a22e06bc6a7851bbabf ++ed174ccf0ae615647ba026fed649d26dc9a98640 diff --cc src/update.c index fba7762aa0,c814a5b68a..d20098e9b4 --- a/src/update.c +++ b/src/update.c @@@ -587,26 -587,13 +587,26 @@@ void sqlite3Update VdbeCoverageNeverTaken(v); } sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur, aRegIdx, -1); - - /* If changing the record number, delete the old record. */ - if( hasFK || chngKey || pPk!=0 ){ - sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, 0); + + /* If changing the rowid value, or if there are foreign key constraints + ** to process, delete the old record. Otherwise, add a noop OP_Delete + ** to invoke the pre-update hook. + ** + ** That (regNew==regnewRowid+1) is true is also important for the + ** pre-update hook. If the caller invokes preupdate_new(), the returned + ** value is copied from memory cell (regNewRowid+1+iCol), where iCol + ** is the column index supplied by the user. + */ + assert( regNew==regNewRowid+1 ); + sqlite3VdbeAddOp3(v, OP_Delete, iDataCur, + OPFLAG_ISUPDATE | ((hasFK || chngKey || pPk!=0) ? 0 : OPFLAG_ISNOOP), + regNewRowid + ); + if( !pParse->nested ){ + sqlite3VdbeChangeP4(v, -1, (char*)pTab, P4_TABLE); } if( bReplace || chngKey ){ - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); } if( hasFK ){