]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Extra testcase() macros to ensure adequate testing of the previous
authordrh <>
Thu, 4 Jun 2026 11:39:13 +0000 (11:39 +0000)
committerdrh <>
Thu, 4 Jun 2026 11:39:13 +0000 (11:39 +0000)
check-in.

FossilOrigin-Name: 003013ccabaaa7aea1e78844474ed5032ee9c9824f98c5d36687ac5256a5e128

manifest
manifest.uuid
src/expr.c

index 0997b2243d0c6988d1472779d65b04a26be80f8a..0600f2a25dd425287416a95fc1bf405ad0d36e40 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sproblems\swith\sexpressions\slike\s"(?,?,?)\sIN\s(SELECT\sc,b,a\sFROM\s...)"\swhen\sthere\sis\san\sindex\son\scolumns\s"c",\s"b"\sand\s"a",\sbut\snot\sin\sthat\sorder.\sBug\s[bugs:/info/2026-06-04T07:02:53Z\s|\s2026-06-04T07:02:53Z].
-D 2026-06-04T11:19:43.017
+C Extra\stestcase()\smacros\sto\sensure\sadequate\stesting\sof\sthe\sprevious\ncheck-in.
+D 2026-06-04T11:39:13.873
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -688,7 +688,7 @@ F src/date.c 61e92f1f7e2e88e1cd91e91dc69eb2b2854e7877254470f9fabd776bfac922b8
 F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d
 F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
 F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
-F src/expr.c 84ca652a0c7409b3884e099ba5cb79dcbcaaaf0342023f4712188934d7ec796d
+F src/expr.c e97dd9f6ada4c448764e225d8963091bf630b3efb2c92e4d0762571cca2a14e5
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
 F src/func.c 2837560c6232b7a3c9c163137a210d820ca82af2c33a5d446599fcb16c09192e
@@ -2208,8 +2208,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 44154ea9ae99d532d5c7268d70bd8b32751f7a82c367c7bd1ec0e6948d71d1b8
-R 895c5f48837d22ba0f0d78bebe999c6b
-U dan
-Z d6ea39703d8349e075a552cbca57b001
+P 07667afd0f17b73b58df8ace6a2a5c3a593276f9b7804cb14d4705051258dd75
+R b75db38037ffabb53392cdd7516812c2
+U drh
+Z e7378d14a99a909a6178e4d49c510b79
 # Remove this line to create a well-formed Fossil manifest.
index 16ebaa0860092440dbed961b5d8667cd04e123a5..72fd4a5394acc54195d3acb74ddf856d58be1886 100644 (file)
@@ -1 +1 @@
-07667afd0f17b73b58df8ace6a2a5c3a593276f9b7804cb14d4705051258dd75
+003013ccabaaa7aea1e78844474ed5032ee9c9824f98c5d36687ac5256a5e128
index 6d8537e3a4ee8b73ab7543776de4acba65702d4f..6ea2a5ae227e02cdf6e682083df1de5002467c76 100644 (file)
@@ -4170,6 +4170,7 @@ static void sqlite3ExprCodeIN(
       int rLhsOrig = rLhs;
       rLhs = sqlite3GetTempRange(pParse, nVector);
       for(i=0; i<nVector; i++){
+        testcase( aiMap[i]!=i );
         sqlite3VdbeAddOp3(v, OP_Copy, rLhsOrig+i, rLhs+aiMap[i], 0);
       }
       sqlite3ReleaseTempReg(pParse, rLhsOrig);
@@ -4190,6 +4191,7 @@ static void sqlite3ExprCodeIN(
     Expr *p = sqlite3VectorFieldSubexpr(pExpr->pLeft, i);
     if( pParse->nErr ) goto sqlite3ExprCodeIN_oom_error;
     if( sqlite3ExprCanBeNull(p) ){
+      testcase( aiMap[i]!=i );
       sqlite3VdbeAddOp2(v, OP_IsNull, rLhs+aiMap[i], destStep2);
       VdbeCoverage(v);
     }
@@ -4274,6 +4276,7 @@ static void sqlite3ExprCodeIN(
       ** ...)" is the collating sequence of x.".  */
       pColl = sqlite3ExprCollSeq(pParse, p);
     }
+    testcase( aiMap[i]!=i );
     sqlite3VdbeAddOp3(v, OP_Column, iTab, aiMap[i], r3);
     sqlite3VdbeAddOp4(v, OP_Ne, rLhs+aiMap[i], destNotNull, r3,
                       (void*)pColl, P4_COLLSEQ);