From 132c6c1faaef5696da46758a1f79243639575971 Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Mon, 13 Mar 2023 15:48:28 +0800 Subject: [PATCH] fix: check column model consistency before save buffer --- src/client/src/tscSubquery.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index 3392424b45..6d818a5821 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -3320,7 +3320,17 @@ static void tscRetrieveFromDnodeCallBack(void *param, TAOS_RES *tres, int numOfR tscAbortFurtherRetryRetrieval(trsupport, tres, TSDB_CODE_TSC_NO_DISKSPACE); return; } - + + SColumnModel *pModelDesc = pDesc->pColumnModel; + SColumnModel *pModelMemBuf = trsupport->pExtMemBuffer[idx]->pColumnModel; + if (pModelDesc->capacity != pModelMemBuf->capacity || + pModelDesc->numOfCols != pModelMemBuf->numOfCols || + pModelDesc->rowSize != pModelMemBuf->rowSize) { + tscError("extBuf column model is not consistent with descriptor column model"); + tscAbortFurtherRetryRetrieval(trsupport, tres, TSDB_CODE_QRY_APP_ERROR); + return; + } + int32_t ret = saveToBuffer(trsupport->pExtMemBuffer[idx], pDesc, trsupport->localBuffer, pRes->data, pRes->numOfRows, pQueryInfo->groupbyExpr.orderType); if (ret != 0) { // set no disk space error info, and abort retry -- GitLab