diff --git a/source/libs/tdb/src/db/tdbBtree.c b/source/libs/tdb/src/db/tdbBtree.c index 612179b2053ded041941a01e9f2aca905da3f72b..a48bae002e0108426e3e7d9412d3a5cba9fb37f7 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);