Improved VDBE comments on the constraint checker.  Fix a missing write
lock in the UPDATE logic.

FossilOrigin-Name: 3bed599e74d354bf1513e4fb0e8665376ba44d0b
diff --git a/src/insert.c b/src/insert.c
index d003c7a..3c9402d 100644
--- a/src/insert.c
+++ b/src/insert.c
@@ -1435,12 +1435,14 @@
     regIdx = sqlite3GetTempRange(pParse, pIdx->nColumn);
     for(i=0; i<pIdx->nColumn; i++){
       int iField = pIdx->aiColumn[i];
+      int x;
       if( iField<0 || iField==pTab->iPKey ){
-        iField = regNewData;
+        x = regNewData;
       }else{
-        iField += regNewData + 1;
+        x = iField + regNewData + 1;
       }
-      sqlite3VdbeAddOp2(v, OP_SCopy, iField, regIdx+i);
+      sqlite3VdbeAddOp2(v, OP_SCopy, x, regIdx+i);
+      VdbeComment((v, "%s", iField<0 ? "rowid" : pTab->aCol[iField].zName));
     }
     sqlite3VdbeAddOp3(v, OP_MakeRecord, regIdx, pIdx->nColumn, aRegIdx[ix]);
     sqlite3VdbeChangeP4(v, -1, sqlite3IndexAffinityStr(v, pIdx), P4_TRANSIENT);
diff --git a/src/update.c b/src/update.c
index b88d5a8..9efb734 100644
--- a/src/update.c
+++ b/src/update.c
@@ -387,6 +387,7 @@
     if( !okOnePass && HasRowid(pTab) ){
       sqlite3OpenTable(pParse, iDataCur, iDb, pTab, OP_OpenWrite); 
     }
+    sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName);
     if( onError==OE_Replace ){
       openAll = 1;
     }else{