enh: check level
This commit is contained in:
parent
bf9ea14f86
commit
61ccba3ce7
|
@ -543,10 +543,6 @@ void udfdDeinitScriptPlugins() {
|
||||||
|
|
||||||
void udfdProcessRequest(uv_work_t *req) {
|
void udfdProcessRequest(uv_work_t *req) {
|
||||||
TAOS_UDF_CHECK_PTR_RVOID(req);
|
TAOS_UDF_CHECK_PTR_RVOID(req);
|
||||||
if (req == NULL) {
|
|
||||||
fnError("udf request is NULL");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SUvUdfWork *uvUdf = (SUvUdfWork *)(req->data);
|
SUvUdfWork *uvUdf = (SUvUdfWork *)(req->data);
|
||||||
if (uvUdf == NULL) {
|
if (uvUdf == NULL) {
|
||||||
fnError("udf work is NULL");
|
fnError("udf work is NULL");
|
||||||
|
@ -800,22 +796,24 @@ static int32_t checkUDFScalaResult(SSDataBlock *block, SUdfColumn *output) {
|
||||||
return TSDB_CODE_UDF_FUNC_EXEC_FAILURE;
|
return TSDB_CODE_UDF_FUNC_EXEC_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < output->colData.numOfRows; ++i) {
|
if (tsSafetyCheckLevel == TSDB_SAFETY_CHECK_LEVELL_BYROW) {
|
||||||
if (tsSafetyCheckLevel < TSDB_SAFETY_CHECK_LEVELL_BYROW) break;
|
for (int32_t i = 0; i < output->colData.numOfRows; ++i) {
|
||||||
if (!udfColDataIsNull(output, i)) {
|
if (!udfColDataIsNull(output, i)) {
|
||||||
if (IS_VAR_DATA_TYPE(output->colMeta.type)) {
|
if (IS_VAR_DATA_TYPE(output->colMeta.type)) {
|
||||||
TAOS_UDF_CHECK_CONDITION(output->colData.varLenCol.payload != NULL, TSDB_CODE_UDF_FUNC_EXEC_FAILURE);
|
TAOS_UDF_CHECK_CONDITION(output->colData.varLenCol.payload != NULL, TSDB_CODE_UDF_FUNC_EXEC_FAILURE);
|
||||||
TAOS_UDF_CHECK_CONDITION(output->colData.varLenCol.varOffsets[i] >= 0 &&
|
TAOS_UDF_CHECK_CONDITION(output->colData.varLenCol.varOffsets[i] >= 0 &&
|
||||||
output->colData.varLenCol.varOffsets[i] < output->colData.varLenCol.payloadLen,
|
output->colData.varLenCol.varOffsets[i] < output->colData.varLenCol.payloadLen,
|
||||||
TSDB_CODE_UDF_FUNC_EXEC_FAILURE);
|
TSDB_CODE_UDF_FUNC_EXEC_FAILURE);
|
||||||
} else {
|
} else {
|
||||||
TAOS_UDF_CHECK_CONDITION(
|
TAOS_UDF_CHECK_CONDITION(
|
||||||
output->colMeta.bytes * output->colData.numOfRows <= output->colData.fixLenCol.dataLen,
|
output->colMeta.bytes * output->colData.numOfRows <= output->colData.fixLenCol.dataLen,
|
||||||
TSDB_CODE_UDF_FUNC_EXEC_FAILURE);
|
TSDB_CODE_UDF_FUNC_EXEC_FAILURE);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue