]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not use any index field with a collating sequence of DATACOPY to speed branch-3.28-datacopy
authordrh <>
Fri, 25 Jul 2025 21:45:58 +0000 (21:45 +0000)
committerdrh <>
Fri, 25 Jul 2025 21:45:58 +0000 (21:45 +0000)
a look-up.  Use such fields only for covering queries.
*This is an experimental branch*.

FossilOrigin-Name: aef529e6fcb682aa684c803d2e9eca5f40f1d83fdab8098183641e0da49d03b9

manifest
manifest.uuid
src/where.c

index 8fda3552bdad1154e6d79fecae9562ac3c09bf99..e14ac3954d21d568c400a4225eda008f7ed9d649 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\sdatacopy\sextension,\sused\sfor\stesting\sonly.
-D 2025-07-25T20:37:56.306
+C Do\snot\suse\sany\sindex\sfield\swith\sa\scollating\ssequence\sof\sDATACOPY\sto\sspeed\na\slook-up.\s\sUse\ssuch\sfields\sonly\sfor\scovering\squeries.\n*This\sis\san\sexperimental\sbranch*.
+D 2025-07-25T21:45:58.913
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -605,7 +605,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c 9eccc7ebb532a7b0fd3cabc16cff576b9afa763472272db67d84fb8cec96f5c0
 F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a
 F src/walker.c 7607f1a68130c028255d8d56094ea602fc402c79e1e35a46e6282849d90d5fe4
-F src/where.c 7b276c3110231eebda4d537e32a560030762c2ce7dd44e8e89aa2898af04e263
+F src/where.c 343eb199c421bf44cb26be8f4c7ac221aac51d0424385bc258ccecd6f0ab1cf3
 F src/whereInt.h 064a1508edcc9af400a3b79211ba55e553fab6451b797a31334c0d11cbb7debb
 F src/wherecode.c cf67460973119c7b2141ad67daf8368dfb4871f225e2489f95effaa139007bfd
 F src/whereexpr.c cb357cf1efd04ae2be4a0d4cf5e0b04c1d666c55f6af72574f593b4a0cf549f6
@@ -1823,8 +1823,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 b021399a6e93afbb3368a5ae94c0f29c97ec6603bf9a5b7f86ca63c94590c2c3
-R 9d7140bb1f9296ac7b0b83953ba9f03b
+P 06735507ae28fbcd0d43715434ddd74c5dfa4609cd9cb4d1994ca125b9d8dd68
+R c45701309d77d38c4f1ca8efad218dfb
 U drh
-Z 6b049eb05e75f32bb2613e16bba6d9dd
+Z f75378737b8b4c96270e13bf0cfc620c
 # Remove this line to create a well-formed Fossil manifest.
index e37de9d42946e45a4466ee51d9af64693013d168..2c566d3fe2c73d0a4195d64b474a49c587e9149e 100644 (file)
@@ -1 +1 @@
-06735507ae28fbcd0d43715434ddd74c5dfa4609cd9cb4d1994ca125b9d8dd68
+aef529e6fcb682aa684c803d2e9eca5f40f1d83fdab8098183641e0da49d03b9
index 890fe9176168d01d7303c3255aac93b857a3050a..1d507cbe529cae933c35671043f83b336c5c74de 100644 (file)
@@ -2445,6 +2445,12 @@ static int whereLoopAddBtreeIndex(
   assert( pNew->u.btree.nEq<pProbe->nColumn );
 
   saved_nEq = pNew->u.btree.nEq;
+  if( pProbe->azColl!=0
+   && pProbe->azColl[saved_nEq]!=0
+   && sqlite3_stricmp(pProbe->azColl[saved_nEq],"DATACOPY")==0
+  ){
+    return rc;
+  }
   saved_nBtm = pNew->u.btree.nBtm;
   saved_nTop = pNew->u.btree.nTop;
   saved_nSkip = pNew->nSkip;