]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Changes to update.c to facilitate full coverage testing. (CVS 6604)
authordrh <drh@noemail.net>
Tue, 5 May 2009 15:46:09 +0000 (15:46 +0000)
committerdrh <drh@noemail.net>
Tue, 5 May 2009 15:46:09 +0000 (15:46 +0000)
FossilOrigin-Name: 25a11b9ecae1befd3f58958d68f6346f1e1e47ad

manifest
manifest.uuid
src/update.c

index 54767e62a17903509d053f3720631dd90dd864d7..9bef3786f66ac7b36a5f2a6c32b93e9d505f06da 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\ssure\sthe\sdefault\svalue\son\sa\scolumn\sadded\susing\sALTER\sTABLE\shas\sthe\ncorrect\sencoding.\s\sTicket\s#3838.\s(CVS\s6603)
-D 2009-05-05T12:54:50
+C Changes\sto\supdate.c\sto\sfacilitate\sfull\scoverage\stesting.\s(CVS\s6604)
+D 2009-05-05T15:46:10
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 583e87706abc3026960ed759aff6371faf84c211
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -199,7 +199,7 @@ F src/test_thread.c b8a1ab7ca1a632f18e8a361880d5d65eeea08eac
 F src/test_wsd.c 3ae5101de6cbfda2720152ab659ea84079719241
 F src/tokenize.c 286ce8a4bffe5ec81ad893e6243684d8f8846ed9
 F src/trigger.c 448615bec40efcd6b3a9362a060f2e7067f25be5
-F src/update.c e69ba30a62555cd34bca6e3f304d45fdbd98c11b
+F src/update.c deb930324dd67b7ad98234e1258a0ebcdd1ca0f9
 F src/utf.c 9541d28f40441812c0b40f00334372a0542c00ff
 F src/util.c 40fb962de1b00a310de4acc87c6800173e35c25f
 F src/vacuum.c 07121a727beeee88f27d704a00313ad6a7c9bef0
@@ -728,7 +728,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 3543be6e34ebff48b1b0c1710ae6fec557b09b52
-R 2a49d02646852b7f205e84dabaf8596f
+P 7f89a860b7cd0993c36a8b0482c2bac950a875d6
+R c2c2d0ce88fa821168f2cfd971608d90
 U drh
-Z 842865b153ac4330b4a6ad542ce17574
+Z 75899e717d2cd58cbbfebd42323ed01c
index 2d23e94c63eccb7272a90d1e1f2fdf03e3b3dedb..ea66aef1c8c5d647841996cfddf36bb0da9ec3fc 100644 (file)
@@ -1 +1 @@
-7f89a860b7cd0993c36a8b0482c2bac950a875d6
\ No newline at end of file
+25a11b9ecae1befd3f58958d68f6346f1e1e47ad
\ No newline at end of file
index 36704856ce9404dd7c3db12f2b8aff102d4d6a2f..daab3adf035b53d67680755be0ccf981b9df1f7a 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle UPDATE statements.
 **
-** $Id: update.c,v 1.199 2009/05/04 11:42:30 danielk1977 Exp $
+** $Id: update.c,v 1.200 2009/05/05 15:46:10 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -55,7 +55,8 @@ static void updateVirtualTable(
 ** sqlite3_value objects.
 */
 void sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i){
-  if( pTab && !pTab->pSelect ){
+  assert( pTab!=0 );
+  if( !pTab->pSelect ){
     sqlite3_value *pValue;
     u8 enc = ENC(sqlite3VdbeDb(v));
     Column *pCol = &pTab->aCol[i];
@@ -368,7 +369,7 @@ void sqlite3Update(
     sqlite3VdbeAddOp2(v, OP_Integer, 0, regRowCount);
   }
 
-  if( !isView && !IsVirtual(pTab) ){
+  if( !isView ){
     /* 
     ** Open every index that needs updating.  Note that if any
     ** index could potentially invoke a REPLACE conflict resolution 
@@ -447,7 +448,7 @@ void sqlite3Update(
         continue;
       }
       j = aXRef[i];
-      if( new_col_mask&((u32)1<<i) || new_col_mask==0xffffffff ){
+      if( (i<32 && (new_col_mask&((u32)1<<i))!=0) || new_col_mask==0xffffffff ){
         if( j<0 ){
           sqlite3VdbeAddOp3(v, OP_Column, iCur, i, regCols+i);
           sqlite3ColumnDefault(v, pTab, i);
@@ -473,7 +474,7 @@ void sqlite3Update(
     sqlite3VdbeJumpHere(v, iEndBeforeTrigger);
   }
 
-  if( !isView && !IsVirtual(pTab) ){
+  if( !isView ){
     /* Loop over every record that needs updating.  We have to load
     ** the old data for each record to be updated because some columns
     ** might not change and we will need to copy the old value.