未验证 提交 afe770aa 编写于 作者: M Minglei Jin 提交者: GitHub

[TS-346]<fix>: [taosdump] support unsigned data export (#7912)

Co-authored-by: NMinglei Jin <mljin@taosdata.com>
上级 18bc5a0a
......@@ -126,7 +126,7 @@ enum _describe_table_index {
typedef struct {
char field[TSDB_COL_NAME_LEN + 1];
char type[16];
char type[32];
int length;
char note[COL_NOTE_LEN];
} SColDes;
......@@ -1323,7 +1323,7 @@ static int taosGetTableDes(
fields[TSDB_DESCRIBE_METRIC_FIELD_INDEX].bytes + 1));
tstrncpy(stableDes->cols[count].type,
(char *)row[TSDB_DESCRIBE_METRIC_TYPE_INDEX],
min(16, fields[TSDB_DESCRIBE_METRIC_TYPE_INDEX].bytes + 1));
min(32, fields[TSDB_DESCRIBE_METRIC_TYPE_INDEX].bytes + 1));
stableDes->cols[count].length =
*((int *)row[TSDB_DESCRIBE_METRIC_LENGTH_INDEX]);
tstrncpy(stableDes->cols[count].note,
......@@ -1394,6 +1394,18 @@ static int taosGetTableDes(
case TSDB_DATA_TYPE_BIGINT:
sprintf(stableDes->cols[i].note, "%" PRId64 "", *((int64_t *)row[0]));
break;
case TSDB_DATA_TYPE_UTINYINT:
sprintf(stableDes->cols[i].note, "%d", *((uint8_t *)row[0]));
break;
case TSDB_DATA_TYPE_USMALLINT:
sprintf(stableDes->cols[i].note, "%d", *((uint16_t *)row[0]));
break;
case TSDB_DATA_TYPE_UINT:
sprintf(stableDes->cols[i].note, "%" PRIu32 "", *((uint32_t *)row[0]));
break;
case TSDB_DATA_TYPE_UBIGINT:
sprintf(stableDes->cols[i].note, "%" PRIu64 "", *((uint64_t *)row[0]));
break;
case TSDB_DATA_TYPE_FLOAT:
sprintf(stableDes->cols[i].note, "%f", GET_FLOAT_VAL(row[0]));
break;
......@@ -2117,6 +2129,19 @@ static int64_t writeResultToSql(TAOS_RES *res, FILE *fp, char *dbName, char *tbN
curr_sqlstr_len += sprintf(pstr + curr_sqlstr_len, "%" PRId64 "",
*((int64_t *)row[col]));
break;
case TSDB_DATA_TYPE_UTINYINT:
curr_sqlstr_len += sprintf(pstr + curr_sqlstr_len, "%d", *((uint8_t *)row[col]));
break;
case TSDB_DATA_TYPE_USMALLINT:
curr_sqlstr_len += sprintf(pstr + curr_sqlstr_len, "%d", *((uint16_t *)row[col]));
break;
case TSDB_DATA_TYPE_UINT:
curr_sqlstr_len += sprintf(pstr + curr_sqlstr_len, "%" PRIu32 "", *((uint32_t *)row[col]));
break;
case TSDB_DATA_TYPE_UBIGINT:
curr_sqlstr_len += sprintf(pstr + curr_sqlstr_len, "%" PRIu64 "",
*((uint64_t *)row[col]));
break;
case TSDB_DATA_TYPE_FLOAT:
curr_sqlstr_len += sprintf(pstr + curr_sqlstr_len, "%f", GET_FLOAT_VAL(row[col]));
break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册