]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor tweak to vdbeRecordCompareInt().
authordan <dan@noemail.net>
Fri, 28 Feb 2014 09:48:30 +0000 (09:48 +0000)
committerdan <dan@noemail.net>
Fri, 28 Feb 2014 09:48:30 +0000 (09:48 +0000)
FossilOrigin-Name: 284bde0ee20261737446eb8f5b6b36ad9bc3f355

manifest
manifest.uuid
src/vdbeaux.c

index ab9697fb73ad1b53fde9084a92f7ab0b2ccd48f3..3b948c33cf1e763f08ab819a4c547bae12cc7bd7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\sin\slatest\strunk\schanges.
-D 2014-02-27T20:52:26.303
+C Minor\stweak\sto\svdbeRecordCompareInt().
+D 2014-02-28T09:48:30.694
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -281,7 +281,7 @@ F src/vdbe.c ab910206dd8c9c5c1455f82953934bdbfe0bcc2a
 F src/vdbe.h 6833579fc0fbdc1c933e34519064841abda5b9b3
 F src/vdbeInt.h 5286af9067cabdb8ba57b87c0c988a931be6c6c8
 F src/vdbeapi.c 5bc41aaea448a7fc250902c418f1795859be3820
-F src/vdbeaux.c 80e5315957377554c9011858f5afde61afedc181
+F src/vdbeaux.c fc95358566a454fadcf17858d582ff38c2e55c54
 F src/vdbeblob.c d939997de046b8fcc607cfee4248f3d33dbcca50
 F src/vdbemem.c 25cc487244bf6ad647105c5adbc3052403dfd143
 F src/vdbesort.c 72290f12428973c2c6b9d4f95ad0a7c8181e1280
@@ -1152,7 +1152,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P 570893740067a7caa952f259fa078cdf67017d71 51ce713c6ee91bdf0126155334dcc800b3daa509
-R f4fa5a4e2d9c34dae5f26cd35d7bbdb3
+P 8f30b09518d23c3f6cecd244a66ef918fdb55323
+R c980d8afe2372c0277fee962182b32ac
 U dan
-Z 489718005e4064c97910e87ca8ac5405
+Z 7196a891773623dba164b983a9b4c516
index ab94dbb62a2f6fc7686d927c4fa5d5562099f17c..52a4739a0c9a68e1856a814f1db122606c54118f 100644 (file)
@@ -1 +1 @@
-8f30b09518d23c3f6cecd244a66ef918fdb55323
\ No newline at end of file
+284bde0ee20261737446eb8f5b6b36ad9bc3f355
\ No newline at end of file
index 8ca605ebe614e7bc7960920ae9f549ce35671beb..8468d13b96926a0dc4ec51f335bc67f5789f9076 100644 (file)
@@ -3558,6 +3558,7 @@ static int vdbeRecordCompareInt(
   i64 lhs;
 
   switch( serial_type ){
+
     case 1:
       lhs = (char)(aKey[0]);
       break;
@@ -3593,6 +3594,15 @@ static int vdbeRecordCompareInt(
       lhs = 1;
       break;
 
+    /* This case could be removed without changing the results of running
+    ** this code. Including it causes gcc to generate a faster switch 
+    ** statement (since the range of switch targets now starts at zero and
+    ** is contiguous)) but does not cause any duplicate code to be generated
+    ** (as gcc is clever enough to combine the two like cases). Other 
+    ** compilers might be similar.  */ 
+    case 0: case 7:
+      return vdbeRecordCompare(nKey1, pKey1, szHdr, 1, pPKey2);
+
     default:
       return vdbeRecordCompare(nKey1, pKey1, szHdr, 1, pPKey2);
   }
@@ -3602,8 +3612,12 @@ static int vdbeRecordCompareInt(
   }else if( v<lhs ){
     res = pPKey2->r2;
   }else if( pPKey2->nField>1 ){
+    /* The first fields of the two keys are equal. Compare the trailing 
+    ** fields.  */
     res = vdbeRecordCompare(nKey1, pKey1, szHdr, 0, pPKey2);
   }else{
+    /* The first fields of the two keys are equal and there are no trailing
+    ** fields. Return pPKey2->default_rc in this case. */
     res = pPKey2->default_rc;
   }