From 95a9b5c9de2d4bdcd82d6269254ed82fa1ccae93 Mon Sep 17 00:00:00 2001 From: Ganlin Zhao Date: Tue, 8 Feb 2022 14:29:41 +0800 Subject: [PATCH] [TD-11220](query): time related functions --- src/common/src/texpr.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/common/src/texpr.c b/src/common/src/texpr.c index 297841afed..a4bc99049a 100644 --- a/src/common/src/texpr.c +++ b/src/common/src/texpr.c @@ -1310,6 +1310,17 @@ int32_t exprValidateTimeNode(char *msgbuf, tExprNode *pExpr) { break; } case TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP: { + if (pExpr->_func.numChildren != 1) { + return TSDB_CODE_TSC_INVALID_OPERATION; + } + tExprNode *child = pExpr->_func.pChildren[0]; + if (child->resultType != TSDB_DATA_TYPE_BINARY && + child->resultType != TSDB_DATA_TYPE_NCHAR) { + return TSDB_CODE_TSC_INVALID_OPERATION; + } + + pExpr->resultType = TSDB_DATA_TYPE_TIMESTAMP; + pExpr->resultBytes = (int16_t)tDataTypes[TSDB_DATA_TYPE_TIMESTAMP].bytes; break; } default: { @@ -1885,6 +1896,8 @@ void vectorTimeFunc(int16_t functionId, tExprOperandInfo *pInputs, int32_t numIn break; } case TSDB_FUNC_SCALAR_TO_UNIXTIMESTAMP: { + assert(numInputs == 1); + assert(pInputs[0].type == TSDB_DATA_TYPE_BINARY || pInputs[0].type == TSDB_DATA_TYPE_NCHAR); break; } default: { -- GitLab