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;
}
Attachment:
signature.asc
Description: This is a digitally signed message part