Merge pull request #27249 from taosdata/fix/3.0/TD-31473

fix:[TD-31473] Fix repeat function use tag as parameter.
This commit is contained in:
dapan1121 2024-08-15 19:00:26 +08:00 committed by GitHub
commit b5baf566d1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 4 deletions

View File

@ -1653,7 +1653,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;
@ -1677,7 +1679,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));
@ -1698,7 +1701,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));
@ -1720,7 +1724,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));