From 8e1de153dd4c273d9d30d8cce2602a447bcc7b65 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 29 Jun 2022 08:54:32 +0000 Subject: [PATCH] fix bug --- source/dnode/vnode/src/tsdb/tsdbUtil.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbUtil.c b/source/dnode/vnode/src/tsdb/tsdbUtil.c index 489d6d749a..d43bf3664e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbUtil.c @@ -1031,20 +1031,24 @@ static int32_t tColDataUpdateOffset(SColData *pColData) { ASSERT(pColData->nVal > 0); ASSERT(pColData->flag); + ASSERT(IS_VAR_DATA_TYPE(pColData->type)); - if (IS_VAR_DATA_TYPE(pColData->type) && (pColData->flag & HAS_VALUE)) { + if ((pColData->flag & HAS_VALUE)) { code = tsdbRealloc((uint8_t **)&pColData->aOffset, sizeof(int32_t) * pColData->nVal); if (code) goto _exit; int32_t offset = 0; for (int32_t iVal = 0; iVal < pColData->nVal; iVal++) { - uint8_t v = GET_BIT2(pColData->pBitMap, iVal); - if (v == 0 || v == 1) { - pColData->aOffset[iVal] = -1; - } else { - pColData->aOffset[iVal] = offset; - offset += tGetValue(pColData->pData + offset, &value, pColData->type); + if (pColData->flag != HAS_VALUE) { + uint8_t v = GET_BIT2(pColData->pBitMap, iVal); + if (v == 0 || v == 1) { + pColData->aOffset[iVal] = -1; + continue; + } } + + pColData->aOffset[iVal] = offset; + offset += tGetValue(pColData->pData + offset, &value, pColData->type); } ASSERT(offset == pColData->nData);