From 6be57f78f22e02b198280b29b92f93ac4bd5aac2 Mon Sep 17 00:00:00 2001 From: Shungang Li Date: Tue, 15 Aug 2023 15:07:54 +0800 Subject: [PATCH] fix: tdb btree balance after update cell --- source/libs/tdb/src/db/tdbBtree.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/libs/tdb/src/db/tdbBtree.c b/source/libs/tdb/src/db/tdbBtree.c index 612179b205..a48bae002e 100644 --- a/source/libs/tdb/src/db/tdbBtree.c +++ b/source/libs/tdb/src/db/tdbBtree.c @@ -2198,6 +2198,20 @@ int tdbBtcDelete(SBTC *pBtc) { return -1; } tdbOsFree(pCell); + + if (pPage->nOverflow > 0) { + tdbDebug("tdb/btc-delete: btree balance after update cell, pPage/nOverflow: %p/%d.", pPage, + pPage->nOverflow); + + pBtc->iPage = iPage; + pBtc->pPage = pPage; + ret = tdbBtreeBalance(pBtc); + if (ret < 0) { + tdbError("tdb/btc-delete: btree balance failed with ret: %d.", ret); + return -1; + } + } + break; } else { pgno = TDB_PAGE_PGNO(pPage);