diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index 4b9191a91fbbc27e81297d6679b82962480d4658..1fde741c2b03048c55e3f60e883e26bdfe298d75 100644 --- a/src/client/src/tscParseLineProtocol.c +++ b/src/client/src/tscParseLineProtocol.c @@ -540,13 +540,13 @@ int taos_sml_insert(TAOS* taos, TAOS_SML_DATA_POINT* points, int numPoint) { for (int i = 0; i < numPoint; ++i) { TAOS_SML_DATA_POINT* point = &points[i]; - SSmlSTableSchema** ppStableSchema = taosHashGet(sname2shema, point->stableName, TSDB_TABLE_NAME_LEN); + size_t stableNameLen = strlen(point->stableName); + SSmlSTableSchema** ppStableSchema = taosHashGet(sname2shema, point->stableName, stableNameLen); SSmlSTableSchema* pStableSchema = NULL; if (ppStableSchema) { pStableSchema= *ppStableSchema; } else { SSmlSTableSchema schema; - size_t stableNameLen = strlen(point->stableName); strncpy(schema.sTableName, point->stableName, stableNameLen); schema.sTableName[stableNameLen] = '\0'; schema.fields = taosArrayInit(64, sizeof(SSchema)); @@ -730,13 +730,13 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) { item->length = (int16_t)tDataTypes[item->type].bytes; item->value = malloc(item->length); char* endptr = NULL; - *(item->value) = strtoll(sv, &endptr, 10); + *(int64_t*)(item->value) = strtoll(sv, &endptr, 10); } else { item->type = TSDB_DATA_TYPE_DOUBLE; item->length = (int16_t)tDataTypes[item->type].bytes; item->value = malloc(item->length); char* endptr = NULL; - *(item->value) = strtold(sv, &endptr); + *(double*)(item->value) = strtold(sv, &endptr); } } else if ((sv[0] == 'L' && sv[1] =='"') || sv[0] == '"' ) { if (sv[0] == 'L') { @@ -744,7 +744,7 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) { uint32_t bytes = item->valueToken.n - 3; item->length = bytes; item->value = malloc(bytes); - memcpy(item->value, sv+1, bytes); + memcpy(item->value, sv+2, bytes); } else if (sv[0]=='"'){ item->type = TSDB_DATA_TYPE_BINARY; uint32_t bytes = item->valueToken.n - 2; @@ -756,7 +756,7 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) { item->type = TSDB_DATA_TYPE_BOOL; item->length = tDataTypes[item->type].bytes; item->value = malloc(tDataTypes[item->type].bytes); - *(item->value) = tolower(sv[0])=='t' ? TSDB_TRUE : TSDB_FALSE; + *(uint8_t*)(item->value) = tolower(sv[0])=='t' ? TSDB_TRUE : TSDB_FALSE; } return 0; } diff --git a/tests/examples/c/apitest.c b/tests/examples/c/apitest.c index dc77677774225c1c97e52db9705ba3f0be30885d..04a03df6fa29fade1779f4fbab0e13cadd0e2a40 100644 --- a/tests/examples/c/apitest.c +++ b/tests/examples/c/apitest.c @@ -952,9 +952,11 @@ void verify_stream(TAOS* taos) { int32_t verify_schema_less(TAOS* taos) { prepare_data(taos); char* lines[] = { - "st,t1=3i,t2=4,t3=\"t3\" c1=3i,c3=L\"passit\",c2=false,c4=4 1626006833639162922" + "st,t1=3i,t2=4,t3=\"t3\" c1=3i,c3=L\"passit\",c2=false,c4=4 1626006833639", + "st,t1=4i,t2=5,t3=\"t4\" c1=3i,c3=L\"passitagain\",c2=true,c4=5 1626006833640", + "st,t1=4i,t2=5,t3=\"t4\" c1=3i,c3=L\"passitagain\",c2=true,c4=5 1626006833642" }; - int code = taos_insert_by_lines(taos, lines , 1); + int code = taos_insert_by_lines(taos, lines , 2); return code; } @@ -976,7 +978,7 @@ int main(int argc, char *argv[]) { info = taos_get_client_info(taos); printf("client info: %s\n", info); - printf("************ verify query *************\n"); + printf("************ verify shemaless *************\n"); int code = verify_schema_less(taos); if (code == 0) { return code;