diff --git a/src/query/src/qSqlParser.c b/src/query/src/qSqlParser.c index 11b50890b2decf751eb58612d0eda5bf61e06325..a21c36594a5aed3cefe1a62bbb56963dd3d18e30 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 019b618ca3d0983dcd0d1cf305e92678cedf7596..03e92a2a4ae8f3bd9dea3da17ab20783d68cb3f1 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;