From: drh Date: Thu, 19 May 2011 02:48:46 +0000 (+0000) Subject: Merge all the latest trunk changes into the sessions branch, especially X-Git-Tag: version-3.13.0~148^2~275 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ec233f12a979c1ea7c465133c7a9115c491e10b;p=thirdparty%2Fsqlite.git Merge all the latest trunk changes into the sessions branch, especially the disappearing WAL transaction fix. FossilOrigin-Name: 5b1b536cf828850d0e8ac2ab08e8696082715877 --- 4ec233f12a979c1ea7c465133c7a9115c491e10b diff --cc manifest index 0c02b5eafe,a2fbca16d7..7c550ad27a --- a/manifest +++ b/manifest @@@ -1,7 -1,7 +1,7 @@@ - C Merge\sthe\slatest\strunk\schanges\sinto\sthe\ssessions\sbranch. - D 2011-05-05T15:46:16.843 -C When\scommitting\sa\sWAL\stransaction,\smake\ssure\sat\sleast\sone\spage\sis\nwritten\sto\sthe\sWAL\sfile\sso\sthat\sthe\sWAL\ssubsystem\swill\shave\sa\spage\non\swhich\sto\sset\sthe\scommit\sflag.\nTicket\s[2d1a5c67dfc236]. -D 2011-05-19T01:21:42.431 ++C Merge\sall\sthe\slatest\strunk\schanges\sinto\sthe\ssessions\sbranch,\sespecially\nthe\sdisappearing\sWAL\stransaction\sfix. ++D 2011-05-19T02:48:46.609 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f - F Makefile.in 7a4d9524721d40ef9ee26f93f9bd6a51dba106f2 + F Makefile.in 11dcc00a8d0e5202def00e81732784fb0cc4fe1d F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.vxworks c85ec1d8597fe2f7bc225af12ac1666e21379151 F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6 @@@ -100,19 -100,9 +100,19 @@@ F ext/rtree/rtree_util.tcl 06aab2ed5b82 F ext/rtree/sqlite3rtree.h 1af0899c63a688e272d69d8e746f24e76f10a3f0 F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024 +F ext/session/session1.test f5d9f2e362abe2563181389509822bda956516ee +F ext/session/session2.test 99ca0da7ddb617d42bafd83adccf99f18ae0384b +F ext/session/session3.test a7a9ce59b8d1e49e2cc23d81421ac485be0eea01 +F ext/session/session4.test a6ed685da7a5293c5d6f99855bcf41dbc352ca84 +F ext/session/session5.test 8fdfaf9dba28a2f1c6b89b06168bdab1fef2d478 +F ext/session/session_common.tcl 1539d8973b2aea0025c133eb0cc4c89fcef541a5 +F ext/session/sessionfault.test 401045278298a242cbc2e4bc986c102f01ff2180 +F ext/session/sqlite3session.c 26de50c3e34d89ae62e97024ad07e772e1c52db2 +F ext/session/sqlite3session.h 665f5591562e3c71eb3d0da26f1a1efae26f7bcf +F ext/session/test_session.c 311e5b9228374d0b5780448f289847ff1cf7d388 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 - F main.mk 352002cedf9e754ec96cfe0a8d1688cdea343fea -F main.mk 6111163d4e9720e4212ef288e967b4aa2c2ce379 ++F main.mk bc31e3b2cfa42337a34fc4509a1b550c0cd5b202 F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac @@@ -154,8 -144,8 +154,8 @@@ F src/journal.c 552839e54d1bf76fb8f7abe F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e F src/loadext.c 3ae0d52da013a6326310655be6473fd472347b85 - F src/main.c 8b97db74cb876bf34ca4fb3720b18e4ffdcf9fd5 - F src/malloc.c 74c740e8ba22b806cfb980c8c0ddea1cbd54a20e -F src/main.c 059daeed5876b3604f0192f838faf5f4db138901 ++F src/main.c 8206d7970cb858979ec84eea9a5eff2b575849a6 + F src/malloc.c 591aedb20ae40813f1045f2ef253438a334775d9 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 00bd8265c81abb665c48fea1e0c234eb3b922206 F src/mem2.c e307323e86b5da1853d7111b68fd6b84ad6f09cf @@@ -188,17 -178,17 +188,17 @@@ F src/random.c cd4a67b3953b88019f8cd4cc F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 F src/select.c d9d440809025a58547e39f4f268c2a296bfb56ff - F src/shell.c 72e7e176bf46d5c6518d15ac4ad6847c4bb5df79 - F src/sqlite.h.in 628de30f6063695288eadf34c167e49bc34c9828 + F src/shell.c decd04236a7ef26be5ef46d4ea963044bfad9a48 -F src/sqlite.h.in 8bbf8d9bc5f1a9474a633a2de7014506f1f06b90 ++F src/sqlite.h.in b851102bb0840bf6d4dde5d6690c2ad127a65ade F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754 - F src/sqliteInt.h 1577ac69cb67a1dc0c07974a4e5129b1cde039a3 -F src/sqliteInt.h 771087591052966d36ac1fcd3c8bb7a8c6cf9a38 ++F src/sqliteInt.h 2fb482cff778112e6b2797226f30f3862a627468 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/status.c 7ac64842c86cec2fc1a1d0e5c16d3beb8ad332bf F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e -F src/tclsqlite.c 501c9a200fd998a268be475be5858febc90b725b +F src/tclsqlite.c fe0da0eb0ebd8d21eec90683b779456e64351de6 - F src/test1.c e0e4af306b678da05334c2ccaf0377ae8f06e911 + F src/test1.c 4a1171af201be90c21d64a872e686b1333d9a2cf F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31 - F src/test3.c 056093cfef69ff4227a6bdb9108564dc7f45e4bc + F src/test3.c 124ff9735fb6bb7d41de180d6bac90e7b1509432 F src/test4.c d1e5a5e904d4b444cf572391fdcb017638e36ff7 F src/test5.c e1a19845625144caf038031234a12185e40d315c F src/test6.c c7256cc21d2409486d094277d5b017e8eced44ba @@@ -209,7 -199,7 +209,7 @@@ F src/test_async.c 0612a752896fad42d55c F src/test_autoext.c 30e7bd98ab6d70a62bb9ba572e4c7df347fe645e F src/test_backup.c c129c91127e9b46e335715ae2e75756e25ba27de F src/test_btree.c 47cd771250f09cdc6e12dda5bc71bc0b3abc96e2 - F src/test_config.c 25a4128c2dc9e1dbebafcb7e8c61d45f09f7fbc3 -F src/test_config.c 9a6aa8301a56906612b5e70f5b38e80cfb8af8e7 ++F src/test_config.c 2794d55f27c7faa6c8203b15e634e7103953ddcc F src/test_demovfs.c 938d0f595f8bd310076e1c06cf7885a01ce7ce01 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_func.c cbdec5cededa0761daedde5baf06004a9bf416b5 @@@ -242,15 -232,15 +242,15 @@@ F src/test_wholenumber.c 6129adfbe7c744 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/tokenize.c 604607d6813e9551cf5189d899e0a25c12681080 F src/trigger.c 144cc18bb701f3286484aae4292a9531f09278c8 -F src/update.c 5bcb56e5c7380a2eecb0e71891dbd4ad7437748f +F src/update.c f66b651c15e42875f36501ec39a968e836ee5586 F src/utf.c d83650c3ea08f7407bd9d0839d9885241c209c60 - F src/util.c 465fe10aabf0ca7d7826a156dab919b0b65c525a + F src/util.c 0f33bbbdfcc4a2d8cf20c3b2a16ffc3b57c58a70 F src/vacuum.c 05513dca036a1e7848fe18d5ed1265ac0b32365e - F src/vdbe.c fa5bfc0c820706a1f78042b134a0f7a388ca9a3e -F src/vdbe.c 343a068e8daeb8475e66776feb9f2974046e95c5 -F src/vdbe.h 8a675fefdf7119441fe817c800a9a52440c2e797 -F src/vdbeInt.h fe8f58d305e629fff02f61f655aca1d299f1f6ae -F src/vdbeapi.c e0e2672e0a96ae3f8575c8ecd02912a3e8a554a1 -F src/vdbeaux.c 535851211df61d83213c83d5ffd3c6ce9ecbdc18 ++F src/vdbe.c af2e9d0ffd3e111140bc51769f6995834be69e11 +F src/vdbe.h 44fd57aeed86da0cd31206626c13cdde0e72cc0e +F src/vdbeInt.h b95de01246c15499c700ae00cfda0de25c01358a +F src/vdbeapi.c 8051038f7674c708f4515ab189fc3ea929e09a4c - F src/vdbeaux.c cc95d80b899b75829cb93d260d3f14125a5c26ad ++F src/vdbeaux.c be135f46ee48b5726fb59ca41224475c1dbe8f8b F src/vdbeblob.c c3ccb7c8732858c680f442932e66ad06bb036562 F src/vdbemem.c 0498796b6ffbe45e32960d6a1f5adfb6e419883b F src/vdbetrace.c 5d0dc3d5fd54878cc8d6d28eb41deb8d5885b114 @@@ -700,7 -691,7 +702,7 @@@ F test/tclsqlite.test 1ce9b6340d6d41242 F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05 - F test/tester.tcl cf301cdb35f20378b086849acd26a4574187183f -F test/tester.tcl a791ee74cb6b8f8613079ccc018bf2c8b952a26c ++F test/tester.tcl 1949b4af9701daaca189fd5d53a6e48173c162af F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca @@@ -944,7 -938,7 +949,7 @@@ F tool/speedtest8.c 2902c46588c40b55661 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f - P b91b4c31fe311b292044c9c747feba294ffce25c 930be6a1bdec8c150caafd790973f7a401fc1970 - R 13217a0634732c3fc1250bf1a2936d3d -P de58cb28387f44c35b1a81bdab853cafd938c1a6 -R e623b89a5e0b9474dd0884ecf24382fc ++P 6883580e6c8973010a42d1d2c5bde04c6b2f4eb7 67bf1c9a888b0d84d252d6c4c754c2c51994d208 ++R f15f9213bb9ad0f88efa9254eb2387a3 U drh - Z f29377c78641e183f6acae5b288b38b3 -Z 83669a82fd950b01af57955dbca1c918 ++Z 1a1886a9d9151866e45101a5d0e49b24 diff --cc manifest.uuid index c83e756c42,ad5e538784..fe55e41565 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 6883580e6c8973010a42d1d2c5bde04c6b2f4eb7 -67bf1c9a888b0d84d252d6c4c754c2c51994d208 ++5b1b536cf828850d0e8ac2ab08e8696082715877 diff --cc src/vdbe.c index 420afd41e2,cac0906998..59154b6aa7 --- a/src/vdbe.c +++ b/src/vdbe.c @@@ -3929,26 -3922,8 +3933,26 @@@ case OP_InsertInt: iKey = pOp->p3; } + if( pOp->p4type==P4_TABLE && HAS_UPDATE_HOOK(db) ){ + assert( pC->isTable ); + assert( pC->iDb>=0 ); + zDb = db->aDb[pC->iDb].zName; + pTab = pOp->p4.pTab; + op = ((pOp->p5 & OPFLAG_ISUPDATE) ? SQLITE_UPDATE : SQLITE_INSERT); + } + +#ifdef SQLITE_ENABLE_PREUPDATE_HOOK + /* Invoke the pre-update hook, if any */ + if( db->xPreUpdateCallback + && pOp->p4type==P4_TABLE + && (!(pOp->p5 & OPFLAG_ISUPDATE) || pC->rowidIsValid==0) + ){ + sqlite3VdbePreUpdateHook(p, pC, SQLITE_INSERT, zDb, pTab, iKey, pOp->p2); + } +#endif + if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++; - if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = iKey; + if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = lastRowid = iKey; if( pData->flags & MEM_Null ){ pData->z = 0; pData->n = 0;