Minor tweak to vdbeRecordCompareInt().

FossilOrigin-Name: 284bde0ee20261737446eb8f5b6b36ad9bc3f355
This commit is contained in:
dan 2014-02-28 09:48:30 +00:00
parent a6efad8a97
commit 063d4a041a
3 changed files with 21 additions and 7 deletions

View File

@ -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

View File

@ -1 +1 @@
8f30b09518d23c3f6cecd244a66ef918fdb55323
284bde0ee20261737446eb8f5b6b36ad9bc3f355

View 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;
}