]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
TCL tests now all pass. rtree-queue
authordrh <drh@noemail.net>
Wed, 16 Apr 2014 17:15:14 +0000 (17:15 +0000)
committerdrh <drh@noemail.net>
Wed, 16 Apr 2014 17:15:14 +0000 (17:15 +0000)
FossilOrigin-Name: f864baccd3fe0ee939ac1ec20069792f649cddc0

ext/rtree/rtree.c
ext/rtree/rtreeB.test
manifest
manifest.uuid

index 26082ff51128db8b986bc375bfaf595a09bdd847..9c62576612cd9af77ab3a3d3baecfb725e815825 100644 (file)
@@ -1239,7 +1239,7 @@ static void traceQueue(RtreeCursor *pCur, const char *zPrefix){
 */
 static void rtreeSearchPointPop(RtreeCursor *p){
   int i, j, k, n;
-  i = p->bPoint;
+  i = 1 - p->bPoint;
   assert( i==0 || i==1 );
   if( p->aNode[i] ){
     nodeRelease(RTREE_OF_CURSOR(p), p->aNode[i]);
@@ -1345,7 +1345,7 @@ static int rtreeNext(sqlite3_vtab_cursor *pVtabCursor){
   /* Move to the next entry that matches the configured constraints. */
   RTREE_QUEUE_TRACE(pCsr, "POP-Nx:");
   rtreeSearchPointPop(pCsr);
-  rtreeStepToLeaf(pCsr);
+  rc = rtreeStepToLeaf(pCsr);
   return rc;
 }
 
@@ -1490,16 +1490,20 @@ static int rtreeFilter(
     RtreeNode *pLeaf;        /* Leaf on which the required cell resides */
     RtreeSearchPoint *p;     /* Search point for the the leaf */
     i64 iRowid = sqlite3_value_int64(argv[0]);
-    p = rtreeSearchPointNew(pCsr, 0.0, 0);
-    if( p==0 ) return SQLITE_NOMEM;
-    rc = findLeafNode(pRtree, iRowid, &pLeaf, &p->id);
-    pCsr->aNode[0] = pLeaf;
-    p->eWithin = PARTLY_WITHIN;
-    if( rc==SQLITE_OK ){
+    i64 iNode = 0;
+    rc = findLeafNode(pRtree, iRowid, &pLeaf, &iNode);
+    if( rc==SQLITE_OK && pLeaf!=0 ){
+      p = rtreeSearchPointNew(pCsr, 0.0, 0);
+      assert( p!=0 );  /* Always returns pCsr->sPoint */
+      pCsr->aNode[0] = pLeaf;
+      p->id = iNode;
+      p->eWithin = PARTLY_WITHIN;
       rc = nodeRowidIndex(pRtree, pLeaf, iRowid, &iCell);
+      p->iCell = iCell;
+      RTREE_QUEUE_TRACE(pCsr, "PUSH-F1:");
+    }else{
+      pCsr->atEOF = 1;
     }
-    p->iCell = iCell;
-    RTREE_QUEUE_TRACE(pCsr, "PUSH-F1:");
   }else{
     /* Normal case - r-tree scan. Set up the RtreeCursor.aConstraint array 
     ** with the configured constraints. 
index 7cb445cc4fa97a0368ecde17badca67416eb1c49..aeb308eca7ebaf174a48595e4ccd05f99dd5f961 100644 (file)
@@ -41,7 +41,7 @@ ifcapable rtree_int_only {
       INSERT INTO t1 VALUES(9223372036854775807, 150, 150, 400, 400);
       SELECT rtreenode(2, data) FROM t1_node;
     }
-  } {{{1073741824 0.000000 0.000000 100.000000 100.000000} {2147483646 0.000000 0.000000 200.000000 200.000000} {4294967296 0.000000 0.000000 300.000000 300.000000} {8589934592 20.000000 20.000000 150.000000 150.000000} {9223372036854775807 150.000000 150.000000 400.000000 400.000000}}}
+  } {{{1073741824 0 0 100 100} {2147483646 0 0 200 200} {4294967296 0 0 300 300} {8589934592 20 20 150 150} {9223372036854775807 150 150 400 400}}}
 }
 
 finish_test
index df0b85687e3b8f8ff8773d969515ab4de83aaebb..1061ef3307bba004a4464b66995771a83540984b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbug\sin\srowid=?\squery\shandling.\s\sMore\sproblems\sremain.
-D 2014-04-16T14:45:11.945
+C TCL\stests\snow\sall\spass.
+D 2014-04-16T17:15:14.114
 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 4702eae330e9803ac51208ec0e26c5aceb0cd20b
+F ext/rtree/rtree.c 142d70dc3bb8db1caf6c0e94b88ec0e8047d36ee
 F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
 F ext/rtree/rtree1.test cf679265ecafff494a768ac9c2f43a70915a6290
 F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba
@@ -132,7 +132,7 @@ F ext/rtree/rtree7.test 1fa710b9e6bf997a0c1a537b81be7bb6fded1971
 F ext/rtree/rtree8.test db79c812f9e4a11f9b1f3f9934007884610a713a
 F ext/rtree/rtree9.test d86ebf08ff6328895613ed577dd8a2a37c472c34
 F ext/rtree/rtreeA.test ace05e729a36e342d40cf94e9efc7b4723d9dcdf
-F ext/rtree/rtreeB.test 983e567b49b5dca165940f66b87e161aa30e82b2
+F ext/rtree/rtreeB.test c85f9ce78766c4e68b8b89fbf2979ee9cfa82b4e
 F ext/rtree/rtreeC.test 16d7aa86ecb6a876d2a38cf590a1471a41b3a46d
 F ext/rtree/rtreeD.test 636630357638f5983701550b37f0f5867130d2ca
 F ext/rtree/rtree_perf.tcl 6c18c1f23cd48e0f948930c98dfdd37dfccb5195
@@ -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 a439ddd629c6bb5ea2e7e274673fee4f5c207acf
-R 759346bdeaafb6dce8a9cda8463bc2de
+P 5b0e6ba4a5050cf81cf41b977b28d714163569e0
+R f6b681e4a8814b2c282cb2ca3c357703
 U drh
-Z 100295249b6d7d7223775c8a6bd7cd19
+Z 3d7f5774712bc082940f713cae866e31
index 810616495876338397437cfbb26c93835331b642..cd8f7f474f66989165b4501f81410052e62607d2 100644 (file)
@@ -1 +1 @@
-5b0e6ba4a5050cf81cf41b977b28d714163569e0
\ No newline at end of file
+f864baccd3fe0ee939ac1ec20069792f649cddc0
\ No newline at end of file