From 8c05378ca12f888e3631ef98c2eefbac536bf971 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 29 Nov 2024 01:13:52 +0800 Subject: [PATCH] feat:[TD-32642] add timezone for connection support --- source/common/src/ttime.c | 15 ++++++++++----- source/libs/scalar/src/sclfunc.c | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/source/common/src/ttime.c b/source/common/src/ttime.c index 681660bfb7..8ac50a2c17 100644 --- a/source/common/src/ttime.c +++ b/source/common/src/ttime.c @@ -163,20 +163,25 @@ int32_t parseTimezone(char* str, int64_t* tzOffset) { PARSE(&str[i], hourSize, hour); i += hourSize + 1; - size_t minSize = strlen(&str[i]); - PARSE(&str[i], minSize, minute); - if (minute > 59 || minute < 0) { - TAOS_RETURN(TSDB_CODE_INVALID_PARA); - } } else { size_t hourSize = strlen(&str[i]); + if (hourSize > 2){ + hourSize = 2; + } PARSE(&str[i], hourSize, hour) + i += hourSize; } if (hour > 13 || hour < 0) { TAOS_RETURN(TSDB_CODE_INVALID_PARA); } + size_t minSize = strlen(&str[i]); + PARSE(&str[i], minSize, minute); + if (minute > 59 || minute < 0) { + TAOS_RETURN(TSDB_CODE_INVALID_PARA); + } + if (str[0] == '+') { *tzOffset = -(hour * 3600 + minute * 60); } else { diff --git a/source/libs/scalar/src/sclfunc.c b/source/libs/scalar/src/sclfunc.c index 639676cdf1..efec336589 100644 --- a/source/libs/scalar/src/sclfunc.c +++ b/source/libs/scalar/src/sclfunc.c @@ -2259,10 +2259,10 @@ int32_t toISO8601Function(SScalarParam *pInput, int32_t inputNum, SScalarParam * len += tzLen; } -_end: memmove(buf + VARSTR_HEADER_SIZE, buf, len); varDataSetLen(buf, len); + _end: SCL_ERR_RET(colDataSetVal(pOutput->columnData, i, buf, false)); }