Merge pull request #4173 from taosdata/hotfix/TD-2026
[TD-2026]<fix>: 'show create table' return unexpected column len
This commit is contained in:
commit
69fe86bccd
|
@ -619,7 +619,11 @@ static int32_t tscRebuildDDLForNormalTable(SSqlObj *pSql, const char *tableName,
|
||||||
for (int32_t i = 0; i < numOfRows; ++i) {
|
for (int32_t i = 0; i < numOfRows; ++i) {
|
||||||
uint8_t type = pSchema[i].type;
|
uint8_t type = pSchema[i].type;
|
||||||
if (type == TSDB_DATA_TYPE_BINARY || type == TSDB_DATA_TYPE_NCHAR) {
|
if (type == TSDB_DATA_TYPE_BINARY || type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s(%d),", pSchema[i].name,tDataTypeDesc[pSchema[i].type].aName,pSchema->bytes);
|
int32_t bytes = pSchema[i].bytes - VARSTR_HEADER_SIZE;
|
||||||
|
if (type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
|
bytes = bytes/TSDB_NCHAR_SIZE;
|
||||||
|
}
|
||||||
|
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s(%d),", pSchema[i].name, tDataTypeDesc[pSchema[i].type].aName, bytes);
|
||||||
} else {
|
} else {
|
||||||
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s,", pSchema[i].name, tDataTypeDesc[pSchema[i].type].aName);
|
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s,", pSchema[i].name, tDataTypeDesc[pSchema[i].type].aName);
|
||||||
}
|
}
|
||||||
|
@ -642,7 +646,11 @@ static int32_t tscRebuildDDLForSuperTable(SSqlObj *pSql, const char *tableName,
|
||||||
for (int32_t i = 0; i < numOfRows; ++i) {
|
for (int32_t i = 0; i < numOfRows; ++i) {
|
||||||
uint8_t type = pSchema[i].type;
|
uint8_t type = pSchema[i].type;
|
||||||
if (type == TSDB_DATA_TYPE_BINARY || type == TSDB_DATA_TYPE_NCHAR) {
|
if (type == TSDB_DATA_TYPE_BINARY || type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result),"%s %s(%d),", pSchema[i].name,tDataTypeDesc[pSchema[i].type].aName,pSchema->bytes);
|
int32_t bytes = pSchema[i].bytes - VARSTR_HEADER_SIZE;
|
||||||
|
if (type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
|
bytes = bytes/TSDB_NCHAR_SIZE;
|
||||||
|
}
|
||||||
|
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result),"%s %s(%d),", pSchema[i].name,tDataTypeDesc[pSchema[i].type].aName, bytes);
|
||||||
} else {
|
} else {
|
||||||
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s,", pSchema[i].name, tDataTypeDesc[type].aName);
|
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s,", pSchema[i].name, tDataTypeDesc[type].aName);
|
||||||
}
|
}
|
||||||
|
@ -652,7 +660,11 @@ static int32_t tscRebuildDDLForSuperTable(SSqlObj *pSql, const char *tableName,
|
||||||
for (int32_t i = numOfRows; i < totalRows; i++) {
|
for (int32_t i = numOfRows; i < totalRows; i++) {
|
||||||
uint8_t type = pSchema[i].type;
|
uint8_t type = pSchema[i].type;
|
||||||
if (type == TSDB_DATA_TYPE_BINARY || type == TSDB_DATA_TYPE_NCHAR) {
|
if (type == TSDB_DATA_TYPE_BINARY || type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s(%d),", pSchema[i].name,tDataTypeDesc[pSchema[i].type].aName,pSchema->bytes);
|
int32_t bytes = pSchema[i].bytes - VARSTR_HEADER_SIZE;
|
||||||
|
if (type == TSDB_DATA_TYPE_NCHAR) {
|
||||||
|
bytes = bytes/TSDB_NCHAR_SIZE;
|
||||||
|
}
|
||||||
|
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s(%d),", pSchema[i].name,tDataTypeDesc[pSchema[i].type].aName, bytes);
|
||||||
} else {
|
} else {
|
||||||
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s,", pSchema[i].name, tDataTypeDesc[type].aName);
|
snprintf(result + strlen(result), TSDB_MAX_BINARY_LEN - strlen(result), "%s %s,", pSchema[i].name, tDataTypeDesc[type].aName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,10 +50,10 @@ static void queryDB(TAOS *taos, char *command) {
|
||||||
taos_free_result(pSql);
|
taos_free_result(pSql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Test(char *qstr, const char *input, int i);
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
TAOS * taos;
|
|
||||||
char qstr[1024];
|
char qstr[1024];
|
||||||
TAOS_RES *result;
|
|
||||||
|
|
||||||
// connect to server
|
// connect to server
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
|
@ -63,41 +63,26 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
// init TAOS
|
// init TAOS
|
||||||
taos_init();
|
taos_init();
|
||||||
|
for (int i = 0; i < 4000000; i++) {
|
||||||
taos = taos_connect(argv[1], "root", "taosdata", NULL, 0);
|
Test(qstr, argv[1], i);
|
||||||
|
}
|
||||||
|
taos_cleanup();
|
||||||
|
}
|
||||||
|
void Test(char *qstr, const char *input, int index) {
|
||||||
|
TAOS *taos = taos_connect(input, "root", "taosdata", NULL, 0);
|
||||||
|
printf("==================test at %d\n================================", index);
|
||||||
|
queryDB(taos, "drop database if exists demo");
|
||||||
|
queryDB(taos, "create database demo");
|
||||||
|
TAOS_RES *result;
|
||||||
if (taos == NULL) {
|
if (taos == NULL) {
|
||||||
printf("failed to connect to server, reason:%s\n", "null taos"/*taos_errstr(taos)*/);
|
printf("failed to connect to server, reason:%s\n", "null taos"/*taos_errstr(taos)*/);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
printf("success to connect to server\n");
|
|
||||||
|
|
||||||
|
|
||||||
//taos_query(taos, "drop database demo");
|
|
||||||
queryDB(taos, "drop database if exists demo");
|
|
||||||
|
|
||||||
//result = taos_query(taos, "create database demo");
|
|
||||||
//if (result == NULL) {
|
|
||||||
// printf("failed to create database, reason:%s\n", "null result"/*taos_errstr(taos)*/);
|
|
||||||
// exit(1);
|
|
||||||
//}
|
|
||||||
queryDB(taos, "create database demo");
|
|
||||||
printf("success to create database\n");
|
|
||||||
|
|
||||||
//taos_query(taos, "use demo");
|
|
||||||
queryDB(taos, "use demo");
|
queryDB(taos, "use demo");
|
||||||
|
|
||||||
// create table
|
|
||||||
//if (taos_query(taos, "create table m1 (ts timestamp, ti tinyint, si smallint, i int, bi bigint, f float, d double, b binary(10))") == 0) {
|
|
||||||
// printf("failed to create table, reason:%s\n", taos_errstr(result));
|
|
||||||
// exit(1);
|
|
||||||
//}
|
|
||||||
queryDB(taos, "create table m1 (ts timestamp, ti tinyint, si smallint, i int, bi bigint, f float, d double, b binary(10))");
|
queryDB(taos, "create table m1 (ts timestamp, ti tinyint, si smallint, i int, bi bigint, f float, d double, b binary(10))");
|
||||||
printf("success to create table\n");
|
printf("success to create table\n");
|
||||||
|
|
||||||
// sleep for one second to make sure table is created on data node
|
|
||||||
// taosMsleep(1000);
|
|
||||||
|
|
||||||
// insert 10 records
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (i = 0; i < 10; ++i) {
|
for (i = 0; i < 10; ++i) {
|
||||||
sprintf(qstr, "insert into m1 values (%" PRId64 ", %d, %d, %d, %d, %f, %lf, '%s')", 1546300800000 + i * 1000, i, i, i, i*10000000, i*1.0, i*2.0, "hello");
|
sprintf(qstr, "insert into m1 values (%" PRId64 ", %d, %d, %d, %d, %f, %lf, '%s')", 1546300800000 + i * 1000, i, i, i, i*10000000, i*1.0, i*2.0, "hello");
|
||||||
|
@ -117,7 +102,6 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
taos_free_result(result);
|
taos_free_result(result);
|
||||||
|
|
||||||
//sleep(1);
|
|
||||||
}
|
}
|
||||||
printf("success to insert rows, total %d rows\n", i);
|
printf("success to insert rows, total %d rows\n", i);
|
||||||
|
|
||||||
|
@ -147,5 +131,6 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
taos_free_result(result);
|
taos_free_result(result);
|
||||||
printf("====demo end====\n\n");
|
printf("====demo end====\n\n");
|
||||||
return getchar();
|
taos_close(taos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue