From aae9407926d7b56adc0f52a9ee9840206439b2c1 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Fri, 9 Dec 2022 00:35:42 +0800 Subject: [PATCH] opti:modify logic for telnet and json in schemaless --- source/client/src/clientSml.c | 3 +-- utils/test/c/sml_test.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/source/client/src/clientSml.c b/source/client/src/clientSml.c index 4d6ae16cab..e1046892d7 100644 --- a/source/client/src/clientSml.c +++ b/source/client/src/clientSml.c @@ -1902,13 +1902,12 @@ static int32_t smlParseTelnetString(SSmlHandle *info, char *sql, char *sqlEnd, S SSmlKv kv = {.key = VALUE, .keyLen = VALUE_LEN, .value = elements->cols, .length = elements->colsLen}; if (smlParseNumber(&kv, &info->msgBuf)) { kv.length = (int16_t)tDataTypes[kv.type].bytes; - return TSDB_CODE_SUCCESS; }else{ return TSDB_CODE_TSC_INVALID_VALUE; } // move measure before tags to combine keys to identify child table - memcpy(sql - elements->measureLen, elements->measure, elements->measureLen); + memmove(sql - elements->measureLen, elements->measure, elements->measureLen); elements->measure = sql - elements->measureLen; elements->measureLen += sqlEnd - sql; diff --git a/utils/test/c/sml_test.c b/utils/test/c/sml_test.c index 19be9640e3..7a72bfd774 100644 --- a/utils/test/c/sml_test.c +++ b/utils/test/c/sml_test.c @@ -77,11 +77,20 @@ int smlProcess_telnet_Test() { pRes = taos_query(taos, "use sml_db"); taos_free_result(pRes); - const char *sql[] = {"sys.if.bytes.out 1479496100 1.3E0 host=web01 interface=eth0", + char *sql[4] = {0}; + sql[0] = taosMemoryCalloc(1, 128); + sql[1] = taosMemoryCalloc(1, 128); + sql[2] = taosMemoryCalloc(1, 128); + sql[3] = taosMemoryCalloc(1, 128); + const char *sql1[] = {"sys.if.bytes.out 1479496100 1.3E0 host=web01 interface=eth0", "sys.if.bytes.out 1479496101 1.3E1 interface=eth0 host=web01 ", "sys.if.bytes.out 1479496102 1.3E3 network=tcp", " sys.procs.running 1479496100 42 host=web01 "}; + for(int i = 0; i < 4; i++){ + strncpy(sql[i], sql1[i], 128); + } + pRes = taos_schemaless_insert(taos, (char **)sql, sizeof(sql) / sizeof(sql[0]), TSDB_SML_TELNET_PROTOCOL, TSDB_SML_TIMESTAMP_NANO_SECONDS); printf("%s result:%s\n", __FUNCTION__, taos_errstr(pRes));