fix:[TD-31473] Fix repeat function use tag as parameter.

This commit is contained in:
sima 2024-08-15 16:11:38 +08:00
parent 6170cc1799
commit 85ec91fb58
1 changed files with 9 additions and 4 deletions

View File

@ -1639,7 +1639,9 @@ int32_t repeatFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOu
int32_t maxCount = 0; int32_t maxCount = 0;
for (int32_t i = 0; i < pInput[1].numOfRows; i++) { for (int32_t i = 0; i < pInput[1].numOfRows; i++) {
maxCount = TMAX(maxCount, *(int32_t *)colDataGetData(pInput[1].columnData, i)); int32_t tmpCount = 0;
GET_TYPED_DATA(tmpCount, int32_t, GET_PARAM_TYPE(&pInput[1]), colDataGetData(pInput[1].columnData, i));
maxCount = TMAX(maxCount, tmpCount);
} }
pInputData[0] = pInput[0].columnData; pInputData[0] = pInput[0].columnData;
pInputData[1] = pInput[1].columnData; pInputData[1] = pInput[1].columnData;
@ -1663,7 +1665,8 @@ int32_t repeatFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOu
colDataSetNULL(pOutputData, i); colDataSetNULL(pOutputData, i);
continue; continue;
} }
int32_t count = *(int32_t *)colDataGetData(pInputData[1], i); int32_t count = 0;
GET_TYPED_DATA(count, int32_t, GET_PARAM_TYPE(&pInput[1]), colDataGetData(pInput[1].columnData, i));
if (count <= 0) { if (count <= 0) {
varDataSetLen(output, 0); varDataSetLen(output, 0);
SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false)); SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false));
@ -1684,7 +1687,8 @@ int32_t repeatFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOu
colDataSetNULL(pOutputData, i); colDataSetNULL(pOutputData, i);
continue; continue;
} }
int32_t count = *(int32_t *)colDataGetData(pInputData[1], i); int32_t count = 0;
GET_TYPED_DATA(count, int32_t, GET_PARAM_TYPE(&pInput[1]), colDataGetData(pInput[1].columnData, i));
if (count <= 0) { if (count <= 0) {
varDataSetLen(output, 0); varDataSetLen(output, 0);
SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false)); SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false));
@ -1706,7 +1710,8 @@ int32_t repeatFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOu
colDataSetNULL(pOutputData, i); colDataSetNULL(pOutputData, i);
continue; continue;
} }
int32_t count = *(int32_t *)colDataGetData(pInputData[1], 0); int32_t count = 0;
GET_TYPED_DATA(count, int32_t, GET_PARAM_TYPE(&pInput[1]), colDataGetData(pInput[1].columnData, i));
if (count <= 0) { if (count <= 0) {
varDataSetLen(output, 0); varDataSetLen(output, 0);
SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false)); SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false));