From e489c016a8f04c6458331b79f52ad844813ba1d5 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/query/src/qSqlParser.c | 8 +++++++- src/util/src/ttokenizer.c | 9 +++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/query/src/qSqlParser.c b/src/query/src/qSqlParser.c index 11b50890b2..a21c36594a 100644 --- a/src/query/src/qSqlParser.c +++ b/src/query/src/qSqlParser.c @@ -60,7 +60,7 @@ SSqlInfo qSqlParse(const char *pStr) { sqlInfo.valid = false; goto abort_parse; } - + case TK_HEX: case TK_OCT: case TK_BIN:{ @@ -68,6 +68,12 @@ SSqlInfo qSqlParse(const char *pStr) { sqlInfo.valid = false; goto abort_parse; } + case TK_NOW: { + // for now() function used in select clause + if (pStr[i] == '(' && pStr[i + 1] == ')') { + t0.type = TK_ID; + } + } default: Parse(pParser, t0.type, t0, &sqlInfo); if (sqlInfo.valid == false) { diff --git a/src/util/src/ttokenizer.c b/src/util/src/ttokenizer.c index 019b618ca3..03e92a2a4a 100644 --- a/src/util/src/ttokenizer.c +++ b/src/util/src/ttokenizer.c @@ -590,10 +590,6 @@ uint32_t tGetToken(char* z, uint32_t* tokenId) { } *tokenId = tKeywordCode(z, i); - //Check for function now() - if (*tokenId == TK_NOW && z[i] == '(' && z[i + 1] == ')') { - *tokenId = TK_ID; - } return i; } } @@ -670,6 +666,11 @@ SStrToken tStrGetToken(char* str, int32_t* i, bool isPrevOptr) { #endif } + //for now() function used in insert clause + if (t0.type == TK_NOW && str[t0.n] == '(' && str[t0.n + 1] == ')') { + t0.n += 2; + } + if (t0.type == TK_SEMI) { t0.n = 0; return t0; -- GitLab