From bea00d91468524ee9efc654c28bc3eaf78bb4be5 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 16 Mar 2022 07:00:52 +0000 Subject: [PATCH] more TDB --- source/libs/tdb/src/db/tdbBtree.c | 17 +++++++++++++++-- source/libs/tdb/test/tdbTest.cpp | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/source/libs/tdb/src/db/tdbBtree.c b/source/libs/tdb/src/db/tdbBtree.c index aa62abe1fc..c67af4d868 100644 --- a/source/libs/tdb/src/db/tdbBtree.c +++ b/source/libs/tdb/src/db/tdbBtree.c @@ -148,9 +148,9 @@ int tdbBtCursorInsert(SBtCursor *pCur, const void *pKey, int kLen, const void *p idx = 0; } else { if (cret > 0) { - // TODO + idx = pCur->idx + 1; } else if (cret < 0) { - // TODO + idx = pCur->idx; } else { /* TODO */ ASSERT(0); @@ -180,6 +180,18 @@ int tdbBtCursorInsert(SBtCursor *pCur, const void *pKey, int kLen, const void *p return -1; } + { +#if 0 + // If page is overflow, balance the tree + if (pCur->pPage->nOverflow > 0) { + ret = tdbBtreeBalance(pCur); + if (ret < 0) { + return -1; + } + } +#endif + } + return 0; } @@ -260,6 +272,7 @@ static int tdbBtCursorMoveTo(SBtCursor *pCur, const void *pKey, int kLen, int *p u8 leaf = TDB_BTREE_PAGE_IS_LEAF(flags); if (leaf) { pCur->idx = midx; + *pCRst = c; break; } else { if (c <= 0) { diff --git a/source/libs/tdb/test/tdbTest.cpp b/source/libs/tdb/test/tdbTest.cpp index b7a2c04925..9da7ba0a56 100644 --- a/source/libs/tdb/test/tdbTest.cpp +++ b/source/libs/tdb/test/tdbTest.cpp @@ -22,8 +22,8 @@ TEST(tdb_test, simple_test) { ret = tdbDbInsert(pDb, "key2", 4, "value1", 6); GTEST_ASSERT_EQ(ret, 0); - // ret = tdbDbInsert(pDb, "key3", 4, "value1", 6); - // GTEST_ASSERT_EQ(ret, 0); + ret = tdbDbInsert(pDb, "key3", 4, "value1", 6); + GTEST_ASSERT_EQ(ret, 0); } ret = tdbDbDrop(pDb);