diff --git a/src/kit/shell/src/shellEngine.c b/src/kit/shell/src/shellEngine.c index d34588661c67ec1e58b6fc07f3f61ba2bc8c37d0..f9ea5f4777f7f1f97221e67ff1a3741347645d82 100644 --- a/src/kit/shell/src/shellEngine.c +++ b/src/kit/shell/src/shellEngine.c @@ -613,7 +613,7 @@ int shellDumpResult(TAOS *con, char *fname, int *error_no, bool printMode) { case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_NCHAR: memset(t_str, 0, TSDB_MAX_BYTES_PER_ROW); - memcpy(t_str, row[i], fields[i].bytes); + memcpy(t_str, row[i], length[i]); fprintf(fp, "\'%s\'", t_str); break; case TSDB_DATA_TYPE_TIMESTAMP: diff --git a/tests/tsim/src/simExe.c b/tests/tsim/src/simExe.c index 26291ba992346b595314d3e017272809aad3d62e..dc242b82f2adc8732fe50e25b176b06de07dc6f6 100644 --- a/tests/tsim/src/simExe.c +++ b/tests/tsim/src/simExe.c @@ -676,6 +676,8 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) { while ((row = taos_fetch_row(result))) { if (numOfRows < MAX_QUERY_ROW_NUM) { TAOS_FIELD *fields = taos_fetch_fields(result); + int* length = taos_fetch_lengths(result); + for (int i = 0; i < num_fields; i++) { char *value = NULL; if (i < MAX_QUERY_COL_NUM) { @@ -733,8 +735,8 @@ bool simExecuteNativeSqlCommand(SScript *script, char *rest, bool isSlow) { break; case TSDB_DATA_TYPE_BINARY: case TSDB_DATA_TYPE_NCHAR: - memcpy(value, row[i], fields[i].bytes); - value[fields[i].bytes] = 0; + memcpy(value, row[i], length[i]); + value[length[i]] = 0; // snprintf(value, fields[i].bytes, "%s", (char *)row[i]); break; case TSDB_DATA_TYPE_TIMESTAMP: