From d3e741a84e7e67c5a5f1f85efdc03f455b15cd11 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Tue, 28 Jun 2022 15:59:54 +0800 Subject: [PATCH] tsdbCache/delete: load delete data only del file exists --- source/dnode/vnode/src/tsdb/tsdbCache.c | 30 ++++++++++++++----------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbCache.c b/source/dnode/vnode/src/tsdb/tsdbCache.c index 3b394931fb..2f6901cb24 100644 --- a/source/dnode/vnode/src/tsdb/tsdbCache.c +++ b/source/dnode/vnode/src/tsdb/tsdbCache.c @@ -595,23 +595,27 @@ static int32_t mergeLastRow(tb_uid_t uid, STsdb *pTsdb, STSRow **ppRow) { *ppRow = NULL; - SDelFReader *pDelFReader; - SDelFile *pDelFile = tsdbFSStateGetDelFile(pTsdb->fs->cState); - code = tsdbDelFReaderOpen(&pDelFReader, pDelFile, pTsdb, NULL); - if (code) goto _err; - - SDelIdx delIdx; - code = getTableDelIdx(pDelFReader, suid, uid, &delIdx); - if (code) goto _err; - SArray *pSkyline = taosArrayInit(32, sizeof(TSDBKEY)); - code = getTableDelSkyline(pMem, pIMem, pDelFReader, &delIdx, pSkyline); - if (code) goto _err; + + SDelFile *pDelFile = tsdbFSStateGetDelFile(pTsdb->fs->cState); + if (pDelFile) { + SDelFReader *pDelFReader; + + code = tsdbDelFReaderOpen(&pDelFReader, pDelFile, pTsdb, NULL); + if (code) goto _err; + + SDelIdx delIdx; + code = getTableDelIdx(pDelFReader, suid, uid, &delIdx); + if (code) goto _err; + + code = getTableDelSkyline(pMem, pIMem, pDelFReader, &delIdx, pSkyline); + if (code) goto _err; + + tsdbDelFReaderClose(pDelFReader); + } int iSkyline = taosArrayGetSize(pSkyline) - 1; - tsdbDelFReaderClose(pDelFReader); - SBlockIdx idx = {.suid = suid, .uid = uid}; SFSNextRowIter fsState = {0};