mirror of https://github.com/sqlite/sqlite
LSM1: Fix the integer key encoding so that negative keys are in numeric order.
FossilOrigin-Name: f92dc4187f6046fcb3ab63449efd7f3738594adc
This commit is contained in:
parent
6627fd6126
commit
16b7dcc717
|
@ -379,7 +379,7 @@ static int lsm1EncodeKey(
|
|||
sqlite3_uint64 uVal;
|
||||
if( iVal<0 ){
|
||||
if( iVal==0xffffffffffffffffLL ) return SQLITE_ERROR;
|
||||
uVal = -iVal;
|
||||
uVal = *(sqlite3_uint64*)&iVal;
|
||||
eType = LSM1_TYPE_NEGATIVE;
|
||||
}else{
|
||||
uVal = iVal;
|
||||
|
@ -424,16 +424,12 @@ static int lsm1Column(
|
|||
}else if( pVal[0]==LSM1_TYPE_TEXT ){
|
||||
sqlite3_result_text(ctx, (const char*)&pVal[1],nVal-1,
|
||||
SQLITE_TRANSIENT);
|
||||
}else if( nVal>=2 && nVal<=9 &&
|
||||
}else if( nVal>=2 && nVal<=10 &&
|
||||
(pVal[0]==LSM1_TYPE_POSITIVE || pVal[0]==LSM1_TYPE_NEGATIVE)
|
||||
){
|
||||
sqlite3_uint64 uVal = 0;
|
||||
lsm1GetVarint64(pVal+1, nVal-1, &uVal);
|
||||
if( pVal[0]==LSM1_TYPE_NEGATIVE ){
|
||||
sqlite3_result_int64(ctx, -(sqlite3_int64)uVal);
|
||||
}else{
|
||||
sqlite3_result_int64(ctx, (sqlite3_int64)uVal);
|
||||
}
|
||||
sqlite3_int64 iVal;
|
||||
lsm1GetVarint64(pVal+1, nVal-1, (sqlite3_uint64*)&iVal);
|
||||
sqlite3_result_int64(ctx, iVal);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
12
manifest
12
manifest
|
@ -1,5 +1,5 @@
|
|||
C Merge\strunk\senhancements.
|
||||
D 2016-02-23T01:41:35.494
|
||||
C LSM1:\sFix\sthe\sinteger\skey\sencoding\sso\sthat\snegative\skeys\sare\sin\snumeric\sorder.
|
||||
D 2016-02-24T13:35:22.043
|
||||
F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc 28fc4ee02333996d31b3602b39eeb8e609a89ce4
|
||||
|
@ -215,7 +215,7 @@ F ext/lsm1/lsm_str.c 77ebdd5040ddf267a6f724d4c83132d2dce8a226
|
|||
F ext/lsm1/lsm_tree.c 5d9fb2bc58a1a70c75126bd8d7198f7b627e165b
|
||||
F ext/lsm1/lsm_unix.c fcaf5b6738713f1229dc0e1a90393ecf24f787f2
|
||||
F ext/lsm1/lsm_varint.c b19ae9bd26b5a1e8402fb8a564b25d9542338a41
|
||||
F ext/lsm1/lsm_vtab.c f7fb6c185ebd5dcf70f676886e28799afa72424e
|
||||
F ext/lsm1/lsm_vtab.c fff303ce03168eca9e333add3c1429b3471674b0
|
||||
F ext/misc/amatch.c a1a8f66c29d40bd71b075546ddeddb477b17a2bb
|
||||
F ext/misc/closure.c 0d2a038df8fbae7f19de42e7c7d71f2e4dc88704
|
||||
F ext/misc/compress.c 122faa92d25033d6c3f07c39231de074ab3d2e83
|
||||
|
@ -1445,7 +1445,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
|
|||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||
F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
P 32f3daec0a8084b258b2513c8025bc4d95a5d757 aa9f4c622af191edbeb6a535942944f8c91f5c37
|
||||
R 03319de6b06f1ae4f2324c01efdb9598
|
||||
P fac4f4ecee21a460e527a0e2ffa24094b74e17dd
|
||||
R 9f78396a287b58b8dc55076320f7b772
|
||||
U drh
|
||||
Z 7e07aa1e426a3abb50d562fbcc7f53c0
|
||||
Z 4d07009afed81bdff10146a4248806a2
|
||||
|
|
|
@ -1 +1 @@
|
|||
fac4f4ecee21a460e527a0e2ffa24094b74e17dd
|
||||
f92dc4187f6046fcb3ab63449efd7f3738594adc
|
Loading…
Reference in New Issue