From 211ab7f3673b6769c2ac86473a8d3faac5de41cb Mon Sep 17 00:00:00 2001 From: slzhou Date: Tue, 25 Oct 2022 13:34:51 +0800 Subject: [PATCH] fix: set var meta length to data length when decode data block --- source/common/src/tdatablock.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/common/src/tdatablock.c b/source/common/src/tdatablock.c index 64f56212af..4bc91eec64 100644 --- a/source/common/src/tdatablock.c +++ b/source/common/src/tdatablock.c @@ -1707,8 +1707,6 @@ void* tDecodeDataBlock(const void* buf, SSDataBlock* pBlock) { if (IS_VAR_DATA_TYPE(data.info.type)) { buf = taosDecodeBinary(buf, (void**)&data.varmeta.offset, pBlock->info.rows * sizeof(int32_t)); - data.varmeta.length = pBlock->info.rows * sizeof(int32_t); - data.varmeta.allocLen = data.varmeta.length; } else { buf = taosDecodeBinary(buf, (void**)&data.nullbitmap, BitmapLen(pBlock->info.rows)); } @@ -1717,6 +1715,10 @@ void* tDecodeDataBlock(const void* buf, SSDataBlock* pBlock) { buf = taosDecodeFixedI32(buf, &len); buf = taosDecodeBinary(buf, (void**)&data.pData, len); taosArrayPush(pBlock->pDataBlock, &data); + if (IS_VAR_DATA_TYPE(data.info.type)) { + data.varmeta.length = len; + data.varmeta.allocLen = len; + } } return (void*)buf; }