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

Reply via email to