enh: parameter validation
This commit is contained in:
parent
5c01cff369
commit
9adc756975
|
@ -30,8 +30,8 @@ char *gJoinTypeStr[JOIN_TYPE_MAX_VALUE][JOIN_STYPE_MAX_VALUE] = {
|
||||||
/*FULL*/ {"Full Join", "Full Join", NULL, NULL, NULL, NULL},
|
/*FULL*/ {"Full Join", "Full Join", NULL, NULL, NULL, NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
int32_t qExplainGenerateResNode(SPhysiNode *pNode, SExplainGroup *group, SExplainResNode **pRes);
|
static int32_t qExplainGenerateResNode(SPhysiNode *pNode, SExplainGroup *group, SExplainResNode **pRes);
|
||||||
int32_t qExplainAppendGroupResRows(void *pCtx, int32_t groupId, int32_t level, bool singleChannel);
|
static int32_t qExplainAppendGroupResRows(void *pCtx, int32_t groupId, int32_t level, bool singleChannel);
|
||||||
|
|
||||||
char *qExplainGetDynQryCtrlType(EDynQueryType type) {
|
char *qExplainGetDynQryCtrlType(EDynQueryType type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -118,7 +118,7 @@ void qExplainFreeCtx(SExplainCtx *pCtx) {
|
||||||
taosMemoryFree(pCtx);
|
taosMemoryFree(pCtx);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainInitCtx(SExplainCtx **pCtx, SHashObj *groupHash, bool verbose, double ratio, EExplainMode mode) {
|
static int32_t qExplainInitCtx(SExplainCtx **pCtx, SHashObj *groupHash, bool verbose, double ratio, EExplainMode mode) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SExplainCtx *ctx = taosMemoryCalloc(1, sizeof(SExplainCtx));
|
SExplainCtx *ctx = taosMemoryCalloc(1, sizeof(SExplainCtx));
|
||||||
if (NULL == ctx) {
|
if (NULL == ctx) {
|
||||||
|
@ -158,7 +158,7 @@ _return:
|
||||||
QRY_RET(code);
|
QRY_RET(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainGenerateResChildren(SPhysiNode *pNode, SExplainGroup *group, SNodeList **pChildren) {
|
static int32_t qExplainGenerateResChildren(SPhysiNode *pNode, SExplainGroup *group, SNodeList **pChildren) {
|
||||||
int32_t tlen = 0;
|
int32_t tlen = 0;
|
||||||
SNodeList *pPhysiChildren = pNode->pChildren;
|
SNodeList *pPhysiChildren = pNode->pChildren;
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ int32_t qExplainGenerateResChildren(SPhysiNode *pNode, SExplainGroup *group, SNo
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainGenerateResNodeExecInfo(SPhysiNode *pNode, SArray **pExecInfo, SExplainGroup *group) {
|
static int32_t qExplainGenerateResNodeExecInfo(SPhysiNode *pNode, SArray **pExecInfo, SExplainGroup *group) {
|
||||||
*pExecInfo = taosArrayInit(group->nodeNum, sizeof(SExplainExecInfo));
|
*pExecInfo = taosArrayInit(group->nodeNum, sizeof(SExplainExecInfo));
|
||||||
if (NULL == (*pExecInfo)) {
|
if (NULL == (*pExecInfo)) {
|
||||||
qError("taosArrayInit %d explainExecInfo failed", group->nodeNum);
|
qError("taosArrayInit %d explainExecInfo failed", group->nodeNum);
|
||||||
|
@ -217,7 +217,7 @@ int32_t qExplainGenerateResNodeExecInfo(SPhysiNode *pNode, SArray **pExecInfo, S
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainGenerateResNode(SPhysiNode *pNode, SExplainGroup *group, SExplainResNode **pResNode) {
|
static int32_t qExplainGenerateResNode(SPhysiNode *pNode, SExplainGroup *group, SExplainResNode **pResNode) {
|
||||||
if (NULL == pNode) {
|
if (NULL == pNode) {
|
||||||
*pResNode = NULL;
|
*pResNode = NULL;
|
||||||
qError("physical node is NULL");
|
qError("physical node is NULL");
|
||||||
|
@ -250,7 +250,7 @@ _return:
|
||||||
QRY_RET(code);
|
QRY_RET(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainBufAppendExecInfo(SArray *pExecInfo, char *tbuf, int32_t *len) {
|
static int32_t qExplainBufAppendExecInfo(SArray *pExecInfo, char *tbuf, int32_t *len) {
|
||||||
int32_t tlen = *len;
|
int32_t tlen = *len;
|
||||||
int32_t nodeNum = taosArrayGetSize(pExecInfo);
|
int32_t nodeNum = taosArrayGetSize(pExecInfo);
|
||||||
SExplainExecInfo maxExecInfo = {0};
|
SExplainExecInfo maxExecInfo = {0};
|
||||||
|
@ -275,7 +275,7 @@ int32_t qExplainBufAppendExecInfo(SArray *pExecInfo, char *tbuf, int32_t *len) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainBufAppendVerboseExecInfo(SArray *pExecInfo, char *tbuf, int32_t *len) {
|
static int32_t qExplainBufAppendVerboseExecInfo(SArray *pExecInfo, char *tbuf, int32_t *len) {
|
||||||
int32_t tlen = 0;
|
int32_t tlen = 0;
|
||||||
bool gotVerbose = false;
|
bool gotVerbose = false;
|
||||||
int32_t nodeNum = taosArrayGetSize(pExecInfo);
|
int32_t nodeNum = taosArrayGetSize(pExecInfo);
|
||||||
|
@ -297,7 +297,7 @@ int32_t qExplainBufAppendVerboseExecInfo(SArray *pExecInfo, char *tbuf, int32_t
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainResAppendRow(SExplainCtx *ctx, char *tbuf, int32_t len, int32_t level) {
|
static int32_t qExplainResAppendRow(SExplainCtx *ctx, char *tbuf, int32_t len, int32_t level) {
|
||||||
SQueryExplainRowInfo row = {0};
|
SQueryExplainRowInfo row = {0};
|
||||||
row.buf = taosMemoryMalloc(len);
|
row.buf = taosMemoryMalloc(len);
|
||||||
if (NULL == row.buf) {
|
if (NULL == row.buf) {
|
||||||
|
@ -362,7 +362,7 @@ static char* qExplainGetScanDataLoad(STableScanPhysiNode* pScan) {
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainResNodeToRowsImpl(SExplainResNode *pResNode, SExplainCtx *ctx, int32_t level) {
|
static int32_t qExplainResNodeToRowsImpl(SExplainResNode *pResNode, SExplainCtx *ctx, int32_t level) {
|
||||||
int32_t tlen = 0;
|
int32_t tlen = 0;
|
||||||
bool isVerboseLine = false;
|
bool isVerboseLine = false;
|
||||||
char *tbuf = ctx->tbuf;
|
char *tbuf = ctx->tbuf;
|
||||||
|
@ -1900,7 +1900,7 @@ int32_t qExplainResNodeToRowsImpl(SExplainResNode *pResNode, SExplainCtx *ctx, i
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainResNodeToRows(SExplainResNode *pResNode, SExplainCtx *ctx, int32_t level) {
|
static int32_t qExplainResNodeToRows(SExplainResNode *pResNode, SExplainCtx *ctx, int32_t level) {
|
||||||
if (NULL == pResNode) {
|
if (NULL == pResNode) {
|
||||||
qError("explain res node is NULL");
|
qError("explain res node is NULL");
|
||||||
QRY_ERR_RET(TSDB_CODE_APP_ERROR);
|
QRY_ERR_RET(TSDB_CODE_APP_ERROR);
|
||||||
|
@ -1915,7 +1915,7 @@ int32_t qExplainResNodeToRows(SExplainResNode *pResNode, SExplainCtx *ctx, int32
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainAppendGroupResRows(void *pCtx, int32_t groupId, int32_t level, bool singleChannel) {
|
static int32_t qExplainAppendGroupResRows(void *pCtx, int32_t groupId, int32_t level, bool singleChannel) {
|
||||||
SExplainResNode *node = NULL;
|
SExplainResNode *node = NULL;
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SExplainCtx *ctx = (SExplainCtx *)pCtx;
|
SExplainCtx *ctx = (SExplainCtx *)pCtx;
|
||||||
|
@ -1940,7 +1940,7 @@ _return:
|
||||||
QRY_RET(code);
|
QRY_RET(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainGetRspFromCtx(void *ctx, SRetrieveTableRsp **pRsp) {
|
static int32_t qExplainGetRspFromCtx(void *ctx, SRetrieveTableRsp **pRsp) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SSDataBlock *pBlock = NULL;
|
SSDataBlock *pBlock = NULL;
|
||||||
SExplainCtx *pCtx = (SExplainCtx *)ctx;
|
SExplainCtx *pCtx = (SExplainCtx *)ctx;
|
||||||
|
@ -1997,7 +1997,7 @@ _return:
|
||||||
QRY_RET(code);
|
QRY_RET(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainPrepareCtx(SQueryPlan *pDag, SExplainCtx **pCtx) {
|
static int32_t qExplainPrepareCtx(SQueryPlan *pDag, SExplainCtx **pCtx) {
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
SNodeListNode *plans = NULL;
|
SNodeListNode *plans = NULL;
|
||||||
int32_t taskNum = 0;
|
int32_t taskNum = 0;
|
||||||
|
@ -2080,7 +2080,7 @@ _return:
|
||||||
QRY_RET(code);
|
QRY_RET(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainAppendPlanRows(SExplainCtx *pCtx) {
|
static int32_t qExplainAppendPlanRows(SExplainCtx *pCtx) {
|
||||||
if (EXPLAIN_MODE_ANALYZE != pCtx->mode) {
|
if (EXPLAIN_MODE_ANALYZE != pCtx->mode) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -2103,7 +2103,7 @@ int32_t qExplainAppendPlanRows(SExplainCtx *pCtx) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t qExplainGenerateRsp(SExplainCtx *pCtx, SRetrieveTableRsp **pRsp) {
|
static int32_t qExplainGenerateRsp(SExplainCtx *pCtx, SRetrieveTableRsp **pRsp) {
|
||||||
QRY_ERR_RET(qExplainAppendGroupResRows(pCtx, pCtx->rootGroupId, 0, false));
|
QRY_ERR_RET(qExplainAppendGroupResRows(pCtx, pCtx->rootGroupId, 0, false));
|
||||||
QRY_ERR_RET(qExplainAppendPlanRows(pCtx));
|
QRY_ERR_RET(qExplainAppendPlanRows(pCtx));
|
||||||
QRY_ERR_RET(qExplainGetRspFromCtx(pCtx, pRsp));
|
QRY_ERR_RET(qExplainGetRspFromCtx(pCtx, pRsp));
|
||||||
|
|
|
@ -64,6 +64,10 @@ static void udfWatchUdfd(void *args);
|
||||||
void udfUdfdExit(uv_process_t *process, int64_t exitStatus, int32_t termSignal) {
|
void udfUdfdExit(uv_process_t *process, int64_t exitStatus, int32_t termSignal) {
|
||||||
fnInfo("udfd process exited with status %" PRId64 ", signal %d", exitStatus, termSignal);
|
fnInfo("udfd process exited with status %" PRId64 ", signal %d", exitStatus, termSignal);
|
||||||
SUdfdData *pData = process->data;
|
SUdfdData *pData = process->data;
|
||||||
|
if(pData == NULL) {
|
||||||
|
fnError("udfd process data is NULL");
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (exitStatus == 0 && termSignal == 0 || atomic_load_32(&pData->stopCalled)) {
|
if (exitStatus == 0 && termSignal == 0 || atomic_load_32(&pData->stopCalled)) {
|
||||||
fnInfo("udfd process exit due to SIGINT or dnode-mgmt called stop");
|
fnInfo("udfd process exit due to SIGINT or dnode-mgmt called stop");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1507,7 +1507,7 @@ static void removeListeningPipe() {
|
||||||
int err = uv_fs_unlink(global.loop, &req, global.listenPipeName, NULL);
|
int err = uv_fs_unlink(global.loop, &req, global.listenPipeName, NULL);
|
||||||
uv_fs_req_cleanup(&req);
|
uv_fs_req_cleanup(&req);
|
||||||
if(err) {
|
if(err) {
|
||||||
fnError("remove listening pipe %s failed, reason:%s, lino:%d", global.listenPipeName, uv_strerror(err), __LINE__);
|
fnInfo("remove listening pipe %s : %s, lino:%d", global.listenPipeName, uv_strerror(err), __LINE__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue