mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-01 06:27:03 +03:00
More RTREE performance optimizations related to decoding values.
FossilOrigin-Name: c5395e7496d0cd593f5e16ee5f6719d020dc0c66
This commit is contained in:
@ -370,12 +370,20 @@ static int readInt16(u8 *p){
|
||||
return (p[0]<<8) + p[1];
|
||||
}
|
||||
static void readCoord(u8 *p, RtreeCoord *pCoord){
|
||||
#if defined(SQLITE_BYTEORDER) && SQLITE_BYTEORDER==1234
|
||||
memcpy(&pCoord->u, p, 4);
|
||||
pCoord->u = ((pCoord->u>>24)&0xff)|((pCoord->u>>8)&0xff00)|
|
||||
((pCoord->u&0xff)<<24)|((pCoord->u&0xff00)<<8);
|
||||
#elif defined(SQLITE_BYTEORDER) && SQLITE_BYTEORDER==4321
|
||||
memcpy(&pCoord->u, p, 4);
|
||||
#else
|
||||
pCoord->u = (
|
||||
(((u32)p[0]) << 24) +
|
||||
(((u32)p[1]) << 16) +
|
||||
(((u32)p[2]) << 8) +
|
||||
(((u32)p[3]) << 0)
|
||||
);
|
||||
#endif
|
||||
}
|
||||
static i64 readInt64(u8 *p){
|
||||
return (
|
||||
@ -736,13 +744,21 @@ static void nodeGetCell(
|
||||
){
|
||||
u8 *pData;
|
||||
RtreeCoord *pCoord;
|
||||
int ii;
|
||||
int ii = 0;
|
||||
pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell);
|
||||
pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell);
|
||||
pCoord = pCell->aCoord;
|
||||
do{
|
||||
readCoord(pData, &pCoord[ii]);
|
||||
readCoord(pData+4, &pCoord[ii+1]);
|
||||
pData += 8;
|
||||
ii += 2;
|
||||
}while( ii<pRtree->nDim*2 );
|
||||
#if 0
|
||||
for(ii=0; ii<pRtree->nDim*2; ii++){
|
||||
readCoord(&pData[ii*4], &pCoord[ii]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
||||
C Improved\scomments\son\sthe\sstatGet()\simplementation\sin\sANALYZE.\s\sNo\schanges\nto\scode.
|
||||
D 2017-02-01T01:34:15.043
|
||||
C More\sRTREE\sperformance\soptimizations\srelated\sto\sdecoding\svalues.
|
||||
D 2017-02-01T02:25:28.535
|
||||
F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
|
||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||
F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
|
||||
@ -264,7 +264,7 @@ F ext/rbu/sqlite3rbu.c bb0de6cdbdb14a7d55a097238a434b7e99caf318
|
||||
F ext/rbu/sqlite3rbu.h 6fb6294c34a9ca93b5894a33bca530c6f08decba
|
||||
F ext/rbu/test_rbu.c 5aa22616afac6f71ebd3d9bc9bf1006cfabcca88
|
||||
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
||||
F ext/rtree/rtree.c 81fea8b100c6195f8a42119109d6ec2016e613f3
|
||||
F ext/rtree/rtree.c f66b3d232ea98285548107caaac55f110a0b6709
|
||||
F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
|
||||
F ext/rtree/rtree1.test 42dadfc7b44a436cd74a1bebc0b9b689e4eaf7ec
|
||||
F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba
|
||||
@ -1549,7 +1549,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 0bf7b51896ec441f62490964c7a44a3c75c6b7e2
|
||||
R bb550435b988e435dcc2fd1779602487
|
||||
P 9663eea2a16bb4eec71476d307a3722a768308c3
|
||||
R 5d2055e5a67aa8455e161eeb4945e6a1
|
||||
U drh
|
||||
Z 36c251bda157d6101f2fb97842697f89
|
||||
Z 3923bc85bfbb1c570a9230cd663fc66b
|
||||
|
@ -1 +1 @@
|
||||
9663eea2a16bb4eec71476d307a3722a768308c3
|
||||
c5395e7496d0cd593f5e16ee5f6719d020dc0c66
|
Reference in New Issue
Block a user