]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a bug caused by overzealous code test coverage simplifications.
authordrh <drh@noemail.net>
Sat, 10 Jan 2009 15:34:12 +0000 (15:34 +0000)
committerdrh <drh@noemail.net>
Sat, 10 Jan 2009 15:34:12 +0000 (15:34 +0000)
Bug found by TH3. (CVS 6157)

FossilOrigin-Name: 3da5578726cb22118dfca38a2098a1e378644387

manifest
manifest.uuid
src/where.c

index cf737785c1fe8f8e433248dc996874ebecfa6a5f..34f07a27d86b4e7bbe6e8fc8f4f915c41702f3be 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\ssome\sunused\scode\sfrom\sexpr.c\sin\sorder\sto\sincrease\stest\scoverage.\s(CVS\s6156)
-D 2009-01-10T13:24:51
+C Fix\sa\sbug\scaused\sby\soverzealous\scode\stest\scoverage\ssimplifications.\nBug\sfound\sby\sTH3.\s(CVS\s6157)
+D 2009-01-10T15:34:12
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 05461a9b5803d5ad10c79f989801e9fd2cc3e592
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -207,7 +207,7 @@ F src/vdbeblob.c b0dcebfafedcf9c0addc7901ad98f6f986c08935
 F src/vdbemem.c 19f94b504d3da44b31aef200fa6c8e07862de2e8
 F src/vtab.c e39e011d7443a8d574b1b9cde207a35522e6df43
 F src/walker.c 488c2660e13224ff70c0c82761118efb547f8f0d
-F src/where.c 8259ee360fc260ee8144d7b4b3f21a573993ecf1
+F src/where.c bd4fef1701c0b032a273c230400873a7db341338
 F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
 F test/alias.test 597662c5d777a122f9a3df0047ea5c5bd383a911
@@ -696,7 +696,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 3d7a8de248ad5fba0e9c88f439cd2d988dcbab8c
-R c24af2bb926bb5803a456faffe9201b2
+P 2cbea64fb00a1b5b8aa0e9c958b2a09256ae59bc
+R 7759d6bbe5785c316ce1fcb98ad155c6
 U drh
-Z b201089d3d309f3e54d63a28fa490474
+Z 8f01cd8c083356c8b7a4a4354e84f698
index c7bf4f4583b8c78c0731225eace21aecfad25ca0..0f5f9aaded26e8db8c2036efa01fb5b49eca8ddd 100644 (file)
@@ -1 +1 @@
-2cbea64fb00a1b5b8aa0e9c958b2a09256ae59bc
\ No newline at end of file
+3da5578726cb22118dfca38a2098a1e378644387
\ No newline at end of file
index 2d773b78dfa91ae10e79a0cb7b1a9b6cf9171af6..85978d2d994cab175087034ec7764b1446127381 100644 (file)
@@ -16,7 +16,7 @@
 ** so is applicable.  Because this module is responsible for selecting
 ** indices, you might also think of this module as the "query optimizer".
 **
-** $Id: where.c,v 1.362 2009/01/09 02:49:32 drh Exp $
+** $Id: where.c,v 1.363 2009/01/10 15:34:12 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -844,10 +844,12 @@ static void exprAnalyzeOrTerm(
         whereSplit(pAndWC, pOrTerm->pExpr, TK_AND);
         exprAnalyzeAll(pSrc, pAndWC);
         testcase( db->mallocFailed );
-        for(j=0, pAndTerm=pAndWC->a; j<pAndWC->nTerm; j++, pAndTerm++){
-          assert( pAndTerm->pExpr );
-          if( allowedOp(pAndTerm->pExpr->op) ){
-            b |= getMask(pMaskSet, pAndTerm->leftCursor);
+        if( !db->mallocFailed ){
+          for(j=0, pAndTerm=pAndWC->a; j<pAndWC->nTerm; j++, pAndTerm++){
+            assert( pAndTerm->pExpr );
+            if( allowedOp(pAndTerm->pExpr->op) ){
+              b |= getMask(pMaskSet, pAndTerm->leftCursor);
+            }
           }
         }
         indexable &= b;