提交 94d056e6 编写于 作者: A Alex Duan

fix:uniform output csv format with shell output

上级 0ee01c54
...@@ -45,6 +45,8 @@ ...@@ -45,6 +45,8 @@
#define SHELL_MAX_PKG_NUM 1 * 1024 * 1024 #define SHELL_MAX_PKG_NUM 1 * 1024 * 1024
#define SHELL_MIN_PKG_NUM 1 #define SHELL_MIN_PKG_NUM 1
#define SHELL_DEF_PKG_NUM 100 #define SHELL_DEF_PKG_NUM 100
#define SHELL_FLOAT_WIDTH 20
#define SHELL_DOUBLE_WIDTH 25
typedef struct { typedef struct {
char* hist[SHELL_MAX_HISTORY_SIZE]; char* hist[SHELL_MAX_HISTORY_SIZE];
......
...@@ -358,22 +358,29 @@ void shellDumpFieldToFile(TdFilePtr pFile, const char *val, TAOS_FIELD *field, i ...@@ -358,22 +358,29 @@ void shellDumpFieldToFile(TdFilePtr pFile, const char *val, TAOS_FIELD *field, i
taosFprintfFile(pFile, "%" PRIu64, *((uint64_t *)val)); taosFprintfFile(pFile, "%" PRIu64, *((uint64_t *)val));
break; break;
case TSDB_DATA_TYPE_FLOAT: case TSDB_DATA_TYPE_FLOAT:
int32_t width = SHELL_FLOAT_WIDTH;
if (tsEnableScience) { if (tsEnableScience) {
taosFprintfFile(pFile, "%e", GET_FLOAT_VAL(val)); printf("%*e", width, GET_FLOAT_VAL(val));
} else { } else {
taosFprintfFile(pFile, "%.5f", GET_FLOAT_VAL(val)); n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.5f", width, GET_FLOAT_VAL(val));
if (n > SHELL_FLOAT_WIDTH) {
printf("%*e", width, GET_FLOAT_VAL(val));
} else {
printf("%s", buf);
}
} }
break; break;
case TSDB_DATA_TYPE_DOUBLE: case TSDB_DATA_TYPE_DOUBLE:
int32_t width = SHELL_DOUBLE_WIDTH;
if (tsEnableScience) { if (tsEnableScience) {
snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.9e", 23, GET_DOUBLE_VAL(val)); snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%.9e", GET_DOUBLE_VAL(val));
taosFprintfFile(pFile, "%s", buf); taosFprintfFile(pFile, "%*s", width, buf);
} else { } else {
n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.9f", length, GET_DOUBLE_VAL(val)); n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.9f", width, GET_DOUBLE_VAL(val));
if (n > TMAX(25, length)) { if (n > SHELL_DOUBLE_WIDTH) {
taosFprintfFile(pFile, "%*.15e", length, GET_DOUBLE_VAL(val)); taosFprintfFile(pFile, "%*.15e", width, GET_DOUBLE_VAL(val));
} else { } else {
taosFprintfFile(pFile, "%s", buf); taosFprintfFile(pFile, "%s", buf);
} }
} }
break; break;
...@@ -607,7 +614,7 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t ...@@ -607,7 +614,7 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t
printf("%*e", width, GET_FLOAT_VAL(val)); printf("%*e", width, GET_FLOAT_VAL(val));
} else { } else {
n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.5f", width, GET_FLOAT_VAL(val)); n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.5f", width, GET_FLOAT_VAL(val));
if (n > TMAX(20, width)) { if (n > SHELL_FLOAT_WIDTH) {
printf("%*e", width, GET_FLOAT_VAL(val)); printf("%*e", width, GET_FLOAT_VAL(val));
} else { } else {
printf("%s", buf); printf("%s", buf);
...@@ -620,7 +627,7 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t ...@@ -620,7 +627,7 @@ void shellPrintField(const char *val, TAOS_FIELD *field, int32_t width, int32_t
printf("%*s", width, buf); printf("%*s", width, buf);
} else { } else {
n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.9f", width, GET_DOUBLE_VAL(val)); n = snprintf(buf, TSDB_MAX_BYTES_PER_ROW, "%*.9f", width, GET_DOUBLE_VAL(val));
if (n > TMAX(25, width)) { if (n > SHELL_DOUBLE_WIDTH) {
printf("%*.15e", width, GET_DOUBLE_VAL(val)); printf("%*.15e", width, GET_DOUBLE_VAL(val));
} else { } else {
printf("%s", buf); printf("%s", buf);
...@@ -757,10 +764,10 @@ int32_t shellCalcColWidth(TAOS_FIELD *field, int32_t precision) { ...@@ -757,10 +764,10 @@ int32_t shellCalcColWidth(TAOS_FIELD *field, int32_t precision) {
return TMAX(21, width); // '-9223372036854775807' return TMAX(21, width); // '-9223372036854775807'
case TSDB_DATA_TYPE_FLOAT: case TSDB_DATA_TYPE_FLOAT:
return TMAX(20, width); return TMAX(SHELL_FLOAT_WIDTH, width);
case TSDB_DATA_TYPE_DOUBLE: case TSDB_DATA_TYPE_DOUBLE:
return TMAX(25, width); return TMAX(SHELL_DOUBLE_WIDTH, width);
case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_BINARY:
case TSDB_DATA_TYPE_GEOMETRY: case TSDB_DATA_TYPE_GEOMETRY:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册