On Thu, 2014-11-06 at 19:51 +0100, Laszlo Boszormenyi (GCS) wrote: > The code debdiff is attached. I've the whole debdiff as well, but that > contains many small HTML updates in documentation and being big. Ups, sent a wrong one. The correct one is attached to this mail.
Laszlo/GCS
diff -Nur sqlite3-3.8.7/src/delete.c sqlite3-3.8.7.1/src/delete.c --- sqlite3-3.8.7/src/delete.c 2014-10-17 18:38:28.000000000 +0000 +++ sqlite3-3.8.7.1/src/delete.c 2014-10-29 21:13:32.000000000 +0000 @@ -481,7 +481,7 @@ assert( nKey==nPk ); /* OP_Found will use an unpacked key */ assert( !IsVirtual(pTab) ); if( aToOpen[iDataCur-iTabCur] ){ - assert( pPk!=0 ); + assert( pPk!=0 || pTab->pSelect!=0 ); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, addrBypass, iKey, nKey); VdbeCoverage(v); } diff -Nur sqlite3-3.8.7/src/pager.c sqlite3-3.8.7.1/src/pager.c --- sqlite3-3.8.7/src/pager.c 2014-10-17 18:38:28.000000000 +0000 +++ sqlite3-3.8.7.1/src/pager.c 2014-10-29 21:13:32.000000000 +0000 @@ -1941,6 +1941,14 @@ rc = SQLITE_OK; }else{ rc = sqlite3OsTruncate(pPager->jfd, 0); + if( rc==SQLITE_OK && pPager->fullSync ){ + /* Make sure the new file size is written into the inode right away. + ** Otherwise the journal might resurrect following a power loss and + ** cause the last transaction to roll back. See + ** https://bugzilla.mozilla.org/show_bug.cgi?id=1072773 + */ + rc = sqlite3OsSync(pPager->jfd, pPager->syncFlags); + } } pPager->journalOff = 0; }else if( pPager->journalMode==PAGER_JOURNALMODE_PERSIST diff -Nur sqlite3-3.8.7/src/printf.c sqlite3-3.8.7.1/src/printf.c --- sqlite3-3.8.7/src/printf.c 2014-10-17 18:38:28.000000000 +0000 +++ sqlite3-3.8.7.1/src/printf.c 2014-10-29 21:13:32.000000000 +0000 @@ -21,11 +21,7 @@ ** the glibc version so the glibc version is definitely preferred. */ #if !defined(HAVE_STRCHRNUL) -# if defined(linux) -# define HAVE_STRCHRNUL 1 -# else -# define HAVE_STRCHRNUL 0 -# endif +# define HAVE_STRCHRNUL 0 #endif diff -Nur sqlite3-3.8.7/src/update.c sqlite3-3.8.7.1/src/update.c --- sqlite3-3.8.7/src/update.c 2014-10-17 18:38:28.000000000 +0000 +++ sqlite3-3.8.7.1/src/update.c 2014-10-29 21:13:32.000000000 +0000 @@ -431,8 +431,8 @@ /* Top of the update loop */ if( okOnePass ){ - if( aToOpen[iDataCur-iBaseCur] ){ - assert( pPk!=0 ); + if( aToOpen[iDataCur-iBaseCur] && !isView ){ + assert( pPk ); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, labelBreak, regKey, nKey); VdbeCoverageNeverTaken(v); } diff -Nur sqlite3-3.8.7/src/vdbe.c sqlite3-3.8.7.1/src/vdbe.c --- sqlite3-3.8.7/src/vdbe.c 2014-10-17 18:38:28.000000000 +0000 +++ sqlite3-3.8.7.1/src/vdbe.c 2014-10-29 21:13:32.000000000 +0000 @@ -2441,7 +2441,7 @@ if( pOp->p4type==P4_MEM ){ sqlite3VdbeMemShallowCopy(pDest, pOp->p4.pMem, MEM_Static); }else{ - MemSetTypeFlag(pDest, MEM_Null); + sqlite3VdbeMemSetNull(pDest); } goto op_column_out; }
signature.asc
Description: This is a digitally signed message part