提交 3d25ecdf 编写于 作者: S shenglian zhou

can add two lines of one supertable/diffrent subtable

上级 cb5a0012
...@@ -540,13 +540,13 @@ int taos_sml_insert(TAOS* taos, TAOS_SML_DATA_POINT* points, int numPoint) { ...@@ -540,13 +540,13 @@ int taos_sml_insert(TAOS* taos, TAOS_SML_DATA_POINT* points, int numPoint) {
for (int i = 0; i < numPoint; ++i) { for (int i = 0; i < numPoint; ++i) {
TAOS_SML_DATA_POINT* point = &points[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; SSmlSTableSchema* pStableSchema = NULL;
if (ppStableSchema) { if (ppStableSchema) {
pStableSchema= *ppStableSchema; pStableSchema= *ppStableSchema;
} else { } else {
SSmlSTableSchema schema; SSmlSTableSchema schema;
size_t stableNameLen = strlen(point->stableName);
strncpy(schema.sTableName, point->stableName, stableNameLen); strncpy(schema.sTableName, point->stableName, stableNameLen);
schema.sTableName[stableNameLen] = '\0'; schema.sTableName[stableNameLen] = '\0';
schema.fields = taosArrayInit(64, sizeof(SSchema)); schema.fields = taosArrayInit(64, sizeof(SSchema));
...@@ -730,13 +730,13 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) { ...@@ -730,13 +730,13 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) {
item->length = (int16_t)tDataTypes[item->type].bytes; item->length = (int16_t)tDataTypes[item->type].bytes;
item->value = malloc(item->length); item->value = malloc(item->length);
char* endptr = NULL; char* endptr = NULL;
*(item->value) = strtoll(sv, &endptr, 10); *(int64_t*)(item->value) = strtoll(sv, &endptr, 10);
} else { } else {
item->type = TSDB_DATA_TYPE_DOUBLE; item->type = TSDB_DATA_TYPE_DOUBLE;
item->length = (int16_t)tDataTypes[item->type].bytes; item->length = (int16_t)tDataTypes[item->type].bytes;
item->value = malloc(item->length); item->value = malloc(item->length);
char* endptr = NULL; char* endptr = NULL;
*(item->value) = strtold(sv, &endptr); *(double*)(item->value) = strtold(sv, &endptr);
} }
} else if ((sv[0] == 'L' && sv[1] =='"') || sv[0] == '"' ) { } else if ((sv[0] == 'L' && sv[1] =='"') || sv[0] == '"' ) {
if (sv[0] == 'L') { if (sv[0] == 'L') {
...@@ -744,7 +744,7 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) { ...@@ -744,7 +744,7 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) {
uint32_t bytes = item->valueToken.n - 3; uint32_t bytes = item->valueToken.n - 3;
item->length = bytes; item->length = bytes;
item->value = malloc(bytes); item->value = malloc(bytes);
memcpy(item->value, sv+1, bytes); memcpy(item->value, sv+2, bytes);
} else if (sv[0]=='"'){ } else if (sv[0]=='"'){
item->type = TSDB_DATA_TYPE_BINARY; item->type = TSDB_DATA_TYPE_BINARY;
uint32_t bytes = item->valueToken.n - 2; uint32_t bytes = item->valueToken.n - 2;
...@@ -756,7 +756,7 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) { ...@@ -756,7 +756,7 @@ int32_t parseItemValue(SLPItem* item, LPItemKind kind) {
item->type = TSDB_DATA_TYPE_BOOL; item->type = TSDB_DATA_TYPE_BOOL;
item->length = tDataTypes[item->type].bytes; item->length = tDataTypes[item->type].bytes;
item->value = malloc(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; return 0;
} }
......
...@@ -952,9 +952,11 @@ void verify_stream(TAOS* taos) { ...@@ -952,9 +952,11 @@ void verify_stream(TAOS* taos) {
int32_t verify_schema_less(TAOS* taos) { int32_t verify_schema_less(TAOS* taos) {
prepare_data(taos); prepare_data(taos);
char* lines[] = { 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; return code;
} }
...@@ -976,7 +978,7 @@ int main(int argc, char *argv[]) { ...@@ -976,7 +978,7 @@ int main(int argc, char *argv[]) {
info = taos_get_client_info(taos); info = taos_get_client_info(taos);
printf("client info: %s\n", info); printf("client info: %s\n", info);
printf("************ verify query *************\n"); printf("************ verify shemaless *************\n");
int code = verify_schema_less(taos); int code = verify_schema_less(taos);
if (code == 0) { if (code == 0) {
return code; return code;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册