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;
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[1] = pInput[1].columnData;
@ -1677,7 +1679,8 @@ int32_t repeatFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOu
colDataSetNULL(pOutputData, i);
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) {
varDataSetLen(output, 0);
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);
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) {
varDataSetLen(output, 0);
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);
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) {
varDataSetLen(output, 0);
SCL_ERR_JRET(colDataSetVal(pOutputData, i, outputBuf, false));