fix: abs function handling invalid constant input

TD-15216
This commit is contained in:
Ganlin Zhao 2022-06-23 19:56:03 +08:00
parent 83a795f2f2
commit 60d0229d3d
1 changed files with 7 additions and 3 deletions

View File

@ -36,9 +36,6 @@ int32_t absFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutpu
SColumnInfoData *pOutputData = pOutput->columnData; SColumnInfoData *pOutputData = pOutput->columnData;
int32_t type = GET_PARAM_TYPE(pInput); int32_t type = GET_PARAM_TYPE(pInput);
if (!IS_NUMERIC_TYPE(type)) {
return TSDB_CODE_FAILED;
}
switch (type) { switch (type) {
case TSDB_DATA_TYPE_FLOAT: { case TSDB_DATA_TYPE_FLOAT: {
@ -119,6 +116,13 @@ int32_t absFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutpu
break; break;
} }
case TSDB_DATA_TYPE_NULL: {
for (int32_t i = 0; i < pInput->numOfRows; ++i) {
colDataAppendNULL(pOutputData, i);
}
break;
}
default: { default: {
colDataAssign(pOutputData, pInputData, pInput->numOfRows); colDataAssign(pOutputData, pInputData, pInput->numOfRows);
} }