]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor performance improvement in vdbeRecordCompareString().
authordan <dan@noemail.net>
Fri, 12 Jul 2019 15:15:43 +0000 (15:15 +0000)
committerdan <dan@noemail.net>
Fri, 12 Jul 2019 15:15:43 +0000 (15:15 +0000)
FossilOrigin-Name: 777fec84a5db968e033883920586ec0afef65578be0c1eb3021fce525111edde

manifest
manifest.uuid
src/vdbeaux.c

index 8bde9a30605e90cef0befb9cefd6f4ee11a7f7ee..5625d1bf8109fa5d655830ddc48bf2de037f4c0c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Change\sthe\sparser\son\sthis\sbranch\sto\smore\sclosely\smatch\strunk.\sThis\ssaves\sa\sfew\smore\scycles.
-D 2019-07-11T18:43:33.538
+C Minor\sperformance\simprovement\sin\svdbeRecordCompareString().
+D 2019-07-12T15:15:43.883
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -598,7 +598,7 @@ F src/vdbe.c aaa36d1ac7d55baf007e9c03ee7c826834a51dfe7a56ba4c386318695dd87c99
 F src/vdbe.h 712bca562eaed1c25506b9faf9680bdc75fc42e2f4a1cd518d883fa79c7a4237
 F src/vdbeInt.h 3ba14553508d66f58753952d6dd287dce4ec735de02c6440858b4891aed51c17
 F src/vdbeapi.c f9161e5c77f512fbb80091ce8af621d19c9556bda5e734cffaac1198407400da
-F src/vdbeaux.c 3a803d75875031309204df90977059b12ffb706d16b4baa5e2d99f4353962582
+F src/vdbeaux.c 6e690cf78b75cb30a35498be14d86656eda2a350e21b7f34723bac6fb4b06504
 F src/vdbeblob.c f5c70f973ea3a9e915d1693278a5f890dc78594300cf4d54e64f2b0917c94191
 F src/vdbemem.c 9ee3c0373bfc05dc8bf5307a4a92be6bea3055928c4846fdced7e708993b2d6d
 F src/vdbesort.c 66592d478dbb46f19aed0b42222325eadb84deb40a90eebe25c6e7c1d8468f47
@@ -1833,7 +1833,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P bcc8b38ac75b731a4cd2873ab83f423be036467a511b617c779869de9bbb5383
-R 7366949ada14c091807ed4dad610ae76
+P be01b801fbc258f0ab9542130cec12a5ea5e2d0bf087684a9eda909ad459c211
+R 2db1f8ff35294de6464c20bf61e9dedc
 U dan
-Z 9f13574d0ae5d3c1b08c0a4ecde014da
+Z ac0afc3f61428d63511d6d358e65ee50
index 0fa6ef77324ed9643f07d0df4d003357b4c1ff15..2466c0473c5922bd4c99e4085646727c2cef2515 100644 (file)
@@ -1 +1 @@
-be01b801fbc258f0ab9542130cec12a5ea5e2d0bf087684a9eda909ad459c211
\ No newline at end of file
+777fec84a5db968e033883920586ec0afef65578be0c1eb3021fce525111edde
\ No newline at end of file
index 8dd2b421aa28e9ab3e43012d1a1fc6f3e9691e35..70f56c3a53a25421fd7e10055164416018651a94 100644 (file)
@@ -4600,7 +4600,11 @@ static int vdbeRecordCompareString(
     nCmp = MIN( pPKey2->aMem[0].n, nStr );
     res = memcmp(&aKey1[szHdr], pPKey2->aMem[0].z, nCmp);
 
-    if( res==0 ){
+    if( res>0 ){
+      res = pPKey2->r2;
+    }else if( res<0 ){
+      res = pPKey2->r1;
+    }else{
       res = nStr - pPKey2->aMem[0].n;
       if( res==0 ){
         if( pPKey2->nField>1 ){
@@ -4614,10 +4618,6 @@ static int vdbeRecordCompareString(
       }else{
         res = pPKey2->r1;
       }
-    }else if( res>0 ){
-      res = pPKey2->r2;
-    }else{
-      res = pPKey2->r1;
     }
   }