Merge pull request #7018 from taosdata/fix/TD-5521
[TD-5521]<fix>: [schemaless]id can only contain digits/alphabet/underscore
This commit is contained in:
commit
32c7be0d96
|
@ -1743,6 +1743,18 @@ static int32_t parseSmlMeasurement(TAOS_SML_DATA_POINT *pSml, const char **index
|
|||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
//Table name can only contain digits(0-9),alphebet(a-z),underscore(_)
|
||||
static int32_t isValidChildTableName(const char *pTbName, int16_t len) {
|
||||
const char *cur = pTbName;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
if(!isdigit(cur[i]) && !isalpha(cur[i]) && (cur[i] != '_')) {
|
||||
return TSDB_CODE_TSC_LINE_SYNTAX_ERROR;
|
||||
}
|
||||
}
|
||||
return TSDB_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs,
|
||||
const char **index, bool isField, TAOS_SML_DATA_POINT* smlData) {
|
||||
const char *cur = *index;
|
||||
|
@ -1776,6 +1788,10 @@ static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs,
|
|||
}
|
||||
if (!isField &&
|
||||
(strcasecmp(pkv->key, "ID") == 0) && pkv->type == TSDB_DATA_TYPE_BINARY) {
|
||||
ret = isValidChildTableName(pkv->value, pkv->length);
|
||||
if (ret) {
|
||||
goto error;
|
||||
}
|
||||
smlData->childTableName = malloc( pkv->length + 1);
|
||||
memcpy(smlData->childTableName, pkv->value, pkv->length);
|
||||
smlData->childTableName[pkv->length] = '\0';
|
||||
|
|
Loading…
Reference in New Issue