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;
|
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,
|
static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs,
|
||||||
const char **index, bool isField, TAOS_SML_DATA_POINT* smlData) {
|
const char **index, bool isField, TAOS_SML_DATA_POINT* smlData) {
|
||||||
const char *cur = *index;
|
const char *cur = *index;
|
||||||
|
@ -1776,6 +1788,10 @@ static int32_t parseSmlKvPairs(TAOS_SML_KV **pKVs, int *num_kvs,
|
||||||
}
|
}
|
||||||
if (!isField &&
|
if (!isField &&
|
||||||
(strcasecmp(pkv->key, "ID") == 0) && pkv->type == TSDB_DATA_TYPE_BINARY) {
|
(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);
|
smlData->childTableName = malloc( pkv->length + 1);
|
||||||
memcpy(smlData->childTableName, pkv->value, pkv->length);
|
memcpy(smlData->childTableName, pkv->value, pkv->length);
|
||||||
smlData->childTableName[pkv->length] = '\0';
|
smlData->childTableName[pkv->length] = '\0';
|
||||||
|
|
Loading…
Reference in New Issue