Skip to content

Commit cd6ea30

Browse files
author
drh
committed
Updates to RTREE to facility testing.
FossilOrigin-Name: 7a5b42ff74882c58493dc8b710fde73d4ff251f5d42271d84be73ceaabc01698
1 parent 1ba1384 commit cd6ea30

3 files changed

Lines changed: 19 additions & 20 deletions

File tree

ext/rtree/rtree.c

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ static int nodeAcquire(
717717
** increase its reference count and return it.
718718
*/
719719
if( (pNode = nodeHashLookup(pRtree, iNode))!=0 ){
720-
if( pParent && pParent!=pNode->pParent ){
720+
if( pParent && ALWAYS(pParent!=pNode->pParent) ){
721721
RTREE_IS_CORRUPT(pRtree);
722722
return SQLITE_CORRUPT_VTAB;
723723
}
@@ -2730,7 +2730,7 @@ static int removeNode(Rtree *pRtree, RtreeNode *pNode, int iHeight){
27302730

27312731
/* Remove the entry in the parent cell. */
27322732
rc = nodeParentIndex(pRtree, pNode, &iCell);
2733-
if( rc==SQLITE_OK ){
2733+
if( ALWAYS(rc==SQLITE_OK) ){
27342734
pParent = pNode->pParent;
27352735
pNode->pParent = 0;
27362736
rc = deleteCell(pRtree, pParent, iCell, iHeight+1);
@@ -3452,7 +3452,7 @@ static int rtreeSqlInit(
34523452
}
34533453
sqlite3_free(zSql);
34543454
}
3455-
if( pRtree->nAux ){
3455+
if( pRtree->nAux && rc!=SQLITE_NOMEM ){
34563456
pRtree->zReadAuxSql = sqlite3_mprintf(
34573457
"SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1",
34583458
zDb, zPrefix);
@@ -4141,15 +4141,13 @@ static int rtreeCheckTable(
41414141
check.zTab = zTab;
41424142

41434143
/* Find the number of auxiliary columns */
4144-
if( check.rc==SQLITE_OK ){
4145-
pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.'%q_rowid'", zDb, zTab);
4146-
if( pStmt ){
4147-
nAux = sqlite3_column_count(pStmt) - 2;
4148-
sqlite3_finalize(pStmt);
4149-
}else
4150-
if( check.rc!=SQLITE_NOMEM ){
4151-
check.rc = SQLITE_OK;
4152-
}
4144+
pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.'%q_rowid'", zDb, zTab);
4145+
if( pStmt ){
4146+
nAux = sqlite3_column_count(pStmt) - 2;
4147+
sqlite3_finalize(pStmt);
4148+
}else
4149+
if( check.rc!=SQLITE_NOMEM ){
4150+
check.rc = SQLITE_OK;
41534151
}
41544152

41554153
/* Find number of dimensions in the rtree table. */
@@ -4204,6 +4202,7 @@ static int rtreeIntegrity(
42044202
if( rc==SQLITE_OK && *pzErr ){
42054203
*pzErr = sqlite3_mprintf("In RTree %s.%s:\n%z",
42064204
pRtree->zDb, pRtree->zName, *pzErr);
4205+
if( (*pzErr)==0 ) rc = SQLITE_NOMEM;
42074206
}
42084207
return rc;
42094208
}

manifest

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
C Update\sJSON\sperformance\stesting\sprocedures\sfor\sclarity\sand\sto\sdescribe\show\sto\ndo\sperformance\stesting\sof\sJSONB.
2-
D 2024-01-06T15:22:16.679
1+
C Updates\sto\sRTREE\sto\sfacility\stesting.
2+
D 2024-01-07T00:45:53.145
33
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
44
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
55
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -495,7 +495,7 @@ F ext/repair/test/checkindex01.test b530f141413b587c9eb78ff734de6bb79bc3515c3350
495495
F ext/repair/test/test.tcl 686d76d888dffd021f64260abf29a55c57b2cedfa7fc69150b42b1d6119aac3c
496496
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
497497
F ext/rtree/geopoly.c 0dd4775e896cee6067979d67aff7c998e75c2c9d9cd8d62a1a790c09cde7adca
498-
F ext/rtree/rtree.c 2e1452a9338fe4db057fa677277bed86b65c667ed48b9b59144adae99f85a7cb
498+
F ext/rtree/rtree.c a8305eed6d9c24425e8db33c9a5b0742de68125af876d59dda1878496aabbf6e
499499
F ext/rtree/rtree.h 4a690463901cb5e6127cf05eb8e642f127012fd5003830dbc974eca5802d9412
500500
F ext/rtree/rtree1.test 2b5b8c719c6a4abe377f57766f428a49af36a93061cb146cccfdc3b30000c0a4
501501
F ext/rtree/rtree2.test 9d9deddbb16fd0c30c36e6b4fdc3ee3132d765567f0f9432ee71e1303d32603d
@@ -1334,7 +1334,7 @@ F test/json/README.md de59d5ba0bd2796d797115688630a6405bbf43a2891bad445ac6b9f38b
13341334
F test/json/json-generator.tcl dc0dd0f393800c98658fc4c47eaa6af29d4e17527380cd28656fb261bddc8a3f
13351335
F test/json/json-q1.txt 65f9d1cdcc4cffa9823fb73ed936aae5658700cd001fde448f68bfb91c807307
13361336
F test/json/json-speed-check.sh 912ee03e700a65c827ee0c7b4752c21ec5ef69cf7679d2f482ca817042bead52 x
1337-
F test/json/jsonb-q1.txt 1e180fe6491efab307e318b22879e3a736ac9a96539bbde7911a13ee5b33abc7 w test/json/json-q1-b.txt
1337+
F test/json/jsonb-q1.txt 1e180fe6491efab307e318b22879e3a736ac9a96539bbde7911a13ee5b33abc7
13381338
F test/json101.test 70587d7d35ef9e2126364ba70f0c951f70827cfbd28649d779ff3df7e8f87547
13391339
F test/json102.test 557a46e16df1aa9bdbc4076a71a45814ea0e7503d6621d87d42a8c04cbc2b0ef
13401340
F test/json103.test 53df87f83a4e5fa0c0a56eb29ff6c94055c6eb919f33316d62161a8880112dbe
@@ -2156,8 +2156,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
21562156
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
21572157
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
21582158
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
2159-
P 541436004df6458dc2f38bdfa421099f78cab397f5f4795ca5f227531aaa6a3e
2160-
R c74cb5aaebf0a262676ed62bd81f26fe
2159+
P b115b4f75bc7c4e6d9bab5edf13297f27a36f30083c80d2c502b01208da5dfc0
2160+
R c7c920ea2735b30b51b5fdaba02f0c8a
21612161
U drh
2162-
Z 94bd0ff810d06e79fd9f6572dcfe8940
2162+
Z ea09a8b203a6132b84da0854911ece51
21632163
# Remove this line to create a well-formed Fossil manifest.

manifest.uuid

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
b115b4f75bc7c4e6d9bab5edf13297f27a36f30083c80d2c502b01208da5dfc0
1+
7a5b42ff74882c58493dc8b710fde73d4ff251f5d42271d84be73ceaabc01698

0 commit comments

Comments
 (0)