fix:[TD-24807] double quote & space escape error
This commit is contained in:
parent
0232420273
commit
978f639851
|
@ -202,7 +202,7 @@ static int32_t smlParseTagKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin
|
||||||
bool keyEscaped = false;
|
bool keyEscaped = false;
|
||||||
size_t keyLenEscaped = 0;
|
size_t keyLenEscaped = 0;
|
||||||
while (*sql < sqlEnd) {
|
while (*sql < sqlEnd) {
|
||||||
if (unlikely(IS_COMMA(*sql))) {
|
if (unlikely(IS_SPACE(*sql) || IS_COMMA(*sql))) {
|
||||||
smlBuildInvalidDataMsg(&info->msgBuf, "invalid data", *sql);
|
smlBuildInvalidDataMsg(&info->msgBuf, "invalid data", *sql);
|
||||||
return TSDB_CODE_SML_INVALID_DATA;
|
return TSDB_CODE_SML_INVALID_DATA;
|
||||||
}
|
}
|
||||||
|
@ -410,7 +410,7 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin
|
||||||
bool keyEscaped = false;
|
bool keyEscaped = false;
|
||||||
size_t keyLenEscaped = 0;
|
size_t keyLenEscaped = 0;
|
||||||
while (*sql < sqlEnd) {
|
while (*sql < sqlEnd) {
|
||||||
if (unlikely(IS_COMMA(*sql))) {
|
if (unlikely(IS_SPACE(*sql) || IS_COMMA(*sql))) {
|
||||||
smlBuildInvalidDataMsg(&info->msgBuf, "invalid data", *sql);
|
smlBuildInvalidDataMsg(&info->msgBuf, "invalid data", *sql);
|
||||||
return TSDB_CODE_SML_INVALID_DATA;
|
return TSDB_CODE_SML_INVALID_DATA;
|
||||||
}
|
}
|
||||||
|
@ -443,7 +443,14 @@ static int32_t smlParseColKv(SSmlHandle *info, char **sql, char *sqlEnd, SSmlLin
|
||||||
if (unlikely(*(*sql) == QUOTE && (*(*sql - 1) != SLASH || (*sql - 1) == escapeChar))) {
|
if (unlikely(*(*sql) == QUOTE && (*(*sql - 1) != SLASH || (*sql - 1) == escapeChar))) {
|
||||||
isInQuote = !isInQuote;
|
isInQuote = !isInQuote;
|
||||||
(*sql)++;
|
(*sql)++;
|
||||||
if(!isInQuote) break;
|
if(!isInQuote) {
|
||||||
|
if (unlikely(IS_SPACE(*sql) || IS_COMMA(*sql))) {
|
||||||
|
break;
|
||||||
|
}else{
|
||||||
|
smlBuildInvalidDataMsg(&info->msgBuf, "invalid data", *sql);
|
||||||
|
return TSDB_CODE_SML_INVALID_DATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!isInQuote) {
|
if (!isInQuote) {
|
||||||
|
|
|
@ -224,6 +224,8 @@ TEST(testCase, smlParseCols_Error_Test) {
|
||||||
"st,tt=aa c 1=2 1626006833639000000,",
|
"st,tt=aa c 1=2 1626006833639000000,",
|
||||||
//field value double quote,slash
|
//field value double quote,slash
|
||||||
"st,tt=aa c=\"a\"a\" 1626006833639000000,",
|
"st,tt=aa c=\"a\"a\" 1626006833639000000,",
|
||||||
|
"escape_test,tag1=\"tag1_value\",tag2=\"tag2_value\" co l0=\"col0_value\",col1=\"col1_value\" 1680918783010000000",
|
||||||
|
"escape_test,tag1=\"tag1_value\",tag2=\"tag2_value\" col0=\"co\"l\"0_value\",col1=\"col1_value\" 1680918783010000000"
|
||||||
};
|
};
|
||||||
|
|
||||||
SSmlHandle *info = smlBuildSmlInfo(NULL);
|
SSmlHandle *info = smlBuildSmlInfo(NULL);
|
||||||
|
|
Loading…
Reference in New Issue