]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change the order of an if..else... in new code to make it slightly faster.
authordan <Dan Kennedy>
Mon, 25 Sep 2023 15:25:49 +0000 (15:25 +0000)
committerdan <Dan Kennedy>
Mon, 25 Sep 2023 15:25:49 +0000 (15:25 +0000)
FossilOrigin-Name: f80dc64483a54a488e507da140836261ae1b864577cc95d8e869919d5a25e73c

manifest
manifest.uuid
src/expr.c
src/where.c

index 1cb2ecded3302489d0688759b6f9f19ea5bf8fa7..48bc490800fb3195b04bc53a76aff42b8ac34783 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbad\sinteraction\sbetween\sLEFT\sJOIN,\sbloom\sfilters\sand\spartial\sindexes.
-D 2023-09-25T11:12:39.228
+C Change\sthe\sorder\sof\san\sif..else...\sin\snew\scode\sto\smake\sit\sslightly\sfaster.
+D 2023-09-25T15:25:49.739
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -660,7 +660,7 @@ F src/date.c eebc54a00e888d3c56147779e9f361b77d62fd69ff2008c5373946aa1ba1d574
 F src/dbpage.c f3eea5f7ec47e09ee7da40f42b25092ecbe961fc59566b8e5f705f34335b2387
 F src/dbstat.c ec92074baa61d883de58c945162d9e666c13cd7cf3a23bc38b4d1c4d0b2c2bef
 F src/delete.c cb766727c78e715f9fb7ec8a7d03658ed2a3016343ca687acfcec9083cdca500
-F src/expr.c 5a8e6184eb264553b64c12986b324476ab817585f722ad910586484d857fc213
+F src/expr.c 8a5045ac7aae5ecebe7236ec05841693b5a0012af70a4d73933333172546c50d
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c a7fcbf7e66d14dbb73cf49f31489ebf66d0e6006c62b95246924a3bae9f37b36
 F src/func.c 154f08966f8a3a7cad6c438205df1abf58fb2826961a0683e82e120fa647e84c
@@ -795,7 +795,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c 01e051a1e713d9eabdb25df38602837cec8f4c2cae448ce2cf6accc87af903e9
 F src/wal.h ba252daaa94f889f4b2c17c027e823d9be47ce39da1d3799886bbd51f0490452
 F src/walker.c 7c7ea0115345851c3da4e04e2e239a29983b61fb5b038b94eede6aba462640e2
-F src/where.c 9a16bc1c21b678d19c539234e01af5f031d1d6ae79c5a8b2536f5983034d5905
+F src/where.c ad7c28cabdceb78c4d8e961b58edcaff9b2586293bc35be1e5ad1784eb60a514
 F src/whereInt.h 4b38c5889514e3aead3f27d0ee9a26e47c3f150efc59e2a8b4e3bc8835e4d7a1
 F src/wherecode.c 5d77db30a2a3dd532492ae882de114edba2fae672622056b1c7fd61f5917a8f1
 F src/whereexpr.c dc5096eca5ed503999be3bdee8a90c51361289a678d396a220912e9cb73b3c00
@@ -2122,8 +2122,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P cb45f5b070cfdbb4358e8e909b0b34d658b5925db06e282b38046298a159c545
-R 2bce5e33802e9dfa9682006fdb5efa41
+P 5775f92b31f0539c66d37e50689bec17a82c0e857a781331c03e34bc18157087
+R c969129a74f57eba1e4e7e018a6ec36d
 U dan
-Z 92b6a37087fff14a3ec2f05a6c3ee16f
+Z 81e4a295f7c75bcb58999b0aeee339df
 # Remove this line to create a well-formed Fossil manifest.
index d51c2ab1e329311cdd9218c53c4b7ca3677feebb..2b05ae160843348a39a12f1772d16a41e02b51de 100644 (file)
@@ -1 +1 @@
-5775f92b31f0539c66d37e50689bec17a82c0e857a781331c03e34bc18157087
\ No newline at end of file
+f80dc64483a54a488e507da140836261ae1b864577cc95d8e869919d5a25e73c
\ No newline at end of file
index 14fbda4d1b5b037685264ab1d6d7bfbc94f3400a..f7290262e5fd11a163db2070bd8882cf15610361 100644 (file)
@@ -4393,11 +4393,6 @@ expr_code_doover:
         }
         return iReg;
       }
-      if( pParse->pIdxPartExpr 
-       && 0!=(r1 = exprPartidxExprLookup(pParse, pExpr, target))
-      ){
-        return r1;
-      }
       if( iTab<0 ){
         if( pParse->iSelfTab<0 ){
           /* Other columns in the same row for CHECK constraints or
@@ -4449,6 +4444,11 @@ expr_code_doover:
           iTab = pParse->iSelfTab - 1;
         }
       }
+      else if( pParse->pIdxPartExpr 
+       && 0!=(r1 = exprPartidxExprLookup(pParse, pExpr, target))
+      ){
+        return r1;
+      }
       assert( ExprUseYTab(pExpr) );
       assert( pExpr->y.pTab!=0 );
       iReg = sqlite3ExprCodeGetColumn(pParse, pExpr->y.pTab,
index 2a0f07f279d6e92718dff0247fb2e450d13698b4..58fdf4055a22011c8cea3ec9430a2e64ad14f9dd 100644 (file)
@@ -3816,7 +3816,9 @@ static int whereLoopAddBtree(
       }else{
         m = pSrc->colUsed & pProbe->colNotIdxed;
         if( pProbe->pPartIdxWhere ){
-          wherePartIdxExpr(pWInfo->pParse, pProbe, pProbe->pPartIdxWhere, &m, 0, 0);
+          wherePartIdxExpr(
+              pWInfo->pParse, pProbe, pProbe->pPartIdxWhere, &m, 0, 0
+          );
         }
         pNew->wsFlags = WHERE_INDEXED;
         if( m==TOPBIT || (pProbe->bHasExpr && !pProbe->bHasVCol && m!=0) ){