]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Simplification, performance improvement, and size reduction in the
authordrh <>
Wed, 17 May 2023 16:13:48 +0000 (16:13 +0000)
committerdrh <>
Wed, 17 May 2023 16:13:48 +0000 (16:13 +0000)
codeAllEqualityTerms() function of the code generator.

FossilOrigin-Name: 4fbe02651e877e442d62308d7f607e503695104cd71c5565132fcd1398c120df

manifest
manifest.uuid
src/wherecode.c

index d88d8dc2e4dc2903b4e3023c07e43d78766cd687..8559206bb7a0eb94aad6339ffdc694d495a008f3 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C New\sassert()\sstatements\sto\sverify\sthat\sExpr.iColumn\sis\snever\sused\sas\san\narray\sindex\swhen\sits\svalue\sis\snegative.
-D 2023-05-17T15:46:46.228
+C Simplification,\sperformance\simprovement,\sand\ssize\sreduction\sin\sthe\ncodeAllEqualityTerms()\sfunction\sof\sthe\scode\sgenerator.
+D 2023-05-17T16:13:48.064
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -723,7 +723,7 @@ F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a
 F src/walker.c f890a3298418d7cba3b69b8803594fdc484ea241206a8dfa99db6dd36f8cbb3b
 F src/where.c b74a83b4c8f65b218c5c1c8d9122433f85ee1300fd9263ba1697d0e1040eeb36
 F src/whereInt.h e25203e5bfee149f5f1225ae0166cfb4f1e65490c998a024249e98bb0647377c
-F src/wherecode.c b300db0bcd84ad6c2642bf3f509f92fad7b7d697b9856b64dd66d692d184d054
+F src/wherecode.c e63b522e780e92ed80b5e278e88f54e1166cafa272d2e06cd36297478f44bce2
 F src/whereexpr.c 22cf19b0ececeaf838daed1039c5231a8778784eba5ad67b991442a23473fd3f
 F src/window.c e075ea85bea322e30e361fa6e69eddba74f461e99e2a564dc09973f8a1fb27d9
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
@@ -2070,8 +2070,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 6dbd5b3cc801a75ea23842a43eb7106b62fc1d26dd5a8477a0217325539a7c1a
-R 9b9c07d26588f36e11a6d0220a07b376
+P 6084c5fb6d3fcedf35cd6c597a44ec7bf8b4a2576c7b277e5342d2a7905318e7
+R 6485d1d144054894bb806b033900eb87
 U drh
-Z 7d7251cbba8f3faed0cc8e31b2ace739
+Z 8a0864d2f033378cf6e10cbbd0a26acb
 # Remove this line to create a well-formed Fossil manifest.
index d73c3f7c65080119c31aac314e6ca13a777582ff..ebc3507eb4709874e2a0eecdb69757cc3ba8cebf 100644 (file)
@@ -1 +1 @@
-6084c5fb6d3fcedf35cd6c597a44ec7bf8b4a2576c7b277e5342d2a7905318e7
\ No newline at end of file
+4fbe02651e877e442d62308d7f607e503695104cd71c5565132fcd1398c120df
\ No newline at end of file
index a998c0a4f4d113aca22660cb8411ca5ea9db8420..9158c9738c4ae0b7e4deca526fdb1b1fbfc832fd 100644 (file)
@@ -812,7 +812,7 @@ static int codeAllEqualityTerms(
   /* Figure out how many memory cells we will need then allocate them.
   */
   regBase = pParse->nMem + 1;
-  nReg = pLoop->u.btree.nEq + nExtraReg;
+  nReg = nEq + nExtraReg;
   pParse->nMem += nReg;
 
   zAff = sqlite3DbStrDup(pParse->db,sqlite3IndexAffinityStr(pParse->db,pIdx));
@@ -859,9 +859,6 @@ static int codeAllEqualityTerms(
         sqlite3VdbeAddOp2(v, OP_Copy, r1, regBase+j);
       }
     }
-  }
-  for(j=nSkip; j<nEq; j++){
-    pTerm = pLoop->aLTerm[j];
     if( pTerm->eOperator & WO_IN ){
       if( pTerm->pExpr->flags & EP_xIsSelect ){
         /* No affinity ever needs to be (or should be) applied to a value