TDengine/source/dnode/mnode/impl/src/mndStreamUtil.c

1374 lines
46 KiB
C
Raw Normal View History

2024-01-25 08:55:05 +00:00
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
2024-08-28 05:33:43 +00:00
#include "mndDb.h"
#include "mndStb.h"
2024-01-25 08:55:05 +00:00
#include "mndStream.h"
#include "mndTrans.h"
#include "mndVgroup.h"
2024-08-28 05:33:43 +00:00
#include "taoserror.h"
#include "tmisce.h"
2025-06-17 08:55:32 +00:00
#include "mndSnode.h"
2024-01-25 08:55:05 +00:00
2025-06-04 02:22:12 +00:00
bool mstWaitLock(SRWLatch* pLock, bool readLock) {
if (readLock) {
while (taosRTryLockLatch(pLock)) {
taosMsleep(1);
}
return true;
}
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
taosWWaitLockLatch(pLock);
2025-06-04 02:22:12 +00:00
return true;
2025-05-23 10:14:34 +00:00
}
2025-05-24 10:15:32 +00:00
void mstDestroySStmVgStreamStatus(void* p) {
SStmVgStreamStatus* pStatus = (SStmVgStreamStatus*)p;
taosArrayDestroy(pStatus->trigReaders);
taosArrayDestroy(pStatus->calcReaders);
}
2025-05-27 11:08:07 +00:00
void mstDestroySStmSnodeStreamStatus(void* p) {
SStmSnodeStreamStatus* pStatus = (SStmSnodeStreamStatus*)p;
for (int32_t i = 0; i < MND_STREAM_RUNNER_DEPLOY_NUM; ++i) {
taosArrayDestroy(pStatus->runners[i]);
pStatus->runners[i] = NULL;
}
}
2025-05-24 10:15:32 +00:00
void mstDestroyVgroupStatus(SStmVgroupStatus* pVgStatus) {
taosHashCleanup(pVgStatus->streamTasks);
pVgStatus->streamTasks = NULL;
}
2025-06-11 08:18:19 +00:00
void mstDestroySStmTaskToDeployExt(void* param) {
SStmTaskToDeployExt* pExt = (SStmTaskToDeployExt*)param;
if (pExt->deployed) {
return;
}
switch (pExt->deploy.task.type) {
case STREAM_TRIGGER_TASK:
taosArrayDestroy(pExt->deploy.msg.trigger.readerList);
fix: memory leak issue (#32313) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-28 02:53:33 +00:00
pExt->deploy.msg.trigger.readerList = NULL;
taosArrayDestroy(pExt->deploy.msg.trigger.runnerList);
fix: memory leak issue (#32313) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-28 02:53:33 +00:00
pExt->deploy.msg.trigger.runnerList = NULL;
break;
case STREAM_RUNNER_TASK:
fix: memory leak issue (#32313) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-28 02:53:33 +00:00
taosMemoryFreeClear(pExt->deploy.msg.runner.pPlan);
break;
default:
break;;
2025-06-11 08:18:19 +00:00
}
}
void mstDestroyScanAddrList(void* param) {
if (NULL == param) {
return;
}
SArray* pList = *(SArray**)param;
taosArrayDestroy(pList);
}
2025-06-11 08:18:19 +00:00
void mstDestroySStmSnodeTasksDeploy(void* param) {
SStmSnodeTasksDeploy* pSnode = (SStmSnodeTasksDeploy*)param;
taosArrayDestroyEx(pSnode->triggerList, mstDestroySStmTaskToDeployExt);
taosArrayDestroyEx(pSnode->runnerList, mstDestroySStmTaskToDeployExt);
2025-06-11 08:18:19 +00:00
}
void mstDestroySStmVgTasksToDeploy(void* param) {
SStmVgTasksToDeploy* pVg = (SStmVgTasksToDeploy*)param;
taosArrayDestroyEx(pVg->taskList, mstDestroySStmTaskToDeployExt);
2025-06-11 08:18:19 +00:00
}
void mstDestroySStmSnodeStatus(void* param) {
SStmSnodeStatus* pSnode = (SStmSnodeStatus*)param;
taosHashCleanup(pSnode->streamTasks);
}
void mstDestroySStmVgroupStatus(void* param) {
SStmVgroupStatus* pVg = (SStmVgroupStatus*)param;
taosHashCleanup(pVg->streamTasks);
}
void mstResetSStmStatus(SStmStatus* pStatus) {
(void)mstWaitLock(&pStatus->resetLock, false);
2025-06-11 08:18:19 +00:00
taosArrayDestroy(pStatus->trigReaders);
pStatus->trigReaders = NULL;
taosArrayDestroy(pStatus->trigOReaders);
pStatus->trigOReaders = NULL;
pStatus->calcReaders = tdListFree(pStatus->calcReaders);
if (pStatus->triggerTask) {
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)mstWaitLock(&pStatus->triggerTask->detailStatusLock, false);
taosMemoryFreeClear(pStatus->triggerTask->detailStatus);
taosWUnLockLatch(&pStatus->triggerTask->detailStatusLock);
}
2025-06-11 08:18:19 +00:00
taosMemoryFreeClear(pStatus->triggerTask);
for (int32_t i = 0; i < MND_STREAM_RUNNER_DEPLOY_NUM; ++i) {
taosArrayDestroy(pStatus->runners[i]);
pStatus->runners[i] = NULL;
2025-06-11 08:18:19 +00:00
}
taosWUnLockLatch(&pStatus->resetLock);
2025-06-11 08:18:19 +00:00
}
void mstDestroySStmStatus(void* param) {
SStmStatus* pStatus = (SStmStatus*)param;
taosMemoryFreeClear(pStatus->streamName);
mstResetSStmStatus(pStatus);
Feat/ts 6100 3.0.pw10 (#31841) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com>
2025-07-14 00:02:58 +00:00
fix: grant issues (#32231) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-25 09:05:59 +00:00
taosWLockLatch(&pStatus->userRecalcLock);
taosArrayDestroy(pStatus->userRecalcList);
taosWUnLockLatch(&pStatus->userRecalcLock);
Feat/ts 6100 3.0.pw10 (#31841) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com>
2025-07-14 00:02:58 +00:00
tFreeSCMCreateStreamReq(pStatus->pCreate);
taosMemoryFreeClear(pStatus->pCreate);
}
void mstDestroySStmAction(void* param) {
SStmAction* pAction = (SStmAction*)param;
taosArrayDestroy(pAction->undeploy.taskList);
taosArrayDestroy(pAction->recalc.recalcList);
}
void mstClearSStmStreamDeploy(SStmStreamDeploy* pDeploy) {
pDeploy->readerTasks = NULL;
pDeploy->triggerTask = NULL;
pDeploy->runnerTasks = NULL;
}
2025-04-30 10:39:59 +00:00
int32_t mstIsStreamDropped(SMnode *pMnode, int64_t streamId, bool* dropped) {
SSdb *pSdb = pMnode->pSdb;
void *pIter = NULL;
while (1) {
SStreamObj *pStream = NULL;
pIter = sdbFetch(pSdb, SDB_STREAM, pIter, (void **)&pStream);
if (pIter == NULL) break;
if (pStream->pCreate->streamId == streamId) {
*dropped = pStream->userDropped ? true : false;
sdbRelease(pSdb, pStream);
sdbCancelFetch(pSdb, pIter);
mstsDebug("stream found, dropped:%d", *dropped);
2025-04-30 10:39:59 +00:00
return TSDB_CODE_SUCCESS;
}
sdbRelease(pSdb, pStream);
}
*dropped = true;
return TSDB_CODE_SUCCESS;
}
2024-01-25 08:55:05 +00:00
2025-06-06 01:09:40 +00:00
typedef struct SStmCheckDbInUseCtx {
bool* dbStream;
bool* vtableStream;
bool ignoreCurrDb;
} SStmCheckDbInUseCtx;
static bool mstChkSetDbInUse(SMnode *pMnode, void *pObj, void *p1, void *p2, void *p3) {
SStreamObj *pStream = pObj;
if (atomic_load_8(&pStream->userDropped)) {
return true;
2024-01-29 05:46:33 +00:00
}
2025-06-06 01:09:40 +00:00
SStmCheckDbInUseCtx* pCtx = (SStmCheckDbInUseCtx*)p2;
if (pCtx->ignoreCurrDb && 0 == strcmp(pStream->pCreate->streamDB, p1)) {
return true;
}
if (pStream->pCreate->triggerDB && 0 == strcmp(pStream->pCreate->triggerDB, p1)) {
*pCtx->dbStream = true;
return false;
}
2024-01-29 05:46:33 +00:00
2025-06-06 01:09:40 +00:00
int32_t calcDBNum = taosArrayGetSize(pStream->pCreate->calcDB);
for (int32_t i = 0; i < calcDBNum; ++i) {
char* calcDB = taosArrayGetP(pStream->pCreate->calcDB, i);
if (0 == strcmp(calcDB, p1)) {
*pCtx->dbStream = true;
return false;
2024-07-22 05:31:57 +00:00
}
2024-01-29 05:46:33 +00:00
}
2025-06-06 01:09:40 +00:00
if (pStream->pCreate->vtableCalc || STREAM_IS_VIRTUAL_TABLE(pStream->pCreate->triggerTblType, pStream->pCreate->flags)) {
*pCtx->vtableStream = true;
return true;
}
return true;
}
void mstCheckDbInUse(SMnode *pMnode, char *dbFName, bool *dbStream, bool *vtableStream, bool ignoreCurrDb) {
2025-06-06 01:09:40 +00:00
int32_t streamNum = sdbGetSize(pMnode->pSdb, SDB_STREAM);
if (streamNum <= 0) {
return;
2025-06-06 01:09:40 +00:00
}
SStmCheckDbInUseCtx ctx = {dbStream, vtableStream, ignoreCurrDb};
sdbTraverse(pMnode->pSdb, SDB_STREAM, mstChkSetDbInUse, dbFName, &ctx, NULL);
2024-01-29 05:46:33 +00:00
}
2025-04-30 10:39:59 +00:00
static void mstShowStreamStatus(char *dst, int8_t status, int32_t bufLen) {
2025-04-24 01:11:54 +00:00
if (status == STREAM_STATUS_INIT) {
tstrncpy(dst, "init", bufLen);
} else if (status == STREAM_STATUS_RUNNING) {
tstrncpy(dst, "running", bufLen);
} else if (status == STREAM_STATUS_STOPPED) {
tstrncpy(dst, "stopped", bufLen);
} else if (status == STREAM_STATUS_FAILED) {
tstrncpy(dst, "failed", bufLen);
}
}
2025-04-30 10:39:59 +00:00
int32_t mstCheckSnodeExists(SMnode *pMnode) {
SSdb *pSdb = pMnode->pSdb;
void *pIter = NULL;
SSnodeObj *pObj = NULL;
2025-04-10 11:41:37 +00:00
while (1) {
pIter = sdbFetch(pSdb, SDB_SNODE, pIter, (void **)&pObj);
if (pIter == NULL) {
break;
}
2025-04-10 11:41:37 +00:00
sdbRelease(pSdb, pObj);
sdbCancelFetch(pSdb, pIter);
return TSDB_CODE_SUCCESS;
}
2025-04-10 11:41:37 +00:00
return TSDB_CODE_SNODE_NOT_DEPLOYED;
}
2025-05-10 09:16:39 +00:00
2025-05-23 10:14:34 +00:00
void mstSetTaskStatusFromMsg(SStmGrpCtx* pCtx, SStmTaskStatus* pTask, SStmTaskStatusMsg* pMsg) {
pTask->id.taskId = pMsg->taskId;
pTask->id.deployId = pMsg->deployId;
pTask->id.seriousId = pMsg->seriousId;
pTask->id.nodeId = pMsg->nodeId;
pTask->id.taskIdx = pMsg->taskIdx;
pTask->type = pMsg->type;
pTask->flags = pMsg->flags;
pTask->status = pMsg->status;
pTask->lastUpTs = pCtx->currTs;
}
2025-05-10 09:16:39 +00:00
bool mndStreamActionDequeue(SStmActionQ* pQueue, SStmQNode **param) {
while (0 == atomic_load_64(&pQueue->qRemainNum)) {
return false;
}
SStmQNode *orig = pQueue->head;
SStmQNode *node = pQueue->head->next;
pQueue->head = pQueue->head->next;
*param = node;
2025-06-10 11:26:54 +00:00
taosMemoryFreeClear(orig);
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)atomic_sub_fetch_64(&pQueue->qRemainNum, 1);
2025-05-10 09:16:39 +00:00
return true;
}
void mndStreamActionEnqueue(SStmActionQ* pQueue, SStmQNode* param) {
taosWLockLatch(&pQueue->lock);
pQueue->tail->next = param;
pQueue->tail = param;
taosWUnLockLatch(&pQueue->lock);
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)atomic_add_fetch_64(&pQueue->qRemainNum, 1);
2025-05-10 09:16:39 +00:00
}
2025-06-11 08:18:19 +00:00
char* mstGetStreamActionString(int32_t action) {
switch (action) {
case STREAM_ACT_DEPLOY:
return "DEPLOY";
case STREAM_ACT_UNDEPLOY:
return "UNDEPLOY";
case STREAM_ACT_START:
return "START";
case STREAM_ACT_UPDATE_TRIGGER:
return "UPDATE TRIGGER";
2025-06-24 05:21:01 +00:00
case STREAM_ACT_RECALC:
return "USER RECALC";
2025-06-11 08:18:19 +00:00
default:
break;
}
return "UNKNOWN";
}
2025-05-10 09:16:39 +00:00
2025-06-24 10:06:20 +00:00
void mstPostStreamAction(SStmActionQ* actionQ, int64_t streamId, char* streamName, void* param, bool userAction, int32_t action) {
2025-05-10 09:16:39 +00:00
SStmQNode *pNode = taosMemoryMalloc(sizeof(SStmQNode));
if (NULL == pNode) {
2025-06-24 05:21:01 +00:00
taosMemoryFreeClear(param);
2025-05-23 10:14:34 +00:00
mstsError("%s failed at line %d, error:%s", __FUNCTION__, __LINE__, tstrerror(terrno));
2025-05-10 09:16:39 +00:00
return;
}
pNode->type = action;
pNode->streamAct = true;
pNode->action.stream.streamId = streamId;
TAOS_STRCPY(pNode->action.stream.streamName, streamName);
2025-06-24 10:06:20 +00:00
pNode->action.stream.userAction = userAction;
2025-06-24 05:21:01 +00:00
pNode->action.stream.actionParam = param;
2025-05-10 09:16:39 +00:00
pNode->next = NULL;
mndStreamActionEnqueue(actionQ, pNode);
2025-05-28 09:17:54 +00:00
2025-06-11 08:18:19 +00:00
mstsDebug("stream action %s posted enqueue", mstGetStreamActionString(action));
2025-05-10 09:16:39 +00:00
}
2025-06-24 05:21:01 +00:00
void mstPostTaskAction(SStmActionQ* actionQ, SStmTaskAction* pAction, int32_t action) {
2025-05-10 09:16:39 +00:00
SStmQNode *pNode = taosMemoryMalloc(sizeof(SStmQNode));
if (NULL == pNode) {
2025-05-13 06:37:07 +00:00
int64_t streamId = pAction->streamId;
2025-05-23 10:14:34 +00:00
mstsError("%s failed at line %d, error:%s", __FUNCTION__, __LINE__, tstrerror(terrno));
2025-05-10 09:16:39 +00:00
return;
}
pNode->type = action;
pNode->streamAct = false;
2025-05-13 06:37:07 +00:00
pNode->action.task = *pAction;
2025-05-10 09:16:39 +00:00
pNode->next = NULL;
mndStreamActionEnqueue(actionQ, pNode);
}
2025-06-24 05:21:01 +00:00
void mstDestroyDbVgroupsHash(SSHashObj *pDbVgs) {
2025-06-04 01:32:26 +00:00
int32_t iter = 0;
SDBVgHashInfo* pVg = NULL;
void* p = NULL;
while (NULL != (p = tSimpleHashIterate(pDbVgs, p, &iter))) {
pVg = (SDBVgHashInfo*)p;
taosArrayDestroy(pVg->vgArray);
}
tSimpleHashCleanup(pDbVgs);
}
2025-06-24 05:21:01 +00:00
int32_t mstBuildDBVgroupsMap(SMnode* pMnode, SSHashObj** ppRes) {
2025-06-04 01:32:26 +00:00
void* pIter = NULL;
int32_t code = TSDB_CODE_SUCCESS;
int32_t lino = 0;
SArray* pTarget = NULL;
SArray* pNew = NULL;
SDbObj* pDb = NULL;
SDBVgHashInfo dbInfo = {0}, *pDbInfo = NULL;
SVgObj* pVgroup = NULL;
SSHashObj* pDbVgroup = tSimpleHashInit(20, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY));
TSDB_CHECK_NULL(pDbVgroup, code, lino, _exit, terrno);
while (1) {
pIter = sdbFetch(pMnode->pSdb, SDB_VGROUP, pIter, (void**)&pVgroup);
if (pIter == NULL) {
break;
}
pDbInfo = (SDBVgHashInfo*)tSimpleHashGet(pDbVgroup, pVgroup->dbName, strlen(pVgroup->dbName) + 1);
if (NULL == pDbInfo) {
pNew = taosArrayInit(20, sizeof(SVGroupHashInfo));
if (NULL == pNew) {
sdbRelease(pMnode->pSdb, pVgroup);
sdbCancelFetch(pMnode->pSdb, pIter);
pVgroup = NULL;
TSDB_CHECK_NULL(pNew, code, lino, _exit, terrno);
}
2025-06-04 01:32:26 +00:00
pDb = mndAcquireDb(pMnode, pVgroup->dbName);
if (NULL == pDb) {
sdbRelease(pMnode->pSdb, pVgroup);
sdbCancelFetch(pMnode->pSdb, pIter);
pVgroup = NULL;
TSDB_CHECK_NULL(pDb, code, lino, _exit, terrno);
}
2025-06-04 01:32:26 +00:00
dbInfo.vgSorted = false;
dbInfo.hashMethod = pDb->cfg.hashMethod;
dbInfo.hashPrefix = pDb->cfg.hashPrefix;
dbInfo.hashSuffix = pDb->cfg.hashSuffix;
dbInfo.vgArray = pNew;
mndReleaseDb(pMnode, pDb);
pTarget = pNew;
} else {
pTarget = pDbInfo->vgArray;
}
SVGroupHashInfo vgInfo = {.vgId = pVgroup->vgId, .hashBegin = pVgroup->hashBegin, .hashEnd = pVgroup->hashEnd};
if (NULL == taosArrayPush(pTarget, &vgInfo)) {
sdbRelease(pMnode->pSdb, pVgroup);
sdbCancelFetch(pMnode->pSdb, pIter);
pVgroup = NULL;
TSDB_CHECK_NULL(NULL, code, lino, _exit, terrno);
}
2025-06-04 01:32:26 +00:00
if (NULL == pDbInfo) {
code = tSimpleHashPut(pDbVgroup, pVgroup->dbName, strlen(pVgroup->dbName) + 1, &dbInfo, sizeof(dbInfo));
if (code) {
sdbRelease(pMnode->pSdb, pVgroup);
sdbCancelFetch(pMnode->pSdb, pIter);
pVgroup = NULL;
TAOS_CHECK_EXIT(code);
}
2025-06-04 01:32:26 +00:00
pNew = NULL;
}
sdbRelease(pMnode->pSdb, pVgroup);
pVgroup = NULL;
}
*ppRes = pDbVgroup;
_exit:
taosArrayDestroy(pNew);
if (code) {
mstError("%s failed at line %d, error:%s", __FUNCTION__, lino, tstrerror(code));
}
return code;
}
int mstDbVgInfoComp(const void* lp, const void* rp) {
SVGroupHashInfo* pLeft = (SVGroupHashInfo*)lp;
SVGroupHashInfo* pRight = (SVGroupHashInfo*)rp;
if (pLeft->hashBegin < pRight->hashBegin) {
return -1;
} else if (pLeft->hashBegin > pRight->hashBegin) {
return 1;
}
return 0;
}
int32_t mstTableHashValueComp(void const* lp, void const* rp) {
uint32_t* key = (uint32_t*)lp;
SVgroupInfo* pVg = (SVgroupInfo*)rp;
if (*key < pVg->hashBegin) {
return -1;
} else if (*key > pVg->hashEnd) {
return 1;
}
return 0;
}
2025-06-24 05:21:01 +00:00
int32_t mstGetTableVgId(SSHashObj* pDbVgroups, char* dbFName, char *tbName, int32_t* vgId) {
2025-06-04 01:32:26 +00:00
int32_t code = 0;
int32_t lino = 0;
SVgroupInfo* vgInfo = NULL;
char tbFullName[TSDB_TABLE_FNAME_LEN];
SDBVgHashInfo* dbInfo = (SDBVgHashInfo*)tSimpleHashGet(pDbVgroups, dbFName, strlen(dbFName) + 1);
if (NULL == dbInfo) {
mstError("db %s does not exist", dbFName);
TAOS_CHECK_EXIT(TSDB_CODE_MND_DB_NOT_EXIST);
}
(void)snprintf(tbFullName, sizeof(tbFullName), "%s.%s", dbFName, tbName);
uint32_t hashValue = taosGetTbHashVal(tbFullName, (uint32_t)strlen(tbFullName), dbInfo->hashMethod,
dbInfo->hashPrefix, dbInfo->hashSuffix);
if (!dbInfo->vgSorted) {
taosArraySort(dbInfo->vgArray, mstDbVgInfoComp);
dbInfo->vgSorted = true;
}
vgInfo = taosArraySearch(dbInfo->vgArray, &hashValue, mstTableHashValueComp, TD_EQ);
if (NULL == vgInfo) {
mstError("no hash range found for hash value [%u], dbFName:%s, numOfVgId:%d", hashValue, dbFName,
(int32_t)taosArrayGetSize(dbInfo->vgArray));
TAOS_CHECK_EXIT(TSDB_CODE_MND_STREAM_INTERNAL_ERROR);
}
*vgId = vgInfo->vgId;
_exit:
if (code) {
mstError("%s failed at line %d, error:%s", __FUNCTION__, lino, tstrerror(code));
}
return code;
}
2025-06-24 05:21:01 +00:00
void mstLogSStreamObj(char* tips, SStreamObj* p) {
2025-05-21 02:49:48 +00:00
if (!(stDebugFlag & DEBUG_DEBUG)) {
return;
}
2025-05-19 09:46:36 +00:00
if (NULL == p) {
2025-05-23 10:14:34 +00:00
mstDebug("%s: stream is NULL", tips);
2025-05-19 09:46:36 +00:00
return;
}
2025-05-23 10:14:34 +00:00
mstDebug("%s: stream obj", tips);
mstDebug("name:%s mainSnodeId:%d userDropped:%d userStopped:%d createTime:%" PRId64 " updateTime:%" PRId64,
2025-05-19 09:46:36 +00:00
p->name, p->mainSnodeId, p->userDropped, p->userStopped, p->createTime, p->updateTime);
SCMCreateStreamReq* q = p->pCreate;
if (NULL == q) {
2025-05-23 10:14:34 +00:00
mstDebug("stream pCreate is NULL");
2025-05-19 09:46:36 +00:00
return;
}
int64_t streamId = q->streamId;
int32_t calcDBNum = taosArrayGetSize(q->calcDB);
2025-05-20 00:15:23 +00:00
int32_t calcScanNum = taosArrayGetSize(q->calcScanPlanList);
int32_t notifyUrlNum = taosArrayGetSize(q->pNotifyAddrUrls);
int32_t outColNum = taosArrayGetSize(q->outCols);
int32_t outTagNum = taosArrayGetSize(q->outTags);
int32_t forceOutColNum = taosArrayGetSize(q->forceOutCols);
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: name:%s sql:%s streamDB:%s triggerDB:%s outDB:%s calcDBNum:%d triggerTblName:%s outTblName:%s "
2025-05-20 00:15:23 +00:00
"igExists:%d triggerType:%d igDisorder:%d deleteReCalc:%d deleteOutTbl:%d fillHistory:%d fillHistroyFirst:%d "
feat(stream): optimize stream logic (#33027) * fix: remove debug log * fix: remove assert * fix: delete unused code * enh: [TD-37251] Support expr in state window. * feat(stream): support expr in state window trigger * enh: [TD-37251] Fix SCL_IS_CONST_CALC condition. * fix(stream): set ver in wal * fix: print code * fix: increase runner replica num * fix: trigger mem error * fix: sliding _tnext_ts value * fix(stream): disable tagFilterCache in stream reader trigger * fix: crash * Revert "fix(stream): fix history calc finish check" This reverts commit f93d17f1d27f011639d22cb0880637dbeb7e5532. * Revert "fix(stream): fix calc request allocation in trigger" This reverts commit c5410f6da09835303d32967f4b6d02a7e47cd589. * fix(stream): fix calc request allocation in trigger * enh: [TD-37251] External window support more placeholder. * fix(stream): modify size of return from 1000000->4096 * enh: [TD-37251] Modify error msg when stream query do not have from clause. * fix(stream): add log for group not found * fix(stream): do not return gid=0 in walMetaData interface * enh: [TD-37251] Fix missing ts column in vtable query. * fix: test case build failed * fix: invalid read issue * fix(stream): add vtable logic * fix(stream): encode error in wal * fix(stream): add vtable logic * fix(stream): add log * fix: diff funcition crash * Revert "Merge branch 'enh/TD-37251-3.0-dropoutput' into enh/TD-37251-3.0" This reverts commit e93cbd6fd42261527df046c70e0ece7568af187b, reversing changes made to dc3230591d4428c817703f52574aa01d5f10e5fe. * Revert "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit dc3230591d4428c817703f52574aa01d5f10e5fe, reversing changes made to 085e086782896db22acd292816e53497cbecb726. * fix(stream): fix block data len is too large if data type is vchar * fix: drop output table * feat: runner delete output table * process pDropBlock in trigger task. * fix(stream): opti log level * fix(stream): build block for drop table * fix(stream): set gid for normal table * fix(stream): set gid for normal table * feat: Support delete output. * fix(stream): rows error * fix(stream): memory leak * enh: [TD-37251] Fix external window wrong ts column. * fix(stream): fix calc time check in batch mode * fix: merge aligned external window issue * Revert "fix(stream): fix calc time check in batch mode" This reverts commit d895b7f5776cf77c2ce290cdeedca86c206da6ce. * fix(stream): add test case * fix(stream): add insert drop table logic * fix: external window end issue * fix(stream): add test case * fix(stream): fix trigger pull data * fix(stream): fix history calc request * enh: drop table on snode * fix(stream): adjust hash index if data is filtered in wal * fix(stream): rollback * enh: add merge aligned extwin window row idx * fix: drop output table * fix: compile issue * enh: [TD-37251] Add flag to identify interval window is overlapped * fix: overlap * fix(stream): set gid=-1 for initialized * fix(stream): modify log level * fix: trigger slow issue * fix(stream): add basic test for obj pool * fix(stream): fix metadata clear in trigger * fix(stream): fix idle runner allocation in trigger * fix: handle agg output on externalWin * fix: test case * fix(stream): adjust log * fix: reset pCtx pOutput * fix: memory leak * fix: search first win for tsCol * fix(stream): add test case for schema change * fix: mem leak * fix: mem leak * Reapply "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit b508e66958eb95117b1d086a964b87b5ac59a19e. * fix(stream): fix virtual table data pull * fix(stream): fix set table request * fix(stream): process empty uidlist * fix(stream): fix set table request * fix(stream): fix data new request in trigger * fix(stream): tablelist error for vtable * fix(stream): block ver is null * fix(stream): remove version limition for wal * fix(stream): block rows error * fix(stream): fix pending calc param in batch mode * fix(stream): auto create table * fix(stream): fix stream vtable data merge * fix: _tcurrentts * fix(stream): destroy hash * fix(stream): fix trigger status * fix(stream): colId error in vtable * fix(stream): update nrows of vtable data block * fix(stream): fix trigger status * fix(stream): enable low latency calc for period trigger * fix: test case file path * fix: test case file path * fix: string to node in reader * enh: add test log * fix(stream): increase wait time of non-low-latency mode * fix(stream): fix column capacity in scalar calculation * fix(stream): fix column capacity in trigger expr calculation * fix: get origTableInfos * fix(stream): fix calc data pull in trigger * fix(stream): fix calc data cache write in trigger * enh: [TD-37251] Add flag to identify interval wind * fix: external window memory usage issue * fix(stream): fix epxr result column in trigger * fix(stream): add metaCache for calc plan * fix(stream): fix stream obj list clear * fix(stream): rollback * enh: [TD-37251] Add flag to identify interval wind * fix: mem free * fix(stream): add metaCache for calc plan * fix(stream): fix calc data cache write in trigger * fix(stream): fix calc data cache write in trigger * enh: optimize external result block memory * fix(stream): modify logic of judge table for create table * fix(stream): fix event window check in trigger * fix(stream): fix count window check in trigger * fix(stream): colSize=0 while encoding block because pDataCol->hasNull is false in secode time & reload table list if create table * enh: optimize stream memory * fix(stream): trigger tag error * fix: add log * fix(stream): fix calc data write in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix(build): handle return value of function * fix(stream): read gid error if it is child table in stream * fix(stream): fix calc param of history calculation * fix(stream): fix recalc of delete data * fix(stream): fix calc data of period trigger * fix(stream): fix cache read check * fix(stream): filter error in calc plan * fix: reset externla window expr * fix(stream): fix calc parm of max delay * fix: time range and case issues * fix(stream): fix crash in trigger * fix: case issues * fix: fix window node mem leak. * fix(stream): fix meta data clear in trigger * fix(stream): table schema is old in TsdbDataRequest for vtable * fix: fix slingding window place holder check condition. * Revert "fix: fix slingding window place holder check condition." This reverts commit ad864a1dc113961b409e32e2ac7d1feb534b74d6. * fix(stream): null pointer error * fix: case issue * fix(stream): calc data error for vtable * fix(stream): fix data sorter in trigger * fix(stream): add log for delete data * fix(stream): fix start version of realtime calculation * fix(stream): fix cache data merger of vtable * fix: case issues * fix(ci): upgrade stream cases in test_cols_function * fix(stream): gid not found if change tag value * fix: fix slingding window place holder check condition. * fix(stream): fix virt table info request in trigger * fix(stream): set gid = uid if stream table type != SUPER table * fix: clean cache data by group * fix: add block info and case issues * fix: fix heap-buffer-overflow. * fix(stream): fix state window with extend param * fix: fix access null pointer. * fix: case issues * fix: case issue * fix(stream): fix ignore_nodata_trigger option for period trigger * fix(stream): fix pseudo col fetch for calc data * fix: Extend checking time to avoid timeout. * fix: case issues * fix(stream): fix group col fetch for virtual tables * fix(stream): tag is NULL for non vtable * fix(stream): fix sliding check of virtual table * test(stream): check stream status after create all streams * fix: add log * fix(stream): fix wal meta truncate when ignore disorder * fix(stream): gid not found for child table * fix: fix place holder condition pushdown error. * fix(stream): suid not equal when delete data for child table * fix: id issue * fix(stream): disable recalc for count trigger * fix: cast result rowSize error in project * fix(stream): add log for tsdb meta * fix(stream): fix gid in tsdb meta request * fix(stream): fix wend of unclosed windows * fix(stream): fix ignore_nodata_trigger option for period trigger * fix: case issues * fix(stream): fix calc data pull for empty interval window * fix: fix ext window condition. * fix(ci): smaBasic performance check affectd by debug level log * fix(stream): add suid when set table list for vtable * fix: forbid using prefilter when using %%trows an trigger table is virtual table. * fix: forbid prefilter %%trows cases. * fix(stream): sort cid in tsdbVirtalDataReq * fix: forbid prefilter %%trows cases. * fix(stream): add log for virtual table tsdb data * fix(stream): get delete msg for vtable * fix: winRowIndex * Revert "fix: winRowIndex" This reverts commit e08b41cf960bb9ca031b9ea20b4495cbbd4e3ed0. * fix(stream): fix data merge in trigger * test(stream): fix case ans * fix(stream): fix empty calc data pull for period trigger * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix: case issue * fix: crash issue * fix: forbid prefilter %%trows cases. * fix(stream): session case * fix(stream): fix data pull for virtual tables * fix(stream): add log * fix(stream): fix calc req send in batch mode * fix: fix stream UT * fix(stream): tablelist is null for non vtable * fix: mem leak * fix(stream): fix compile error in trigger * fix: return code issue --------- Co-authored-by: dapan1121 <wpan@taosdata.com> Co-authored-by: facetosea <285808407@qq.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: Jinqing Kuang <kuangjinqingcn@gmail.com> Co-authored-by: Tony Zhang <tonyzhang@taosdata.com>
2025-09-25 07:48:14 +00:00
"calcNotifyOnly:%d lowLatencyCalc:%d igNoDataTrigger:%d notifyUrlNum:%d notifyEventTypes:%d addOptions:%d notifyHistory:%d "
2025-05-20 00:15:23 +00:00
"outColsNum:%d outTagsNum:%d maxDelay:%" PRId64 " fillHistoryStartTs:%" PRId64 " watermark:%" PRId64 " expiredTime:%" PRId64 " "
2025-06-06 01:09:40 +00:00
"triggerTblType:%d triggerTblUid:%" PRIx64 " triggerTblSuid:%" PRIx64 " vtableCalc:%d outTblType:%d outStbExists:%d outStbUid:%" PRIu64 " outStbSversion:%d "
"eventTypes:0x%" PRIx64 " flags:0x%" PRIx64 " tsmaId:0x%" PRIx64 " placeHolderBitmap:0x%" PRIx64 " calcTsSlotId:%d triTsSlotId:%d "
2025-05-20 01:09:09 +00:00
"triggerTblVgId:%d outTblVgId:%d calcScanPlanNum:%d forceOutCols:%d",
2025-05-20 00:15:23 +00:00
q->name, q->sql, q->streamDB, q->triggerDB, q->outDB, calcDBNum, q->triggerTblName, q->outTblName,
q->igExists, q->triggerType, q->igDisorder, q->deleteReCalc, q->deleteOutTbl, q->fillHistory, q->fillHistoryFirst,
feat(stream): optimize stream logic (#33027) * fix: remove debug log * fix: remove assert * fix: delete unused code * enh: [TD-37251] Support expr in state window. * feat(stream): support expr in state window trigger * enh: [TD-37251] Fix SCL_IS_CONST_CALC condition. * fix(stream): set ver in wal * fix: print code * fix: increase runner replica num * fix: trigger mem error * fix: sliding _tnext_ts value * fix(stream): disable tagFilterCache in stream reader trigger * fix: crash * Revert "fix(stream): fix history calc finish check" This reverts commit f93d17f1d27f011639d22cb0880637dbeb7e5532. * Revert "fix(stream): fix calc request allocation in trigger" This reverts commit c5410f6da09835303d32967f4b6d02a7e47cd589. * fix(stream): fix calc request allocation in trigger * enh: [TD-37251] External window support more placeholder. * fix(stream): modify size of return from 1000000->4096 * enh: [TD-37251] Modify error msg when stream query do not have from clause. * fix(stream): add log for group not found * fix(stream): do not return gid=0 in walMetaData interface * enh: [TD-37251] Fix missing ts column in vtable query. * fix: test case build failed * fix: invalid read issue * fix(stream): add vtable logic * fix(stream): encode error in wal * fix(stream): add vtable logic * fix(stream): add log * fix: diff funcition crash * Revert "Merge branch 'enh/TD-37251-3.0-dropoutput' into enh/TD-37251-3.0" This reverts commit e93cbd6fd42261527df046c70e0ece7568af187b, reversing changes made to dc3230591d4428c817703f52574aa01d5f10e5fe. * Revert "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit dc3230591d4428c817703f52574aa01d5f10e5fe, reversing changes made to 085e086782896db22acd292816e53497cbecb726. * fix(stream): fix block data len is too large if data type is vchar * fix: drop output table * feat: runner delete output table * process pDropBlock in trigger task. * fix(stream): opti log level * fix(stream): build block for drop table * fix(stream): set gid for normal table * fix(stream): set gid for normal table * feat: Support delete output. * fix(stream): rows error * fix(stream): memory leak * enh: [TD-37251] Fix external window wrong ts column. * fix(stream): fix calc time check in batch mode * fix: merge aligned external window issue * Revert "fix(stream): fix calc time check in batch mode" This reverts commit d895b7f5776cf77c2ce290cdeedca86c206da6ce. * fix(stream): add test case * fix(stream): add insert drop table logic * fix: external window end issue * fix(stream): add test case * fix(stream): fix trigger pull data * fix(stream): fix history calc request * enh: drop table on snode * fix(stream): adjust hash index if data is filtered in wal * fix(stream): rollback * enh: add merge aligned extwin window row idx * fix: drop output table * fix: compile issue * enh: [TD-37251] Add flag to identify interval window is overlapped * fix: overlap * fix(stream): set gid=-1 for initialized * fix(stream): modify log level * fix: trigger slow issue * fix(stream): add basic test for obj pool * fix(stream): fix metadata clear in trigger * fix(stream): fix idle runner allocation in trigger * fix: handle agg output on externalWin * fix: test case * fix(stream): adjust log * fix: reset pCtx pOutput * fix: memory leak * fix: search first win for tsCol * fix(stream): add test case for schema change * fix: mem leak * fix: mem leak * Reapply "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit b508e66958eb95117b1d086a964b87b5ac59a19e. * fix(stream): fix virtual table data pull * fix(stream): fix set table request * fix(stream): process empty uidlist * fix(stream): fix set table request * fix(stream): fix data new request in trigger * fix(stream): tablelist error for vtable * fix(stream): block ver is null * fix(stream): remove version limition for wal * fix(stream): block rows error * fix(stream): fix pending calc param in batch mode * fix(stream): auto create table * fix(stream): fix stream vtable data merge * fix: _tcurrentts * fix(stream): destroy hash * fix(stream): fix trigger status * fix(stream): colId error in vtable * fix(stream): update nrows of vtable data block * fix(stream): fix trigger status * fix(stream): enable low latency calc for period trigger * fix: test case file path * fix: test case file path * fix: string to node in reader * enh: add test log * fix(stream): increase wait time of non-low-latency mode * fix(stream): fix column capacity in scalar calculation * fix(stream): fix column capacity in trigger expr calculation * fix: get origTableInfos * fix(stream): fix calc data pull in trigger * fix(stream): fix calc data cache write in trigger * enh: [TD-37251] Add flag to identify interval wind * fix: external window memory usage issue * fix(stream): fix epxr result column in trigger * fix(stream): add metaCache for calc plan * fix(stream): fix stream obj list clear * fix(stream): rollback * enh: [TD-37251] Add flag to identify interval wind * fix: mem free * fix(stream): add metaCache for calc plan * fix(stream): fix calc data cache write in trigger * fix(stream): fix calc data cache write in trigger * enh: optimize external result block memory * fix(stream): modify logic of judge table for create table * fix(stream): fix event window check in trigger * fix(stream): fix count window check in trigger * fix(stream): colSize=0 while encoding block because pDataCol->hasNull is false in secode time & reload table list if create table * enh: optimize stream memory * fix(stream): trigger tag error * fix: add log * fix(stream): fix calc data write in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix(build): handle return value of function * fix(stream): read gid error if it is child table in stream * fix(stream): fix calc param of history calculation * fix(stream): fix recalc of delete data * fix(stream): fix calc data of period trigger * fix(stream): fix cache read check * fix(stream): filter error in calc plan * fix: reset externla window expr * fix(stream): fix calc parm of max delay * fix: time range and case issues * fix(stream): fix crash in trigger * fix: case issues * fix: fix window node mem leak. * fix(stream): fix meta data clear in trigger * fix(stream): table schema is old in TsdbDataRequest for vtable * fix: fix slingding window place holder check condition. * Revert "fix: fix slingding window place holder check condition." This reverts commit ad864a1dc113961b409e32e2ac7d1feb534b74d6. * fix(stream): null pointer error * fix: case issue * fix(stream): calc data error for vtable * fix(stream): fix data sorter in trigger * fix(stream): add log for delete data * fix(stream): fix start version of realtime calculation * fix(stream): fix cache data merger of vtable * fix: case issues * fix(ci): upgrade stream cases in test_cols_function * fix(stream): gid not found if change tag value * fix: fix slingding window place holder check condition. * fix(stream): fix virt table info request in trigger * fix(stream): set gid = uid if stream table type != SUPER table * fix: clean cache data by group * fix: add block info and case issues * fix: fix heap-buffer-overflow. * fix(stream): fix state window with extend param * fix: fix access null pointer. * fix: case issues * fix: case issue * fix(stream): fix ignore_nodata_trigger option for period trigger * fix(stream): fix pseudo col fetch for calc data * fix: Extend checking time to avoid timeout. * fix: case issues * fix(stream): fix group col fetch for virtual tables * fix(stream): tag is NULL for non vtable * fix(stream): fix sliding check of virtual table * test(stream): check stream status after create all streams * fix: add log * fix(stream): fix wal meta truncate when ignore disorder * fix(stream): gid not found for child table * fix: fix place holder condition pushdown error. * fix(stream): suid not equal when delete data for child table * fix: id issue * fix(stream): disable recalc for count trigger * fix: cast result rowSize error in project * fix(stream): add log for tsdb meta * fix(stream): fix gid in tsdb meta request * fix(stream): fix wend of unclosed windows * fix(stream): fix ignore_nodata_trigger option for period trigger * fix: case issues * fix(stream): fix calc data pull for empty interval window * fix: fix ext window condition. * fix(ci): smaBasic performance check affectd by debug level log * fix(stream): add suid when set table list for vtable * fix: forbid using prefilter when using %%trows an trigger table is virtual table. * fix: forbid prefilter %%trows cases. * fix(stream): sort cid in tsdbVirtalDataReq * fix: forbid prefilter %%trows cases. * fix(stream): add log for virtual table tsdb data * fix(stream): get delete msg for vtable * fix: winRowIndex * Revert "fix: winRowIndex" This reverts commit e08b41cf960bb9ca031b9ea20b4495cbbd4e3ed0. * fix(stream): fix data merge in trigger * test(stream): fix case ans * fix(stream): fix empty calc data pull for period trigger * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix: case issue * fix: crash issue * fix: forbid prefilter %%trows cases. * fix(stream): session case * fix(stream): fix data pull for virtual tables * fix(stream): add log * fix(stream): fix calc req send in batch mode * fix: fix stream UT * fix(stream): tablelist is null for non vtable * fix: mem leak * fix(stream): fix compile error in trigger * fix: return code issue --------- Co-authored-by: dapan1121 <wpan@taosdata.com> Co-authored-by: facetosea <285808407@qq.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: Jinqing Kuang <kuangjinqingcn@gmail.com> Co-authored-by: Tony Zhang <tonyzhang@taosdata.com>
2025-09-25 07:48:14 +00:00
q->calcNotifyOnly, q->lowLatencyCalc, q->igNoDataTrigger, notifyUrlNum, q->notifyEventTypes, q->addOptions, q->notifyHistory,
2025-05-20 00:15:23 +00:00
outColNum, outTagNum, q->maxDelay, q->fillHistoryStartTime, q->watermark, q->expiredTime,
2025-06-06 01:09:40 +00:00
q->triggerTblType, q->triggerTblUid, q->triggerTblSuid, q->vtableCalc, q->outTblType, q->outStbExists, q->outStbUid, q->outStbSversion,
q->eventTypes, q->flags, q->tsmaId, q->placeHolderBitmap, q->calcTsSlotId, q->triTsSlotId,
2025-05-20 01:09:09 +00:00
q->triggerTblVgId, q->outTblVgId, calcScanNum, forceOutColNum);
fix: notify free issue (#32206) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-24 08:55:10 +00:00
switch (q->triggerType) {
case WINDOW_TYPE_INTERVAL: {
SSlidingTrigger* t = &q->trigger.sliding;
mstsDebug("sliding trigger options, intervalUnit:%d, slidingUnit:%d, offsetUnit:%d, soffsetUnit:%d, precision:%d, interval:%" PRId64 ", offset:%" PRId64 ", sliding:%" PRId64 ", soffset:%" PRId64,
t->intervalUnit, t->slidingUnit, t->offsetUnit, t->soffsetUnit, t->precision, t->interval, t->offset, t->sliding, t->soffset);
break;
}
case WINDOW_TYPE_SESSION: {
SSessionTrigger* t = &q->trigger.session;
mstsDebug("session trigger options, slotId:%d, sessionVal:%" PRId64, t->slotId, t->sessionVal);
break;
}
case WINDOW_TYPE_STATE: {
SStateWinTrigger* t = &q->trigger.stateWin;
feat(stream): optimize stream logic (#33027) * fix: remove debug log * fix: remove assert * fix: delete unused code * enh: [TD-37251] Support expr in state window. * feat(stream): support expr in state window trigger * enh: [TD-37251] Fix SCL_IS_CONST_CALC condition. * fix(stream): set ver in wal * fix: print code * fix: increase runner replica num * fix: trigger mem error * fix: sliding _tnext_ts value * fix(stream): disable tagFilterCache in stream reader trigger * fix: crash * Revert "fix(stream): fix history calc finish check" This reverts commit f93d17f1d27f011639d22cb0880637dbeb7e5532. * Revert "fix(stream): fix calc request allocation in trigger" This reverts commit c5410f6da09835303d32967f4b6d02a7e47cd589. * fix(stream): fix calc request allocation in trigger * enh: [TD-37251] External window support more placeholder. * fix(stream): modify size of return from 1000000->4096 * enh: [TD-37251] Modify error msg when stream query do not have from clause. * fix(stream): add log for group not found * fix(stream): do not return gid=0 in walMetaData interface * enh: [TD-37251] Fix missing ts column in vtable query. * fix: test case build failed * fix: invalid read issue * fix(stream): add vtable logic * fix(stream): encode error in wal * fix(stream): add vtable logic * fix(stream): add log * fix: diff funcition crash * Revert "Merge branch 'enh/TD-37251-3.0-dropoutput' into enh/TD-37251-3.0" This reverts commit e93cbd6fd42261527df046c70e0ece7568af187b, reversing changes made to dc3230591d4428c817703f52574aa01d5f10e5fe. * Revert "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit dc3230591d4428c817703f52574aa01d5f10e5fe, reversing changes made to 085e086782896db22acd292816e53497cbecb726. * fix(stream): fix block data len is too large if data type is vchar * fix: drop output table * feat: runner delete output table * process pDropBlock in trigger task. * fix(stream): opti log level * fix(stream): build block for drop table * fix(stream): set gid for normal table * fix(stream): set gid for normal table * feat: Support delete output. * fix(stream): rows error * fix(stream): memory leak * enh: [TD-37251] Fix external window wrong ts column. * fix(stream): fix calc time check in batch mode * fix: merge aligned external window issue * Revert "fix(stream): fix calc time check in batch mode" This reverts commit d895b7f5776cf77c2ce290cdeedca86c206da6ce. * fix(stream): add test case * fix(stream): add insert drop table logic * fix: external window end issue * fix(stream): add test case * fix(stream): fix trigger pull data * fix(stream): fix history calc request * enh: drop table on snode * fix(stream): adjust hash index if data is filtered in wal * fix(stream): rollback * enh: add merge aligned extwin window row idx * fix: drop output table * fix: compile issue * enh: [TD-37251] Add flag to identify interval window is overlapped * fix: overlap * fix(stream): set gid=-1 for initialized * fix(stream): modify log level * fix: trigger slow issue * fix(stream): add basic test for obj pool * fix(stream): fix metadata clear in trigger * fix(stream): fix idle runner allocation in trigger * fix: handle agg output on externalWin * fix: test case * fix(stream): adjust log * fix: reset pCtx pOutput * fix: memory leak * fix: search first win for tsCol * fix(stream): add test case for schema change * fix: mem leak * fix: mem leak * Reapply "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit b508e66958eb95117b1d086a964b87b5ac59a19e. * fix(stream): fix virtual table data pull * fix(stream): fix set table request * fix(stream): process empty uidlist * fix(stream): fix set table request * fix(stream): fix data new request in trigger * fix(stream): tablelist error for vtable * fix(stream): block ver is null * fix(stream): remove version limition for wal * fix(stream): block rows error * fix(stream): fix pending calc param in batch mode * fix(stream): auto create table * fix(stream): fix stream vtable data merge * fix: _tcurrentts * fix(stream): destroy hash * fix(stream): fix trigger status * fix(stream): colId error in vtable * fix(stream): update nrows of vtable data block * fix(stream): fix trigger status * fix(stream): enable low latency calc for period trigger * fix: test case file path * fix: test case file path * fix: string to node in reader * enh: add test log * fix(stream): increase wait time of non-low-latency mode * fix(stream): fix column capacity in scalar calculation * fix(stream): fix column capacity in trigger expr calculation * fix: get origTableInfos * fix(stream): fix calc data pull in trigger * fix(stream): fix calc data cache write in trigger * enh: [TD-37251] Add flag to identify interval wind * fix: external window memory usage issue * fix(stream): fix epxr result column in trigger * fix(stream): add metaCache for calc plan * fix(stream): fix stream obj list clear * fix(stream): rollback * enh: [TD-37251] Add flag to identify interval wind * fix: mem free * fix(stream): add metaCache for calc plan * fix(stream): fix calc data cache write in trigger * fix(stream): fix calc data cache write in trigger * enh: optimize external result block memory * fix(stream): modify logic of judge table for create table * fix(stream): fix event window check in trigger * fix(stream): fix count window check in trigger * fix(stream): colSize=0 while encoding block because pDataCol->hasNull is false in secode time & reload table list if create table * enh: optimize stream memory * fix(stream): trigger tag error * fix: add log * fix(stream): fix calc data write in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix(build): handle return value of function * fix(stream): read gid error if it is child table in stream * fix(stream): fix calc param of history calculation * fix(stream): fix recalc of delete data * fix(stream): fix calc data of period trigger * fix(stream): fix cache read check * fix(stream): filter error in calc plan * fix: reset externla window expr * fix(stream): fix calc parm of max delay * fix: time range and case issues * fix(stream): fix crash in trigger * fix: case issues * fix: fix window node mem leak. * fix(stream): fix meta data clear in trigger * fix(stream): table schema is old in TsdbDataRequest for vtable * fix: fix slingding window place holder check condition. * Revert "fix: fix slingding window place holder check condition." This reverts commit ad864a1dc113961b409e32e2ac7d1feb534b74d6. * fix(stream): null pointer error * fix: case issue * fix(stream): calc data error for vtable * fix(stream): fix data sorter in trigger * fix(stream): add log for delete data * fix(stream): fix start version of realtime calculation * fix(stream): fix cache data merger of vtable * fix: case issues * fix(ci): upgrade stream cases in test_cols_function * fix(stream): gid not found if change tag value * fix: fix slingding window place holder check condition. * fix(stream): fix virt table info request in trigger * fix(stream): set gid = uid if stream table type != SUPER table * fix: clean cache data by group * fix: add block info and case issues * fix: fix heap-buffer-overflow. * fix(stream): fix state window with extend param * fix: fix access null pointer. * fix: case issues * fix: case issue * fix(stream): fix ignore_nodata_trigger option for period trigger * fix(stream): fix pseudo col fetch for calc data * fix: Extend checking time to avoid timeout. * fix: case issues * fix(stream): fix group col fetch for virtual tables * fix(stream): tag is NULL for non vtable * fix(stream): fix sliding check of virtual table * test(stream): check stream status after create all streams * fix: add log * fix(stream): fix wal meta truncate when ignore disorder * fix(stream): gid not found for child table * fix: fix place holder condition pushdown error. * fix(stream): suid not equal when delete data for child table * fix: id issue * fix(stream): disable recalc for count trigger * fix: cast result rowSize error in project * fix(stream): add log for tsdb meta * fix(stream): fix gid in tsdb meta request * fix(stream): fix wend of unclosed windows * fix(stream): fix ignore_nodata_trigger option for period trigger * fix: case issues * fix(stream): fix calc data pull for empty interval window * fix: fix ext window condition. * fix(ci): smaBasic performance check affectd by debug level log * fix(stream): add suid when set table list for vtable * fix: forbid using prefilter when using %%trows an trigger table is virtual table. * fix: forbid prefilter %%trows cases. * fix(stream): sort cid in tsdbVirtalDataReq * fix: forbid prefilter %%trows cases. * fix(stream): add log for virtual table tsdb data * fix(stream): get delete msg for vtable * fix: winRowIndex * Revert "fix: winRowIndex" This reverts commit e08b41cf960bb9ca031b9ea20b4495cbbd4e3ed0. * fix(stream): fix data merge in trigger * test(stream): fix case ans * fix(stream): fix empty calc data pull for period trigger * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix: case issue * fix: crash issue * fix: forbid prefilter %%trows cases. * fix(stream): session case * fix(stream): fix data pull for virtual tables * fix(stream): add log * fix(stream): fix calc req send in batch mode * fix: fix stream UT * fix(stream): tablelist is null for non vtable * fix: mem leak * fix(stream): fix compile error in trigger * fix: return code issue --------- Co-authored-by: dapan1121 <wpan@taosdata.com> Co-authored-by: facetosea <285808407@qq.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: Jinqing Kuang <kuangjinqingcn@gmail.com> Co-authored-by: Tony Zhang <tonyzhang@taosdata.com>
2025-09-25 07:48:14 +00:00
mstsDebug("state trigger options, slotId:%d, expr:%s, extend:%d, trueForDuration:%" PRId64, t->slotId, (char *)t->expr, t->extend, t->trueForDuration);
fix: notify free issue (#32206) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-24 08:55:10 +00:00
break;
}
case WINDOW_TYPE_EVENT:{
SEventTrigger* t = &q->trigger.event;
mstsDebug("event trigger options, startCond:%s, endCond:%s, trueForDuration:%" PRId64, (char*)t->startCond, (char*)t->endCond, t->trueForDuration);
break;
}
case WINDOW_TYPE_COUNT: {
SCountTrigger* t = &q->trigger.count;
mstsDebug("count trigger options, countVal:%" PRId64 ", sliding:%" PRId64 ", condCols:%s", t->countVal, t->sliding, (char*)t->condCols);
break;
}
case WINDOW_TYPE_PERIOD: {
SPeriodTrigger* t = &q->trigger.period;
mstsDebug("period trigger options, periodUnit:%d, offsetUnit:%d, precision:%d, period:%" PRId64 ", offset:%" PRId64,
t->periodUnit, t->offsetUnit, t->precision, t->period, t->offset);
break;
}
default:
mstsDebug("unknown triggerType:%d", q->triggerType);
break;
}
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: triggerCols:[%s]", (char*)q->triggerCols);
2025-05-20 01:09:09 +00:00
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: partitionCols:[%s]", (char*)q->partitionCols);
2025-05-20 01:09:09 +00:00
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: triggerScanPlan:[%s]", (char*)q->triggerScanPlan);
2025-05-20 01:09:09 +00:00
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: calcPlan:[%s]", (char*)q->calcPlan);
2025-05-20 01:09:09 +00:00
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: subTblNameExpr:[%s]", (char*)q->subTblNameExpr);
2025-05-20 01:09:09 +00:00
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: tagValueExpr:[%s]", (char*)q->tagValueExpr);
2025-05-20 01:09:09 +00:00
2025-05-19 09:46:36 +00:00
for (int32_t i = 0; i < calcDBNum; ++i) {
2025-05-20 00:15:23 +00:00
char* dbName = taosArrayGetP(q->calcDB, i);
2025-05-23 10:14:34 +00:00
mstsDebug("create_info: calcDB[%d] - %s", i, dbName);
2025-05-19 09:46:36 +00:00
}
for (int32_t i = 0; i < calcScanNum; ++i) {
SStreamCalcScan* pScan = taosArrayGet(q->calcScanPlanList, i);
int32_t vgNum = taosArrayGetSize(pScan->vgList);
2025-05-28 03:35:54 +00:00
mstsDebugL("create_info: calcScanPlan[%d] - readFromCache:%d vgNum:%d scanPlan:[%s]", i, pScan->readFromCache, vgNum, (char*)pScan->scanPlan);
2025-05-19 09:46:36 +00:00
for (int32_t v = 0; v < vgNum; ++v) {
2025-05-23 10:14:34 +00:00
mstsDebug("create_info: calcScanPlan[%d] vg[%d] - vgId:%d", i, v, *(int32_t*)taosArrayGet(pScan->vgList, v));
2025-05-19 09:46:36 +00:00
}
}
2025-05-20 00:15:23 +00:00
for (int32_t i = 0; i < notifyUrlNum; ++i) {
char* url = taosArrayGetP(q->pNotifyAddrUrls, i);
2025-05-23 10:14:34 +00:00
mstsDebug("create_info: notifyUrl[%d] - %s", i, url);
2025-05-20 00:15:23 +00:00
}
for (int32_t i = 0; i < outColNum; ++i) {
2025-05-20 01:09:09 +00:00
SFieldWithOptions* o = taosArrayGet(q->outCols, i);
2025-05-23 10:14:34 +00:00
mstsDebug("create_info: outCol[%d] - name:%s type:%d flags:%d bytes:%d compress:%u typeMod:%d",
2025-05-20 00:15:23 +00:00
i, o->name, o->type, o->flags, o->bytes, o->compress, o->typeMod);
}
2025-05-19 09:46:36 +00:00
}
2025-06-24 05:21:01 +00:00
void mstLogSStmTaskStatus(char* name, int64_t streamId, SStmTaskStatus* pTask, int32_t idx) {
2025-05-27 11:08:07 +00:00
mstsDebug("%s[%d]: task %" PRIx64 " deployId:%d SID:%" PRId64 " nodeId:%d tidx:%d type:%s flags:%" PRIx64 " status:%s lastUpTs:%" PRId64,
name, idx, pTask->id.taskId, pTask->id.deployId, pTask->id.seriousId, pTask->id.nodeId, pTask->id.taskIdx,
gStreamTaskTypeStr[pTask->type], pTask->flags, gStreamStatusStr[pTask->status], pTask->lastUpTs);
}
2025-06-24 05:21:01 +00:00
void mstLogSStmStatus(char* tips, int64_t streamId, SStmStatus* p) {
2025-05-27 11:08:07 +00:00
if (!(stDebugFlag & DEBUG_DEBUG)) {
return;
}
if (NULL == p) {
mstsDebug("%s: stream status is NULL", tips);
return;
}
int32_t trigReaderNum = taosArrayGetSize(p->trigReaders);
int32_t trigOReaderNum = taosArrayGetSize(p->trigOReaders);
int32_t calcReaderNum = MST_LIST_SIZE(p->calcReaders);
2025-05-27 11:08:07 +00:00
int32_t triggerNum = p->triggerTask ? 1 : 0;
int32_t runnerNum = 0;
for (int32_t i = 0; i < p->runnerDeploys; ++i) {
runnerNum += taosArrayGetSize(p->runners[i]);
}
mstsDebug("%s: stream status", tips);
2025-05-29 03:43:17 +00:00
mstsDebug("name:%s runnerNum:%d runnerDeploys:%d runnerReplica:%d lastActionTs:%" PRId64
" trigReaders:%d trigOReaders:%d calcReaders:%d trigger:%d runners:%d",
2025-05-29 03:43:17 +00:00
p->streamName, p->runnerNum, p->runnerDeploys, p->runnerReplica, p->lastActionTs,
trigReaderNum, trigOReaderNum, calcReaderNum, triggerNum, runnerNum);
2025-05-27 11:08:07 +00:00
SStmTaskStatus* pTask = NULL;
for (int32_t i = 0; i < trigReaderNum; ++i) {
pTask = taosArrayGet(p->trigReaders, i);
2025-06-24 05:21:01 +00:00
mstLogSStmTaskStatus("trigReader task", streamId, pTask, i);
2025-05-27 11:08:07 +00:00
}
for (int32_t i = 0; i < trigOReaderNum; ++i) {
pTask = taosArrayGet(p->trigOReaders, i);
mstLogSStmTaskStatus("trigOReader task", streamId, pTask, i);
}
SListNode* pNode = listHead(p->calcReaders);
2025-05-27 11:08:07 +00:00
for (int32_t i = 0; i < calcReaderNum; ++i) {
pTask = (SStmTaskStatus*)pNode->data;
2025-06-24 05:21:01 +00:00
mstLogSStmTaskStatus("calcReader task", streamId, pTask, i);
pNode = TD_DLIST_NODE_NEXT(pNode);
2025-05-27 11:08:07 +00:00
}
if (triggerNum > 0) {
2025-06-24 05:21:01 +00:00
mstLogSStmTaskStatus("trigger task", streamId, p->triggerTask, 0);
2025-05-27 11:08:07 +00:00
}
for (int32_t i = 0; i < p->runnerDeploys; ++i) {
int32_t num = taosArrayGetSize(p->runners[i]);
2025-05-28 03:35:54 +00:00
if (num <= 0) {
continue;
}
2025-05-27 11:08:07 +00:00
mstsDebug("the %dth deploy runners status", i);
for (int32_t m = 0; m < num; ++m) {
pTask = taosArrayGet(p->runners[i], m);
2025-06-24 05:21:01 +00:00
mstLogSStmTaskStatus("runner task", streamId, pTask, m);
2025-05-27 11:08:07 +00:00
}
}
}
2025-05-10 09:16:39 +00:00
2025-06-11 08:18:19 +00:00
bool mstEventPassIsolation(int32_t num, int32_t event) {
feat(stream): optimize stream logic (#33027) * fix: remove debug log * fix: remove assert * fix: delete unused code * enh: [TD-37251] Support expr in state window. * feat(stream): support expr in state window trigger * enh: [TD-37251] Fix SCL_IS_CONST_CALC condition. * fix(stream): set ver in wal * fix: print code * fix: increase runner replica num * fix: trigger mem error * fix: sliding _tnext_ts value * fix(stream): disable tagFilterCache in stream reader trigger * fix: crash * Revert "fix(stream): fix history calc finish check" This reverts commit f93d17f1d27f011639d22cb0880637dbeb7e5532. * Revert "fix(stream): fix calc request allocation in trigger" This reverts commit c5410f6da09835303d32967f4b6d02a7e47cd589. * fix(stream): fix calc request allocation in trigger * enh: [TD-37251] External window support more placeholder. * fix(stream): modify size of return from 1000000->4096 * enh: [TD-37251] Modify error msg when stream query do not have from clause. * fix(stream): add log for group not found * fix(stream): do not return gid=0 in walMetaData interface * enh: [TD-37251] Fix missing ts column in vtable query. * fix: test case build failed * fix: invalid read issue * fix(stream): add vtable logic * fix(stream): encode error in wal * fix(stream): add vtable logic * fix(stream): add log * fix: diff funcition crash * Revert "Merge branch 'enh/TD-37251-3.0-dropoutput' into enh/TD-37251-3.0" This reverts commit e93cbd6fd42261527df046c70e0ece7568af187b, reversing changes made to dc3230591d4428c817703f52574aa01d5f10e5fe. * Revert "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit dc3230591d4428c817703f52574aa01d5f10e5fe, reversing changes made to 085e086782896db22acd292816e53497cbecb726. * fix(stream): fix block data len is too large if data type is vchar * fix: drop output table * feat: runner delete output table * process pDropBlock in trigger task. * fix(stream): opti log level * fix(stream): build block for drop table * fix(stream): set gid for normal table * fix(stream): set gid for normal table * feat: Support delete output. * fix(stream): rows error * fix(stream): memory leak * enh: [TD-37251] Fix external window wrong ts column. * fix(stream): fix calc time check in batch mode * fix: merge aligned external window issue * Revert "fix(stream): fix calc time check in batch mode" This reverts commit d895b7f5776cf77c2ce290cdeedca86c206da6ce. * fix(stream): add test case * fix(stream): add insert drop table logic * fix: external window end issue * fix(stream): add test case * fix(stream): fix trigger pull data * fix(stream): fix history calc request * enh: drop table on snode * fix(stream): adjust hash index if data is filtered in wal * fix(stream): rollback * enh: add merge aligned extwin window row idx * fix: drop output table * fix: compile issue * enh: [TD-37251] Add flag to identify interval window is overlapped * fix: overlap * fix(stream): set gid=-1 for initialized * fix(stream): modify log level * fix: trigger slow issue * fix(stream): add basic test for obj pool * fix(stream): fix metadata clear in trigger * fix(stream): fix idle runner allocation in trigger * fix: handle agg output on externalWin * fix: test case * fix(stream): adjust log * fix: reset pCtx pOutput * fix: memory leak * fix: search first win for tsCol * fix(stream): add test case for schema change * fix: mem leak * fix: mem leak * Reapply "Merge branch 'enh/TD-37251-3.0-vtable' into enh/TD-37251-3.0" This reverts commit b508e66958eb95117b1d086a964b87b5ac59a19e. * fix(stream): fix virtual table data pull * fix(stream): fix set table request * fix(stream): process empty uidlist * fix(stream): fix set table request * fix(stream): fix data new request in trigger * fix(stream): tablelist error for vtable * fix(stream): block ver is null * fix(stream): remove version limition for wal * fix(stream): block rows error * fix(stream): fix pending calc param in batch mode * fix(stream): auto create table * fix(stream): fix stream vtable data merge * fix: _tcurrentts * fix(stream): destroy hash * fix(stream): fix trigger status * fix(stream): colId error in vtable * fix(stream): update nrows of vtable data block * fix(stream): fix trigger status * fix(stream): enable low latency calc for period trigger * fix: test case file path * fix: test case file path * fix: string to node in reader * enh: add test log * fix(stream): increase wait time of non-low-latency mode * fix(stream): fix column capacity in scalar calculation * fix(stream): fix column capacity in trigger expr calculation * fix: get origTableInfos * fix(stream): fix calc data pull in trigger * fix(stream): fix calc data cache write in trigger * enh: [TD-37251] Add flag to identify interval wind * fix: external window memory usage issue * fix(stream): fix epxr result column in trigger * fix(stream): add metaCache for calc plan * fix(stream): fix stream obj list clear * fix(stream): rollback * enh: [TD-37251] Add flag to identify interval wind * fix: mem free * fix(stream): add metaCache for calc plan * fix(stream): fix calc data cache write in trigger * fix(stream): fix calc data cache write in trigger * enh: optimize external result block memory * fix(stream): modify logic of judge table for create table * fix(stream): fix event window check in trigger * fix(stream): fix count window check in trigger * fix(stream): colSize=0 while encoding block because pDataCol->hasNull is false in secode time & reload table list if create table * enh: optimize stream memory * fix(stream): trigger tag error * fix: add log * fix(stream): fix calc data write in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix: drop output table * fix(stream): fix max delay in trigger * fix(build): handle return value of function * fix(stream): read gid error if it is child table in stream * fix(stream): fix calc param of history calculation * fix(stream): fix recalc of delete data * fix(stream): fix calc data of period trigger * fix(stream): fix cache read check * fix(stream): filter error in calc plan * fix: reset externla window expr * fix(stream): fix calc parm of max delay * fix: time range and case issues * fix(stream): fix crash in trigger * fix: case issues * fix: fix window node mem leak. * fix(stream): fix meta data clear in trigger * fix(stream): table schema is old in TsdbDataRequest for vtable * fix: fix slingding window place holder check condition. * Revert "fix: fix slingding window place holder check condition." This reverts commit ad864a1dc113961b409e32e2ac7d1feb534b74d6. * fix(stream): null pointer error * fix: case issue * fix(stream): calc data error for vtable * fix(stream): fix data sorter in trigger * fix(stream): add log for delete data * fix(stream): fix start version of realtime calculation * fix(stream): fix cache data merger of vtable * fix: case issues * fix(ci): upgrade stream cases in test_cols_function * fix(stream): gid not found if change tag value * fix: fix slingding window place holder check condition. * fix(stream): fix virt table info request in trigger * fix(stream): set gid = uid if stream table type != SUPER table * fix: clean cache data by group * fix: add block info and case issues * fix: fix heap-buffer-overflow. * fix(stream): fix state window with extend param * fix: fix access null pointer. * fix: case issues * fix: case issue * fix(stream): fix ignore_nodata_trigger option for period trigger * fix(stream): fix pseudo col fetch for calc data * fix: Extend checking time to avoid timeout. * fix: case issues * fix(stream): fix group col fetch for virtual tables * fix(stream): tag is NULL for non vtable * fix(stream): fix sliding check of virtual table * test(stream): check stream status after create all streams * fix: add log * fix(stream): fix wal meta truncate when ignore disorder * fix(stream): gid not found for child table * fix: fix place holder condition pushdown error. * fix(stream): suid not equal when delete data for child table * fix: id issue * fix(stream): disable recalc for count trigger * fix: cast result rowSize error in project * fix(stream): add log for tsdb meta * fix(stream): fix gid in tsdb meta request * fix(stream): fix wend of unclosed windows * fix(stream): fix ignore_nodata_trigger option for period trigger * fix: case issues * fix(stream): fix calc data pull for empty interval window * fix: fix ext window condition. * fix(ci): smaBasic performance check affectd by debug level log * fix(stream): add suid when set table list for vtable * fix: forbid using prefilter when using %%trows an trigger table is virtual table. * fix: forbid prefilter %%trows cases. * fix(stream): sort cid in tsdbVirtalDataReq * fix: forbid prefilter %%trows cases. * fix(stream): add log for virtual table tsdb data * fix(stream): get delete msg for vtable * fix: winRowIndex * Revert "fix: winRowIndex" This reverts commit e08b41cf960bb9ca031b9ea20b4495cbbd4e3ed0. * fix(stream): fix data merge in trigger * test(stream): fix case ans * fix(stream): fix empty calc data pull for period trigger * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix(stream): col index error for tsdbVirtalDataReq * fix(stream): pTableList is NULL for vtable * test(stream): fix case ans * fix(stream): fix notification in trigger * fix(stream): memory leak * fix(stream): fix virtual data pull in trigger * test(stream): fix case ans * fix: case issue * fix: crash issue * fix: forbid prefilter %%trows cases. * fix(stream): session case * fix(stream): fix data pull for virtual tables * fix(stream): add log * fix(stream): fix calc req send in batch mode * fix: fix stream UT * fix(stream): tablelist is null for non vtable * fix: mem leak * fix(stream): fix compile error in trigger * fix: return code issue --------- Co-authored-by: dapan1121 <wpan@taosdata.com> Co-authored-by: facetosea <285808407@qq.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: Jinqing Kuang <kuangjinqingcn@gmail.com> Co-authored-by: Tony Zhang <tonyzhang@taosdata.com>
2025-09-25 07:48:14 +00:00
bool ret = ((mStreamMgmt.lastTs[event].ts + num * MST_SHORT_ISOLATION_DURATION) <= mStreamMgmt.hCtx.currentTs);
2025-06-11 08:18:19 +00:00
if (ret) {
mstDebug("event %s passed %d isolation, last:%" PRId64 ", curr:%" PRId64,
gMndStreamEvent[event], num, mStreamMgmt.lastTs[event].ts, mStreamMgmt.hCtx.currentTs);
}
return ret;
}
bool mstEventHandledChkSet(int32_t event) {
if (0 == atomic_val_compare_exchange_8((int8_t*)&mStreamMgmt.lastTs[event].handled, 0, 1)) {
mstDebug("event %s set handled", gMndStreamEvent[event]);
return true;
}
return false;
}
2025-06-17 08:55:32 +00:00
int32_t mstGetStreamStatusStr(SStreamObj* pStream, char* status, int32_t statusSize, char* msg, int32_t msgSize) {
int8_t active = atomic_load_8(&mStreamMgmt.active), state = atomic_load_8(&mStreamMgmt.state);
if (0 == active || MND_STM_STATE_NORMAL != state) {
mstDebug("mnode streamMgmt not in active mode, active:%d, state:%d", active, state);
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_UNDEPLOYED], statusSize);
STR_WITH_MAXSIZE_TO_VARSTR(msg, "Mnode may be unstable, try again later", msgSize);
return TSDB_CODE_SUCCESS;
}
if (atomic_load_8(&pStream->userDropped)) {
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_DROPPING], statusSize);
STR_WITH_MAXSIZE_TO_VARSTR(msg, "", msgSize);
return TSDB_CODE_SUCCESS;
}
if (atomic_load_8(&pStream->userStopped)) {
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_STOPPED], statusSize);
STR_WITH_MAXSIZE_TO_VARSTR(msg, "", msgSize);
return TSDB_CODE_SUCCESS;
}
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)mstWaitLock(&mStreamMgmt.runtimeLock, true);
2025-06-17 08:55:32 +00:00
SStmStatus* pStatus = (SStmStatus*)taosHashGet(mStreamMgmt.streamMap, &pStream->pCreate->streamId, sizeof(pStream->pCreate->streamId));
if (NULL == pStatus) {
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_UNDEPLOYED], statusSize);
STR_WITH_MAXSIZE_TO_VARSTR(msg, "", msgSize);
goto _exit;
}
char tmpBuf[256];
fix: grant issues (#32231) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-25 09:05:59 +00:00
int8_t stopped = atomic_load_8(&pStatus->stopped);
switch (stopped) {
case 1:
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_FAILED], statusSize);
snprintf(tmpBuf, sizeof(tmpBuf), "Last error: %s, Failed times: %" PRId64, tstrerror(pStatus->fatalError), pStatus->fatalRetryTimes);
STR_WITH_MAXSIZE_TO_VARSTR(msg, tmpBuf, msgSize);
goto _exit;
break;
case 4:
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_FAILED], statusSize);
snprintf(tmpBuf, sizeof(tmpBuf), "Error: %s", tstrerror(TSDB_CODE_GRANT_STREAM_EXPIRED));
STR_WITH_MAXSIZE_TO_VARSTR(msg, tmpBuf, msgSize);
goto _exit;
break;
default:
break;
2025-06-17 08:55:32 +00:00
}
if (pStatus->triggerTask && STREAM_STATUS_RUNNING == pStatus->triggerTask->status) {
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_RUNNING], statusSize);
strcpy(tmpBuf, "Running start from: ");
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)formatTimestampLocal(&tmpBuf[strlen(tmpBuf)], pStatus->triggerTask->runningStartTs, TSDB_TIME_PRECISION_MILLI);
2025-06-17 08:55:32 +00:00
STR_WITH_MAXSIZE_TO_VARSTR(msg, tmpBuf, msgSize);
goto _exit;
}
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[STREAM_STATUS_INIT], statusSize);
snprintf(tmpBuf, sizeof(tmpBuf), "Current deploy times: %" PRId64, pStatus->deployTimes);
STR_WITH_MAXSIZE_TO_VARSTR(msg, tmpBuf, msgSize);
goto _exit;
_exit:
taosRUnLockLatch(&mStreamMgmt.runtimeLock);
return TSDB_CODE_SUCCESS;
}
int32_t mstSetStreamAttrResBlock(SMnode *pMnode, SStreamObj* pStream, SSDataBlock* pBlock, int32_t numOfRows) {
2025-06-05 03:33:22 +00:00
int32_t code = 0;
int32_t cols = 0;
int32_t lino = 0;
char streamName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
2025-06-07 03:44:09 +00:00
STR_WITH_MAXSIZE_TO_VARSTR(streamName, mndGetStableStr(pStream->name), sizeof(streamName));
2025-06-05 03:33:22 +00:00
SColumnInfoData* pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)streamName, false);
TSDB_CHECK_CODE(code, lino, _end);
2025-06-07 02:56:03 +00:00
// db_name
char streamDB[TSDB_DB_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(streamDB, mndGetDbStr(pStream->pCreate->streamDB), sizeof(streamDB));
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&streamDB, false);
TSDB_CHECK_CODE(code, lino, _end);
2025-06-05 03:33:22 +00:00
// create time
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pStream->createTime, false);
TSDB_CHECK_CODE(code, lino, _end);
// stream id
2025-06-07 07:08:34 +00:00
char streamId2[19] = {0};
char streamId[19 + VARSTR_HEADER_SIZE] = {0};
2025-06-21 05:47:30 +00:00
snprintf(streamId2, sizeof(streamId2), "%" PRIx64, pStream->pCreate->streamId);
2025-06-07 07:08:34 +00:00
STR_WITH_MAXSIZE_TO_VARSTR(streamId, streamId2, sizeof(streamId));
2025-06-05 03:33:22 +00:00
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
2025-06-07 07:08:34 +00:00
code = colDataSetVal(pColInfo, numOfRows, (const char*)streamId, false);
2025-06-05 03:33:22 +00:00
TSDB_CHECK_CODE(code, lino, _end);
// sql
char sql[TSDB_SHOW_SQL_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(sql, pStream->pCreate->sql, sizeof(sql));
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)sql, false);
TSDB_CHECK_CODE(code, lino, _end);
2025-06-17 08:55:32 +00:00
// status
2025-06-05 03:33:22 +00:00
char status[20 + VARSTR_HEADER_SIZE] = {0};
2025-06-17 08:55:32 +00:00
char msg[TSDB_RESERVE_VALUE_LEN + VARSTR_HEADER_SIZE] = {0};
code = mstGetStreamStatusStr(pStream, status, sizeof(status), msg, sizeof(msg));
TSDB_CHECK_CODE(code, lino, _end);
2025-06-05 03:33:22 +00:00
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&status, false);
TSDB_CHECK_CODE(code, lino, _end);
// snodeLeader
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pStream->mainSnodeId, false);
TSDB_CHECK_CODE(code, lino, _end);
// snodeReplica
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
2025-06-17 08:55:32 +00:00
SSnodeObj* pSnode = mndAcquireSnode(pMnode, pStream->mainSnodeId);
int32_t replicaSnodeId = pSnode ? pSnode->replicaId : -1;
mndReleaseSnode(pMnode, pSnode);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&replicaSnodeId, false);
2025-06-05 03:33:22 +00:00
TSDB_CHECK_CODE(code, lino, _end);
2025-06-17 08:55:32 +00:00
// msg
2025-06-05 03:33:22 +00:00
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
2025-06-17 08:55:32 +00:00
code = colDataSetVal(pColInfo, numOfRows, (const char*)msg, false);
_end:
if (code) {
mError("error happens when build stream attr result block, lino:%d, code:%s", lino, tstrerror(code));
}
return code;
}
int32_t mstGetTaskStatusStr(SStmTaskStatus* pTask, char* status, int32_t statusSize, char* msg, int32_t msgSize) {
char tmpBuf[256];
STR_WITH_MAXSIZE_TO_VARSTR(status, gStreamStatusStr[pTask->status], statusSize);
if (STREAM_STATUS_FAILED == pTask->status && pTask->errCode) {
snprintf(tmpBuf, sizeof(tmpBuf), "Last error: %s", tstrerror(pTask->errCode));
STR_WITH_MAXSIZE_TO_VARSTR(msg, tmpBuf, msgSize);
return TSDB_CODE_SUCCESS;
2025-06-05 03:33:22 +00:00
}
if (STREAM_TRIGGER_TASK == pTask->type && mstWaitLock(&pTask->detailStatusLock, true)) {
if (pTask->detailStatus) {
SSTriggerRuntimeStatus* pTrigger = (SSTriggerRuntimeStatus*)pTask->detailStatus;
snprintf(tmpBuf, sizeof(tmpBuf), "Current RT/HI/RE session num: %d/%d/%d, histroy progress:%d%%, total AUTO/USER recalc num: %d/%d",
pTrigger->realtimeSessionNum, pTrigger->historySessionNum, pTrigger->recalcSessionNum, pTrigger->histroyProgress,
pTrigger->autoRecalcNum, (int32_t)taosArrayGetSize(pTrigger->userRecalcs));
taosRUnLockLatch(&pTask->detailStatusLock);
return TSDB_CODE_SUCCESS;
}
taosRUnLockLatch(&pTask->detailStatusLock);
}
STR_WITH_MAXSIZE_TO_VARSTR(msg, "", msgSize);
2025-06-17 08:55:32 +00:00
return TSDB_CODE_SUCCESS;
}
int32_t mstGetTaskExtraStr(SStmTaskStatus* pTask, char* extraStr, int32_t extraSize) {
switch (pTask->type) {
case STREAM_READER_TASK:
if (STREAM_IS_TRIGGER_READER(pTask->flags)) {
STR_WITH_MAXSIZE_TO_VARSTR(extraStr, "trigReader", extraSize);
} else {
STR_WITH_MAXSIZE_TO_VARSTR(extraStr, "calcReader", extraSize);
}
return TSDB_CODE_SUCCESS;
case STREAM_RUNNER_TASK:
if (STREAM_IS_TOP_RUNNER(pTask->flags)) {
STR_WITH_MAXSIZE_TO_VARSTR(extraStr, "topRunner", extraSize);
return TSDB_CODE_SUCCESS;
}
break;
default:
break;
}
STR_WITH_MAXSIZE_TO_VARSTR(extraStr, "", extraSize);
return TSDB_CODE_SUCCESS;
}
int32_t mstSetStreamTaskResBlock(SStreamObj* pStream, SStmTaskStatus* pTask, SSDataBlock* pBlock, int32_t numOfRows) {
int32_t code = 0;
int32_t cols = 0;
int32_t lino = 0;
// stream_name
char streamName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(streamName, mndGetStableStr(pStream->name), sizeof(streamName));
SColumnInfoData* pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)streamName, false);
TSDB_CHECK_CODE(code, lino, _end);
// stream id
char idstr[19 + VARSTR_HEADER_SIZE] = {0};
2025-06-24 10:06:20 +00:00
snprintf(&idstr[VARSTR_HEADER_SIZE], sizeof(idstr) - VARSTR_HEADER_SIZE, "%" PRIx64, pStream->pCreate->streamId);
fix: stream stable join issue (#32271) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-26 05:24:17 +00:00
varDataSetLen(idstr, strlen(&idstr[VARSTR_HEADER_SIZE]));
2025-06-17 08:55:32 +00:00
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)idstr, false);
TSDB_CHECK_CODE(code, lino, _end);
// task id
2025-06-24 10:06:20 +00:00
snprintf(&idstr[VARSTR_HEADER_SIZE], sizeof(idstr) - VARSTR_HEADER_SIZE, "%" PRIx64, pTask->id.taskId);
fix: stream stable join issue (#32271) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-26 05:24:17 +00:00
varDataSetLen(idstr, strlen(&idstr[VARSTR_HEADER_SIZE]));
2025-06-17 08:55:32 +00:00
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)idstr, false);
TSDB_CHECK_CODE(code, lino, _end);
// type
char type[20 + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(type, (STREAM_READER_TASK == pTask->type) ? "Reader" : ((STREAM_TRIGGER_TASK == pTask->type) ? "Trigger" : "Runner"), sizeof(type));
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)type, false);
TSDB_CHECK_CODE(code, lino, _end);
// serious id
2025-06-24 10:06:20 +00:00
snprintf(&idstr[VARSTR_HEADER_SIZE], sizeof(idstr) - VARSTR_HEADER_SIZE, "%" PRIx64, pTask->id.seriousId);
fix: stream stable join issue (#32271) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-26 05:24:17 +00:00
varDataSetLen(idstr, strlen(&idstr[VARSTR_HEADER_SIZE]));
2025-06-17 08:55:32 +00:00
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)idstr, false);
TSDB_CHECK_CODE(code, lino, _end);
// deploy id
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->id.deployId, false);
TSDB_CHECK_CODE(code, lino, _end);
// node_type
char nodeType[10 + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(nodeType, (STREAM_READER_TASK == pTask->type) ? "vnode" : "snode", sizeof(nodeType));
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)nodeType, false);
TSDB_CHECK_CODE(code, lino, _end);
// node id
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->id.nodeId, false);
TSDB_CHECK_CODE(code, lino, _end);
// task idx
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->id.taskIdx, false);
TSDB_CHECK_CODE(code, lino, _end);
// status
char status[20 + VARSTR_HEADER_SIZE] = {0};
char msg[TSDB_RESERVE_VALUE_LEN + VARSTR_HEADER_SIZE] = {0};
code = mstGetTaskStatusStr(pTask, status, sizeof(status), msg, sizeof(msg));
TSDB_CHECK_CODE(code, lino, _end);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&status, false);
TSDB_CHECK_CODE(code, lino, _end);
// start time
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
2025-06-19 08:54:15 +00:00
if (pTask->runningStartTs) {
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->runningStartTs, false);
} else {
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->runningStartTs, true);
}
2025-06-17 08:55:32 +00:00
TSDB_CHECK_CODE(code, lino, _end);
// last update
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
2025-06-19 08:54:15 +00:00
if (pTask->lastUpTs) {
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->lastUpTs, false);
} else {
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pTask->lastUpTs, true);
}
2025-06-17 08:55:32 +00:00
TSDB_CHECK_CODE(code, lino, _end);
// extra info
char extra[64 + VARSTR_HEADER_SIZE] = {0};
code = mstGetTaskExtraStr(pTask, extra, sizeof(extra));
TSDB_CHECK_CODE(code, lino, _end);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)extra, false);
TSDB_CHECK_CODE(code, lino, _end);
// msg
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
2025-06-05 03:33:22 +00:00
code = colDataSetVal(pColInfo, numOfRows, (const char*)msg, false);
_end:
if (code) {
mError("error happens when build stream attr result block, lino:%d, code:%s", lino, tstrerror(code));
}
return code;
}
2025-06-17 08:55:32 +00:00
int32_t mstGetNumOfStreamTasks(SStmStatus* pStatus) {
int32_t num = taosArrayGetSize(pStatus->trigReaders) + taosArrayGetSize(pStatus->trigOReaders) + MST_LIST_SIZE(pStatus->calcReaders) + (pStatus->triggerTask ? 1 : 0);
2025-06-17 08:55:32 +00:00
for (int32_t i = 0; i < MND_STREAM_RUNNER_DEPLOY_NUM; ++i) {
num += taosArrayGetSize(pStatus->runners[i]);
}
return num;
}
int32_t mstSetStreamTasksResBlock(SStreamObj* pStream, SSDataBlock* pBlock, int32_t* numOfRows, int32_t rowsCapacity) {
int32_t code = 0;
int32_t lino = 0;
int64_t streamId = pStream->pCreate->streamId;
bool statusLocked = false;
2025-06-17 08:55:32 +00:00
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)mstWaitLock(&mStreamMgmt.runtimeLock, true);
2025-06-17 08:55:32 +00:00
SStmStatus* pStatus = (SStmStatus*)taosHashGet(mStreamMgmt.streamMap, &streamId, sizeof(streamId));
if (NULL == pStatus) {
mstsDebug("stream not in streamMap, ignore it, dropped:%d, stopped:%d", atomic_load_8(&pStream->userDropped), atomic_load_8(&pStream->userStopped));
goto _exit;
}
2025-06-24 10:06:20 +00:00
int8_t stopped = atomic_load_8(&pStatus->stopped);
if (stopped) {
mstsDebug("stream stopped %d, ignore it", stopped);
goto _exit;
}
(void)mstWaitLock(&pStatus->resetLock, true);
statusLocked = true;
2025-06-17 08:55:32 +00:00
int32_t count = mstGetNumOfStreamTasks(pStatus);
if (*numOfRows + count > rowsCapacity) {
code = blockDataEnsureCapacity(pBlock, *numOfRows + count);
if (code) {
mstError("failed to prepare the result block buffer, rows:%d", *numOfRows + count);
TAOS_CHECK_EXIT(code);
}
}
SStmTaskStatus* pTask = NULL;
int32_t trigReaderNum = taosArrayGetSize(pStatus->trigReaders);
for (int32_t i = 0; i < trigReaderNum; ++i) {
pTask = taosArrayGet(pStatus->trigReaders, i);
code = mstSetStreamTaskResBlock(pStream, pTask, pBlock, *numOfRows);
if (code == TSDB_CODE_SUCCESS) {
(*numOfRows)++;
}
}
trigReaderNum = taosArrayGetSize(pStatus->trigOReaders);
for (int32_t i = 0; i < trigReaderNum; ++i) {
pTask = taosArrayGet(pStatus->trigOReaders, i);
code = mstSetStreamTaskResBlock(pStream, pTask, pBlock, *numOfRows);
if (code == TSDB_CODE_SUCCESS) {
(*numOfRows)++;
}
}
int32_t calcReaderNum = MST_LIST_SIZE(pStatus->calcReaders);
SListNode* pNode = listHead(pStatus->calcReaders);
2025-06-17 08:55:32 +00:00
for (int32_t i = 0; i < calcReaderNum; ++i) {
pTask = (SStmTaskStatus*)pNode->data;
2025-06-17 08:55:32 +00:00
code = mstSetStreamTaskResBlock(pStream, pTask, pBlock, *numOfRows);
if (code == TSDB_CODE_SUCCESS) {
(*numOfRows)++;
}
pNode = TD_DLIST_NODE_NEXT(pNode);
2025-06-17 08:55:32 +00:00
}
if (pStatus->triggerTask) {
code = mstSetStreamTaskResBlock(pStream, pStatus->triggerTask, pBlock, *numOfRows);
if (code == TSDB_CODE_SUCCESS) {
(*numOfRows)++;
}
}
int32_t runnerNum = 0;
for (int32_t i = 0; i < MND_STREAM_RUNNER_DEPLOY_NUM; ++i) {
runnerNum = taosArrayGetSize(pStatus->runners[i]);
for (int32_t m = 0; m < runnerNum; ++m) {
pTask = taosArrayGet(pStatus->runners[i], m);
code = mstSetStreamTaskResBlock(pStream, pTask, pBlock, *numOfRows);
if (code == TSDB_CODE_SUCCESS) {
(*numOfRows)++;
}
}
}
pBlock->info.rows = *numOfRows;
_exit:
if (statusLocked) {
taosRUnLockLatch(&pStatus->resetLock);
}
2025-06-17 08:55:32 +00:00
taosRUnLockLatch(&mStreamMgmt.runtimeLock);
if (code) {
mError("error happens when build stream tasks result block, lino:%d, code:%s", lino, tstrerror(code));
}
return code;
}
2025-06-24 05:21:01 +00:00
int32_t mstAppendNewRecalcRange(int64_t streamId, SStmStatus *pStream, STimeWindow* pRange) {
int32_t code = 0;
int32_t lino = 0;
bool locked = false;
fix: grant issues (#32231) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-25 09:05:59 +00:00
SArray* userRecalcList = NULL;
2025-06-24 05:21:01 +00:00
SStreamRecalcReq req = {.recalcId = 0, .start = pRange->skey, .end = pRange->ekey};
TAOS_CHECK_EXIT(taosGetSystemUUIDU64(&req.recalcId));
taosWLockLatch(&pStream->userRecalcLock);
locked = true;
if (NULL == pStream->userRecalcList) {
fix: grant issues (#32231) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-25 09:05:59 +00:00
userRecalcList = taosArrayInit(2, sizeof(SStreamRecalcReq));
2025-06-24 05:21:01 +00:00
if (NULL == userRecalcList) {
TAOS_CHECK_EXIT(terrno);
}
TSDB_CHECK_NULL(taosArrayPush(userRecalcList, &req), code, lino, _exit, terrno);
atomic_store_ptr(&pStream->userRecalcList, userRecalcList);
fix: grant issues (#32231) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-25 09:05:59 +00:00
userRecalcList = NULL;
2025-06-24 05:21:01 +00:00
} else {
TSDB_CHECK_NULL(taosArrayPush(pStream->userRecalcList, &req), code, lino, _exit, terrno);
}
mstsInfo("stream recalc ID:%" PRIx64 " range:%" PRId64 " - %" PRId64 " added", req.recalcId, pRange->skey, pRange->ekey);
_exit:
fix: grant issues (#32231) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-07-25 09:05:59 +00:00
taosArrayDestroy(userRecalcList);
2025-06-24 05:21:01 +00:00
if (locked) {
taosWUnLockLatch(&pStream->userRecalcLock);
}
if (code) {
mstsError("%s failed at line %d, error:%s", __FUNCTION__, lino, tstrerror(code));
}
return code;
}
2025-06-24 10:06:20 +00:00
int32_t mstSetStreamRecalculateResBlock(SStreamObj* pStream, SSTriggerRecalcProgress* pProgress, SSDataBlock* pBlock, int32_t numOfRows) {
int32_t code = 0;
int32_t cols = 0;
int32_t lino = 0;
// stream_name
char streamName[TSDB_TABLE_NAME_LEN + VARSTR_HEADER_SIZE] = {0};
STR_WITH_MAXSIZE_TO_VARSTR(streamName, mndGetStableStr(pStream->name), sizeof(streamName));
SColumnInfoData* pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)streamName, false);
TSDB_CHECK_CODE(code, lino, _end);
// stream id
char idstr[19 + VARSTR_HEADER_SIZE] = {0};
snprintf(&idstr[VARSTR_HEADER_SIZE], sizeof(idstr) - VARSTR_HEADER_SIZE, "%" PRIx64, pStream->pCreate->streamId);
varDataSetLen(idstr, strlen(&idstr[VARSTR_HEADER_SIZE]) + VARSTR_HEADER_SIZE);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)idstr, false);
TSDB_CHECK_CODE(code, lino, _end);
// recalc id
snprintf(&idstr[VARSTR_HEADER_SIZE], sizeof(idstr) - VARSTR_HEADER_SIZE, "%" PRIx64, pProgress->recalcId);
varDataSetLen(idstr, strlen(&idstr[VARSTR_HEADER_SIZE]) + VARSTR_HEADER_SIZE);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)idstr, false);
TSDB_CHECK_CODE(code, lino, _end);
// start
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pProgress->start, false);
TSDB_CHECK_CODE(code, lino, _end);
// end
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)&pProgress->end, false);
TSDB_CHECK_CODE(code, lino, _end);
// progress
char progress[20 + VARSTR_HEADER_SIZE] = {0};
snprintf(&progress[VARSTR_HEADER_SIZE], sizeof(progress) - VARSTR_HEADER_SIZE, "%d%%", pProgress->progress);
varDataSetLen(progress, strlen(&progress[VARSTR_HEADER_SIZE]) + VARSTR_HEADER_SIZE);
pColInfo = taosArrayGet(pBlock->pDataBlock, cols++);
TSDB_CHECK_NULL(pColInfo, code, lino, _end, terrno);
code = colDataSetVal(pColInfo, numOfRows, (const char*)progress, false);
TSDB_CHECK_CODE(code, lino, _end);
_end:
if (code) {
mError("error happens when build stream attr result block, lino:%d, code:%s", lino, tstrerror(code));
}
return code;
}
int32_t mstSetStreamRecalculatesResBlock(SStreamObj* pStream, SSDataBlock* pBlock, int32_t* numOfRows, int32_t rowsCapacity) {
int32_t code = 0;
int32_t lino = 0;
int64_t streamId = pStream->pCreate->streamId;
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)mstWaitLock(&mStreamMgmt.runtimeLock, true);
2025-06-24 10:06:20 +00:00
SStmStatus* pStatus = (SStmStatus*)taosHashGet(mStreamMgmt.streamMap, &streamId, sizeof(streamId));
if (NULL == pStatus) {
mstsDebug("stream not in streamMap, ignore it, dropped:%d, stopped:%d", atomic_load_8(&pStream->userDropped), atomic_load_8(&pStream->userStopped));
goto _exit;
}
int8_t stopped = atomic_load_8(&pStatus->stopped);
if (stopped) {
mstsDebug("stream stopped %d, ignore it", stopped);
goto _exit;
}
if (NULL == pStatus->triggerTask) {
mstsDebug("no trigger task now, deployTimes:%" PRId64 ", ignore it", pStatus->deployTimes);
goto _exit;
}
fix: memory leak and trigger redeploy issue (#32398) * enh: add operator reset func * fix: merge join reset issue * fix: memory issues * fix: add debug assert * fix: memory issues * fix: memory leak * fix: memory issues * fix taos log miss * fix: case issue * fix: case issue * fix: case issues * fix: drop dnode issue * fix: memory issues * fix: memory issues * fix: memory leak issues * fix: recalculate time range issue * fix: add debug log * fix: memory issues * fix: enable case asan * Update streamlist_for_ci.task * fix: case asan issue * fix: stream name issue * fix: external window compile issues * fix: deploy memory issue * fix: ahandle issue * fix: ahandle issue * fix: ahandle issue * fix: virtual table reader list issue * fix: log info * fix: msg error * fix: virtual table addr list issue * fix: memory issues * fix: memory leak issue * fix: memory issues * fix: memory free issues * fix: memory issues * fix: snode deploy issue * fix: mnode reader issue * fix: memory issues * fix: add debug test * enh: add ignore nodata trigger * fix: memory leaks * fix: configuration issue * fix: memory issue * fix: external window issue * fix: external window issues * fix: external window placeholder issue * fix: placeholder function init issues * fix: memory leak issue * fix: add debug log * fix: compile issues * fix: double free issue * fix: runner addr update issue * fix: msg rsp issue * fix: external window reset issue * fix: configuration issue * fix: deploy msg issue * fix: compile issue * fix: external window idx issue * fix: ci issues * fix: ci case issues * fix: drop dnode issue * fix: add debug log * fix: conflict * fix: create stream if not exists issue * fix: ahandle memory leak * fix: case issue * fix: exchange issues * fix: crash issue * fix: exchange prefetch issue * fix: snode quit issue * enh: support indef rows func * fix: crash issues * Fix external window collect vector function * fix: external window indef rows issues * fix: external window issue * enh: support count always return value in external window * fix: force output when has more result block * fix: runner block retrieve issue * fix: crash issue * fix: count cases issue * fix: reader deploy message issue * fix: task deploy issue * fix: external window scalar issue * fix: compile issue * fix: group cache reset issue * fix: add protection check * fix: add grant check * fix: add disableStream config * fix: notify free issue * fix: case issue * fix: grant issues * fix: memory leak issue * fix: memory leak issue * fix: memory leak issue * fix: stbJoin issue * fix: rpc send issue * fix: rsp stream group id issue * fix: redeploy stream issue * fix: cases issues * fix: memory leak issue * fix: snode quit issue * fix: invalid read issue * fix: memory leak issue * fix: split dead loop issue * fix: crash issue * fix: acquire task issue * fix: memory leak and trigger redeploy issue * fix: taosd crash issue * fix: return code issues * fix: return code issues * fix: return code issue * fix: return code issues * fix: return code issue * fix: mnode crash and dead lock issue * fix: memory and crash issues --------- Co-authored-by: huohong <sallyhuo@taosdata.com> Co-authored-by: Jing Sima <simondominic9997@outlook.com> Co-authored-by: facetosea <285808407@qq.com>
2025-08-12 00:39:14 +00:00
(void)mstWaitLock(&pStatus->triggerTask->detailStatusLock, true);
2025-06-24 10:06:20 +00:00
if (NULL == pStatus->triggerTask->detailStatus) {
mstsDebug("no trigger task now, deployTimes:%" PRId64 ", ignore it", pStatus->deployTimes);
taosRUnLockLatch(&pStatus->triggerTask->detailStatusLock);
goto _exit;
}
SSTriggerRuntimeStatus* pTrigger = (SSTriggerRuntimeStatus*)pStatus->triggerTask->detailStatus;
int32_t count = taosArrayGetSize(pTrigger->userRecalcs);
if (*numOfRows + count > rowsCapacity) {
code = blockDataEnsureCapacity(pBlock, *numOfRows + count);
if (code) {
mstError("failed to prepare the result block buffer, rows:%d", *numOfRows + count);
2025-06-25 23:57:17 +00:00
taosRUnLockLatch(&pStatus->triggerTask->detailStatusLock);
2025-06-24 10:06:20 +00:00
TAOS_CHECK_EXIT(code);
}
}
for (int32_t i = 0; i < count; ++i) {
SSTriggerRecalcProgress* pProgress = taosArrayGet(pTrigger->userRecalcs, i);
code = mstSetStreamRecalculateResBlock(pStream, pProgress, pBlock, *numOfRows);
if (code == TSDB_CODE_SUCCESS) {
(*numOfRows)++;
}
}
2025-06-25 23:57:17 +00:00
taosRUnLockLatch(&pStatus->triggerTask->detailStatusLock);
2025-06-24 10:06:20 +00:00
pBlock->info.rows = *numOfRows;
_exit:
taosRUnLockLatch(&mStreamMgmt.runtimeLock);
if (code) {
mError("error happens when build stream recalculates result block, lino:%d, code:%s", lino, tstrerror(code));
}
return code;
}
int32_t mstGetScanUidFromPlan(int64_t streamId, void* scanPlan, int64_t* uid) {
SSubplan* pSubplan = NULL;
int32_t code = TSDB_CODE_SUCCESS, lino = 0;
TAOS_CHECK_EXIT(nodesStringToNode(scanPlan, (SNode**)&pSubplan));
if (pSubplan->pNode && nodeType(pSubplan->pNode) == QUERY_NODE_PHYSICAL_PLAN_TABLE_SCAN) {
SScanPhysiNode* pScanNode = (SScanPhysiNode*)pSubplan->pNode;
*uid = pScanNode->uid;
}
_exit:
if (code) {
mstsError("%s failed at line %d since %s", __func__, lino, tstrerror(code));
}
nodesDestroyNode((SNode *)pSubplan);
return code;
}
2025-06-24 10:06:20 +00:00