[TD-1998]<fix>: cannot parse valid sql statement

This commit is contained in:
Bomin Zhang 2020-11-11 18:10:22 +08:00
parent 376bc5cedf
commit de74b9ccfc
1 changed files with 3 additions and 5 deletions

View File

@ -1238,8 +1238,7 @@ void tscColumnListDestroy(SArray* pColumnList) {
* *
*/ */
static int32_t validateQuoteToken(SStrToken* pToken) { static int32_t validateQuoteToken(SStrToken* pToken) {
strdequote(pToken->z); tscDequoteAndTrimToken(pToken);
pToken->n = (uint32_t)strtrim(pToken->z);
int32_t k = tSQLGetToken(pToken->z, &pToken->type); int32_t k = tSQLGetToken(pToken->z, &pToken->type);
@ -1254,8 +1253,6 @@ static int32_t validateQuoteToken(SStrToken* pToken) {
} }
void tscDequoteAndTrimToken(SStrToken* pToken) { void tscDequoteAndTrimToken(SStrToken* pToken) {
assert(pToken->type == TK_STRING);
uint32_t first = 0, last = pToken->n; uint32_t first = 0, last = pToken->n;
// trim leading spaces // trim leading spaces
@ -1367,7 +1364,8 @@ int32_t tscValidateName(SStrToken* pToken) {
} else { } else {
pStr[firstPartLen] = TS_PATH_DELIMITER[0]; pStr[firstPartLen] = TS_PATH_DELIMITER[0];
memmove(&pStr[firstPartLen + 1], pToken->z, pToken->n); memmove(&pStr[firstPartLen + 1], pToken->z, pToken->n);
pStr[firstPartLen + sizeof(TS_PATH_DELIMITER[0]) + pToken->n] = 0; uint32_t offset = (uint32_t)(pToken->z - (pStr + firstPartLen + 1));
memset(pToken->z + pToken->n - offset, ' ', offset);
} }
pToken->n += (firstPartLen + sizeof(TS_PATH_DELIMITER[0])); pToken->n += (firstPartLen + sizeof(TS_PATH_DELIMITER[0]));
pToken->z = pStr; pToken->z = pStr;