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];
|
return (p[0]<<8) + p[1];
|
||||||
}
|
}
|
||||||
static void readCoord(u8 *p, RtreeCoord *pCoord){
|
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 = (
|
pCoord->u = (
|
||||||
(((u32)p[0]) << 24) +
|
(((u32)p[0]) << 24) +
|
||||||
(((u32)p[1]) << 16) +
|
(((u32)p[1]) << 16) +
|
||||||
(((u32)p[2]) << 8) +
|
(((u32)p[2]) << 8) +
|
||||||
(((u32)p[3]) << 0)
|
(((u32)p[3]) << 0)
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
static i64 readInt64(u8 *p){
|
static i64 readInt64(u8 *p){
|
||||||
return (
|
return (
|
||||||
@ -736,13 +744,21 @@ static void nodeGetCell(
|
|||||||
){
|
){
|
||||||
u8 *pData;
|
u8 *pData;
|
||||||
RtreeCoord *pCoord;
|
RtreeCoord *pCoord;
|
||||||
int ii;
|
int ii = 0;
|
||||||
pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell);
|
pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell);
|
||||||
pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell);
|
pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell);
|
||||||
pCoord = pCell->aCoord;
|
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++){
|
for(ii=0; ii<pRtree->nDim*2; ii++){
|
||||||
readCoord(&pData[ii*4], &pCoord[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.
|
C More\sRTREE\sperformance\soptimizations\srelated\sto\sdecoding\svalues.
|
||||||
D 2017-02-01T01:34:15.043
|
D 2017-02-01T02:25:28.535
|
||||||
F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
|
F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
|
F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
|
||||||
@ -264,7 +264,7 @@ F ext/rbu/sqlite3rbu.c bb0de6cdbdb14a7d55a097238a434b7e99caf318
|
|||||||
F ext/rbu/sqlite3rbu.h 6fb6294c34a9ca93b5894a33bca530c6f08decba
|
F ext/rbu/sqlite3rbu.h 6fb6294c34a9ca93b5894a33bca530c6f08decba
|
||||||
F ext/rbu/test_rbu.c 5aa22616afac6f71ebd3d9bc9bf1006cfabcca88
|
F ext/rbu/test_rbu.c 5aa22616afac6f71ebd3d9bc9bf1006cfabcca88
|
||||||
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
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/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
|
||||||
F ext/rtree/rtree1.test 42dadfc7b44a436cd74a1bebc0b9b689e4eaf7ec
|
F ext/rtree/rtree1.test 42dadfc7b44a436cd74a1bebc0b9b689e4eaf7ec
|
||||||
F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba
|
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.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 0bf7b51896ec441f62490964c7a44a3c75c6b7e2
|
P 9663eea2a16bb4eec71476d307a3722a768308c3
|
||||||
R bb550435b988e435dcc2fd1779602487
|
R 5d2055e5a67aa8455e161eeb4945e6a1
|
||||||
U drh
|
U drh
|
||||||
Z 36c251bda157d6101f2fb97842697f89
|
Z 3923bc85bfbb1c570a9230cd663fc66b
|
||||||
|
@ -1 +1 @@
|
|||||||
9663eea2a16bb4eec71476d307a3722a768308c3
|
c5395e7496d0cd593f5e16ee5f6719d020dc0c66
|
Reference in New Issue
Block a user