fix:uniform output csv format with shell output
This commit is contained in:
parent
0ee01c5410
commit
94d056e67f
|
@ -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,20 +358,27 @@ 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);
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
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) {
|
||||||
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:
|
||||||
|
|
Loading…
Reference in New Issue