Merge pull request #20596 from taosdata/szhou/python-udf
fix: aggregate function can return null value
This commit is contained in:
commit
95dd3e078a
|
@ -1210,14 +1210,19 @@ int32_t udfAggFinalize(struct SqlFunctionCtx *pCtx, SSDataBlock *pBlock) {
|
||||||
fnError("udfAggFinalize error. doCallUdfAggFinalize step. udf code:%d", udfCallCode);
|
fnError("udfAggFinalize error. doCallUdfAggFinalize step. udf code:%d", udfCallCode);
|
||||||
GET_RES_INFO(pCtx)->numOfRes = 0;
|
GET_RES_INFO(pCtx)->numOfRes = 0;
|
||||||
} else {
|
} else {
|
||||||
if (resultBuf.bufLen <= session->bytes) {
|
if (resultBuf.numOfResult == 0) {
|
||||||
memcpy(udfRes->finalResBuf, resultBuf.buf, resultBuf.bufLen);
|
udfRes->finalResNum = 0;
|
||||||
udfRes->finalResNum = resultBuf.numOfResult;
|
|
||||||
GET_RES_INFO(pCtx)->numOfRes = udfRes->finalResNum;
|
|
||||||
} else {
|
|
||||||
fnError("udfc inter buf size %d is greater than function output size %d", resultBuf.bufLen, session->bytes);
|
|
||||||
GET_RES_INFO(pCtx)->numOfRes = 0;
|
GET_RES_INFO(pCtx)->numOfRes = 0;
|
||||||
udfCallCode = TSDB_CODE_UDF_INVALID_OUTPUT_TYPE;
|
} else {
|
||||||
|
if (resultBuf.bufLen <= session->bytes) {
|
||||||
|
memcpy(udfRes->finalResBuf, resultBuf.buf, resultBuf.bufLen);
|
||||||
|
udfRes->finalResNum = resultBuf.numOfResult;
|
||||||
|
GET_RES_INFO(pCtx)->numOfRes = udfRes->finalResNum;
|
||||||
|
} else {
|
||||||
|
fnError("udfc inter buf size %d is greater than function output size %d", resultBuf.bufLen, session->bytes);
|
||||||
|
GET_RES_INFO(pCtx)->numOfRes = 0;
|
||||||
|
udfCallCode = TSDB_CODE_UDF_INVALID_OUTPUT_TYPE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue