fix(query): fix to_ISO8601 function crash when processing constant
illegal inputs TD-15211
This commit is contained in:
parent
b556d1fa62
commit
7fda5a861e
|
@ -1268,7 +1268,7 @@ static bool validateMinuteRange(int8_t hour, int8_t minute, char sign) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool validateTimestampDigits(const SValueNode* pVal) {
|
static bool validateTimestampDigits(const SValueNode* pVal) {
|
||||||
if (IS_INTEGER_TYPE(pVal->node.resType.type)) {
|
if (!IS_INTEGER_TYPE(pVal->node.resType.type)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -856,10 +856,13 @@ int32_t castFunction(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutp
|
||||||
int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutput) {
|
int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam *pOutput) {
|
||||||
int32_t type = GET_PARAM_TYPE(pInput);
|
int32_t type = GET_PARAM_TYPE(pInput);
|
||||||
|
|
||||||
|
bool tzPresent = (inputNum == 2) ? true : false;
|
||||||
char* tz;
|
char* tz;
|
||||||
int32_t tzLen;
|
int32_t tzLen;
|
||||||
tz = varDataVal(pInput[1].columnData->pData);
|
if (tzPresent) {
|
||||||
tzLen = varDataLen(pInput[1].columnData->pData);
|
tz = varDataVal(pInput[1].columnData->pData);
|
||||||
|
tzLen = varDataLen(pInput[1].columnData->pData);
|
||||||
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < pInput[0].numOfRows; ++i) {
|
for (int32_t i = 0; i < pInput[0].numOfRows; ++i) {
|
||||||
if (colDataIsNull_s(pInput[0].columnData, i)) {
|
if (colDataIsNull_s(pInput[0].columnData, i)) {
|
||||||
|
|
Loading…
Reference in New Issue