mirror of https://github.com/sqlite/sqlite
Fix a bug in rowid=? query handling. More problems remain.
FossilOrigin-Name: 5b0e6ba4a5050cf81cf41b977b28d714163569e0
This commit is contained in:
parent
f247982e37
commit
ab908cfcb4
|
@ -1230,6 +1230,7 @@ static void traceQueue(RtreeCursor *pCur, const char *zPrefix){
|
|||
tracePoint(&pCur->aPoint[ii], ii, pCur);
|
||||
}
|
||||
}
|
||||
# define RTREE_QUEUE_TRACE(A,B) traceQueue(A,B)
|
||||
#else
|
||||
# define RTREE_QUEUE_TRACE(A,B) /* no-op */
|
||||
#endif
|
||||
|
@ -1284,7 +1285,6 @@ static void rtreeSearchPointPop(RtreeCursor *p){
|
|||
*/
|
||||
static int rtreeStepToLeaf(RtreeCursor *pCur){
|
||||
RtreeSearchPoint *p;
|
||||
RtreeSearchPoint *pNew;
|
||||
Rtree *pRtree = RTREE_OF_CURSOR(pCur);
|
||||
RtreeNode *pNode;
|
||||
int eWithin;
|
||||
|
@ -1313,17 +1313,16 @@ static int rtreeStepToLeaf(RtreeCursor *pCur){
|
|||
RTREE_QUEUE_TRACE(pCur, "POP-S:");
|
||||
rtreeSearchPointPop(pCur);
|
||||
}
|
||||
pNew = rtreeSearchPointNew(pCur, /*rScore*/0.0, x.iLevel-1);
|
||||
if( pNew==0 ) return SQLITE_NOMEM;
|
||||
pNew->eWithin = eWithin;
|
||||
if( pNew->iLevel ){
|
||||
pNew->id = cell.iRowid;
|
||||
pNew->iCell = 0;
|
||||
p = rtreeSearchPointNew(pCur, /*rScore*/0.0, x.iLevel-1);
|
||||
if( p==0 ) return SQLITE_NOMEM;
|
||||
p->eWithin = eWithin;
|
||||
if( p->iLevel ){
|
||||
p->id = cell.iRowid;
|
||||
p->iCell = 0;
|
||||
}else{
|
||||
pNew->id = x.id;
|
||||
pNew->iCell = x.iCell;
|
||||
p->id = x.id;
|
||||
p->iCell = x.iCell;
|
||||
}
|
||||
p = pNew;
|
||||
RTREE_QUEUE_TRACE(pCur, "PUSH-S:");
|
||||
break;
|
||||
}
|
||||
|
@ -1496,7 +1495,9 @@ static int rtreeFilter(
|
|||
rc = findLeafNode(pRtree, iRowid, &pLeaf, &p->id);
|
||||
pCsr->aNode[0] = pLeaf;
|
||||
p->eWithin = PARTLY_WITHIN;
|
||||
if( rc ) rc = nodeRowidIndex(pRtree, pLeaf, iRowid, &iCell);
|
||||
if( rc==SQLITE_OK ){
|
||||
rc = nodeRowidIndex(pRtree, pLeaf, iRowid, &iCell);
|
||||
}
|
||||
p->iCell = iCell;
|
||||
RTREE_QUEUE_TRACE(pCsr, "PUSH-F1:");
|
||||
}else{
|
||||
|
|
12
manifest
12
manifest
|
@ -1,5 +1,5 @@
|
|||
C Bug\sfixes\sto\sthe\spriority-queue\simplementation\sfor\sR-Trees.\s\sImproved\stracing\ncapability.\s\sSome\squeries\swork\snow,\sbut\sstill\smany\sproblems.
|
||||
D 2014-04-16T13:00:08.915
|
||||
C Fix\sa\sbug\sin\srowid=?\squery\shandling.\s\sMore\sproblems\sremain.
|
||||
D 2014-04-16T14:45:11.945
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in e4ee6d36cdf6136aee0158675a3b24dd3bf31a5a
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
|
@ -120,7 +120,7 @@ F ext/misc/vfslog.c fe40fab5c077a40477f7e5eba994309ecac6cc95
|
|||
F ext/misc/vtshim.c babb0dc2bf116029e3e7c9a618b8a1377045303e
|
||||
F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212
|
||||
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
||||
F ext/rtree/rtree.c 3105c5514d6dbf99c39aceac84c4c0f9e00f90ea
|
||||
F ext/rtree/rtree.c 4702eae330e9803ac51208ec0e26c5aceb0cd20b
|
||||
F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
|
||||
F ext/rtree/rtree1.test cf679265ecafff494a768ac9c2f43a70915a6290
|
||||
F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba
|
||||
|
@ -1175,7 +1175,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 53688a25c23c394278a357829793889970aa4157
|
||||
R 67a30187386908beb1eb82f50c3b2dfd
|
||||
P a439ddd629c6bb5ea2e7e274673fee4f5c207acf
|
||||
R 759346bdeaafb6dce8a9cda8463bc2de
|
||||
U drh
|
||||
Z ba82d149b9f56c655f1e6f2a959cfc71
|
||||
Z 100295249b6d7d7223775c8a6bd7cd19
|
||||
|
|
|
@ -1 +1 @@
|
|||
a439ddd629c6bb5ea2e7e274673fee4f5c207acf
|
||||
5b0e6ba4a5050cf81cf41b977b28d714163569e0
|
Loading…
Reference in New Issue