From e86ffad8eff9cc41eaad7526dc1deccf88869c60 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Thu, 13 Apr 2023 14:23:12 +0800 Subject: [PATCH] fix: add debug info --- include/libs/executor/dataSinkMgt.h | 1 + source/libs/executor/src/dataDispatcher.c | 1 + source/libs/qworker/src/qworker.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/include/libs/executor/dataSinkMgt.h b/include/libs/executor/dataSinkMgt.h index ed7cbc8125..5e0b37eb46 100644 --- a/include/libs/executor/dataSinkMgt.h +++ b/include/libs/executor/dataSinkMgt.h @@ -70,6 +70,7 @@ typedef struct SOutputData { int32_t numOfBlocks; int64_t numOfRows; // int32_t changed to int64_t int32_t numOfCols; + int32_t dataSize; int8_t compressed; char* pData; bool queryEnd; diff --git a/source/libs/executor/src/dataDispatcher.c b/source/libs/executor/src/dataDispatcher.c index d8efcf50ca..b6433cc012 100644 --- a/source/libs/executor/src/dataDispatcher.c +++ b/source/libs/executor/src/dataDispatcher.c @@ -189,6 +189,7 @@ static int32_t getDataBlock(SDataSinkHandle* pHandle, SOutputData* pOutput) { return TSDB_CODE_SUCCESS; } SDataCacheEntry* pEntry = (SDataCacheEntry*)(pDispatcher->nextOutput.pData); + assert(pOutput->dataSize == pEntry->dataLen); memcpy(pOutput->pData, pEntry->data, pEntry->dataLen); pOutput->numOfRows = pEntry->numOfRows; pOutput->numOfCols = pEntry->numOfCols; diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index a68cf981e3..38294c5443 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -322,6 +322,7 @@ int32_t qwGetQueryResFromSink(QW_FPARAMS_DEF, SQWTaskCtx *ctx, int32_t *dataLen, if (len == 0) { if (queryEnd) { + output.dataSize = 0; code = dsGetDataBlock(ctx->sinkHandle, &output); if (code) { QW_TASK_ELOG("dsGetDataBlock failed, code:%x - %s", code, tstrerror(code)); @@ -357,6 +358,7 @@ int32_t qwGetQueryResFromSink(QW_FPARAMS_DEF, SQWTaskCtx *ctx, int32_t *dataLen, QW_ERR_RET(qwMallocFetchRsp(!ctx->localExec, *dataLen, &rsp)); output.pData = rsp->data + *dataLen - len; + output.dataSize = len; code = dsGetDataBlock(ctx->sinkHandle, &output); if (code) { QW_TASK_ELOG("dsGetDataBlock failed, code:%x - %s", code, tstrerror(code));