From 63903b262da3ba65eb95904faded7e627d095786 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Sun, 9 Jan 2022 21:16:25 +0800 Subject: [PATCH] [TD-12252](connector,query,insert,other,tools,taosAdapter):deal with escape character --- src/common/src/tname.c | 2 +- src/query/src/qSqlParser.c | 2 +- src/util/src/ttokenizer.c | 14 +++++++------- src/util/src/tutil.c | 2 ++ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/common/src/tname.c b/src/common/src/tname.c index 6727fc1961..68aa1be6b2 100644 --- a/src/common/src/tname.c +++ b/src/common/src/tname.c @@ -50,7 +50,7 @@ SSchema tGetUserSpecifiedColumnSchema(tVariant* pVal, SStrToken* exprStr, const } else { size_t tlen = MIN(sizeof(s.name), exprStr->n + 1); tstrncpy(s.name, exprStr->z, tlen); - stringProcess(s.name, strlen(s.name)); + stringProcess(s.name, (int32_t)strlen(s.name)); } return s; diff --git a/src/query/src/qSqlParser.c b/src/query/src/qSqlParser.c index eaec7b23ad..f927287015 100644 --- a/src/query/src/qSqlParser.c +++ b/src/query/src/qSqlParser.c @@ -96,7 +96,7 @@ SArray *tSqlExprListAppend(SArray *pList, tSqlExpr *pNode, SStrToken *pDistinct, strncpy(item.aliasName, pToken->z, pToken->n); item.aliasName[pToken->n] = 0; - stringProcess(item.aliasName, strlen(item.aliasName)); + stringProcess(item.aliasName, (int32_t)strlen(item.aliasName)); } taosArrayPush(pList, &item); diff --git a/src/util/src/ttokenizer.c b/src/util/src/ttokenizer.c index ef1e7890eb..8fca992911 100644 --- a/src/util/src/ttokenizer.c +++ b/src/util/src/ttokenizer.c @@ -448,13 +448,13 @@ uint32_t tGetToken(char* z, uint32_t* tokenId) { } case '`': { for (i = 1; z[i]; i++) { - if(isprint(z[i]) == 0){ - break; - } - if (z[i] == '`' && z[i+1] == '`') { - i++; - continue; - } +// if(isprint(z[i]) == 0){ +// break; +// } +// if (z[i] == '`' && z[i+1] == '`') { +// i++; +// continue; +// } if (z[i] == '`') { i++; *tokenId = TK_ID; diff --git a/src/util/src/tutil.c b/src/util/src/tutil.c index e5a326661e..ad359bd15f 100644 --- a/src/util/src/tutil.c +++ b/src/util/src/tutil.c @@ -78,6 +78,8 @@ int32_t strDealWithEscape(char *z, int32_t len){ static int32_t strdequote(char *z, int32_t n){ if(z == NULL || n < 2) return n; int32_t quote = z[0]; + z[0] = 0; + z[n - 1] = 0; int32_t i = 1, j = 0; while (i < n) { if (i < n - 1 && z[i] == quote && z[i + 1] == quote) { // two consecutive quotation marks keep one -- GitLab