diff --git a/source/libs/executor/src/dataSinkMgt.c b/source/libs/executor/src/dataSinkMgt.c index 2b50be33ad29d4cb11d764dd090d2126c1fb13a0..cc09efdf83725706462425d80da644efd6866eb3 100644 --- a/source/libs/executor/src/dataSinkMgt.c +++ b/source/libs/executor/src/dataSinkMgt.c @@ -37,10 +37,18 @@ int32_t dsCreateDataSinker(const SDataSinkNode* pDataSink, DataSinkHandle* pHand switch ((int)nodeType(pDataSink)) { case QUERY_NODE_PHYSICAL_PLAN_DISPATCH: return createDataDispatcher(&gDataSinkManager, pDataSink, pHandle); - case QUERY_NODE_PHYSICAL_PLAN_DELETE: + case QUERY_NODE_PHYSICAL_PLAN_DELETE: { + if (pParam == NULL) { + return TSDB_CODE_QRY_INVALID_INPUT; + } return createDataDeleter(&gDataSinkManager, pDataSink, pHandle, pParam); - case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: + } + case QUERY_NODE_PHYSICAL_PLAN_QUERY_INSERT: { + if (pParam == NULL) { + return TSDB_CODE_QRY_INVALID_INPUT; + } return createDataInserter(&gDataSinkManager, pDataSink, pHandle, pParam); + } } qError("invalid input node type:%d, %s", nodeType(pDataSink), id); diff --git a/source/libs/executor/src/executor.c b/source/libs/executor/src/executor.c index 55c8ed23c8d646d0b52ef19c3e514e7002d7b154..347ac369d883deae5104495e033f8c191962f032 100644 --- a/source/libs/executor/src/executor.c +++ b/source/libs/executor/src/executor.c @@ -469,7 +469,7 @@ int32_t qCreateExecTask(SReadHandle* readHandle, int32_t vgId, uint64_t taskId, if (handle) { void* pSinkParam = NULL; code = createDataSinkParam(pSubplan->pDataSink, &pSinkParam, pTaskInfo, readHandle); - if (code != TSDB_CODE_SUCCESS || pSinkParam == NULL) { + if (code != TSDB_CODE_SUCCESS) { qError("failed to createDataSinkParam, vgId:%d, code:%s, %s", vgId, tstrerror(code), (*pTask)->id.str); goto _error; }