[td-225]fix error in global variables.
This commit is contained in:
parent
4855d16ded
commit
bdfe4c6066
|
@ -276,6 +276,8 @@ void shellRunCommandOnServer(TAOS *con, char command[]) {
|
||||||
st = taosGetTimestampUs();
|
st = taosGetTimestampUs();
|
||||||
|
|
||||||
TAOS_RES* pSql = taos_query(con, command);
|
TAOS_RES* pSql = taos_query(con, command);
|
||||||
|
result = pSql; // set it into the global variable
|
||||||
|
|
||||||
if (taos_errno(pSql)) {
|
if (taos_errno(pSql)) {
|
||||||
taos_error(pSql);
|
taos_error(pSql);
|
||||||
return;
|
return;
|
||||||
|
@ -284,7 +286,8 @@ void shellRunCommandOnServer(TAOS *con, char command[]) {
|
||||||
if (regex_match(command, "^\\s*use\\s+[a-zA-Z0-9_]+\\s*;\\s*$", REG_EXTENDED | REG_ICASE)) {
|
if (regex_match(command, "^\\s*use\\s+[a-zA-Z0-9_]+\\s*;\\s*$", REG_EXTENDED | REG_ICASE)) {
|
||||||
fprintf(stdout, "Database changed.\n\n");
|
fprintf(stdout, "Database changed.\n\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
|
result = NULL;
|
||||||
taos_free_result(pSql);
|
taos_free_result(pSql);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -294,6 +297,7 @@ void shellRunCommandOnServer(TAOS *con, char command[]) {
|
||||||
int error_no = 0;
|
int error_no = 0;
|
||||||
int numOfRows = shellDumpResult(pSql, fname, &error_no, printMode);
|
int numOfRows = shellDumpResult(pSql, fname, &error_no, printMode);
|
||||||
if (numOfRows < 0) {
|
if (numOfRows < 0) {
|
||||||
|
result = NULL;
|
||||||
taos_free_result(pSql);
|
taos_free_result(pSql);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -315,7 +319,8 @@ void shellRunCommandOnServer(TAOS *con, char command[]) {
|
||||||
if (fname != NULL) {
|
if (fname != NULL) {
|
||||||
wordfree(&full_path);
|
wordfree(&full_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result = NULL;
|
||||||
taos_free_result(pSql);
|
taos_free_result(pSql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,8 +424,8 @@ static void dumpFieldToFile(FILE* fp, const char* val, TAOS_FIELD* field, int32_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dumpResultToFile(const char* fname, TAOS_RES* result) {
|
static int dumpResultToFile(const char* fname, TAOS_RES* tres) {
|
||||||
TAOS_ROW row = taos_fetch_row(result);
|
TAOS_ROW row = taos_fetch_row(tres);
|
||||||
if (row == NULL) {
|
if (row == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -441,9 +446,9 @@ static int dumpResultToFile(const char* fname, TAOS_RES* result) {
|
||||||
|
|
||||||
wordfree(&full_path);
|
wordfree(&full_path);
|
||||||
|
|
||||||
int num_fields = taos_num_fields(result);
|
int num_fields = taos_num_fields(tres);
|
||||||
TAOS_FIELD *fields = taos_fetch_fields(result);
|
TAOS_FIELD *fields = taos_fetch_fields(tres);
|
||||||
int precision = taos_result_precision(result);
|
int precision = taos_result_precision(tres);
|
||||||
|
|
||||||
for (int col = 0; col < num_fields; col++) {
|
for (int col = 0; col < num_fields; col++) {
|
||||||
if (col > 0) {
|
if (col > 0) {
|
||||||
|
@ -455,7 +460,7 @@ static int dumpResultToFile(const char* fname, TAOS_RES* result) {
|
||||||
|
|
||||||
int numOfRows = 0;
|
int numOfRows = 0;
|
||||||
do {
|
do {
|
||||||
int32_t* length = taos_fetch_lengths(result);
|
int32_t* length = taos_fetch_lengths(tres);
|
||||||
for (int i = 0; i < num_fields; i++) {
|
for (int i = 0; i < num_fields; i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
fputc(',', fp);
|
fputc(',', fp);
|
||||||
|
@ -465,10 +470,13 @@ static int dumpResultToFile(const char* fname, TAOS_RES* result) {
|
||||||
fputc('\n', fp);
|
fputc('\n', fp);
|
||||||
|
|
||||||
numOfRows++;
|
numOfRows++;
|
||||||
row = taos_fetch_row(result);
|
row = taos_fetch_row(tres);
|
||||||
} while( row != NULL);
|
} while( row != NULL);
|
||||||
|
|
||||||
|
result = NULL;
|
||||||
|
taos_free_result(tres);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
return numOfRows;
|
return numOfRows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -769,8 +777,7 @@ void write_history() {
|
||||||
|
|
||||||
void taos_error(TAOS_RES *tres) {
|
void taos_error(TAOS_RES *tres) {
|
||||||
fprintf(stderr, "\nDB error: %s\n", taos_errstr(tres));
|
fprintf(stderr, "\nDB error: %s\n", taos_errstr(tres));
|
||||||
|
result = NULL;
|
||||||
/* free local resouce: allocated memory/metric-meta refcnt */
|
|
||||||
taos_free_result(tres);
|
taos_free_result(tres);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -845,9 +852,9 @@ void shellGetGrantInfo(void *con) {
|
||||||
|
|
||||||
char sql[] = "show grants";
|
char sql[] = "show grants";
|
||||||
|
|
||||||
result = taos_query(con, sql);
|
TAOS_RES* tres = taos_query(con, sql);
|
||||||
|
|
||||||
int code = taos_errno(result);
|
int code = taos_errno(tres);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
if (code == TSDB_CODE_COM_OPS_NOT_SUPPORT) {
|
if (code == TSDB_CODE_COM_OPS_NOT_SUPPORT) {
|
||||||
fprintf(stdout, "Server is Community Edition, version is %s\n\n", taos_get_server_info(con));
|
fprintf(stdout, "Server is Community Edition, version is %s\n\n", taos_get_server_info(con));
|
||||||
|
@ -857,18 +864,18 @@ void shellGetGrantInfo(void *con) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int num_fields = taos_field_count(result);
|
int num_fields = taos_field_count(tres);
|
||||||
if (num_fields == 0) {
|
if (num_fields == 0) {
|
||||||
fprintf(stderr, "\nInvalid grant information.\n");
|
fprintf(stderr, "\nInvalid grant information.\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
} else {
|
} else {
|
||||||
if (result == NULL) {
|
if (tres == NULL) {
|
||||||
fprintf(stderr, "\nGrant information is null.\n");
|
fprintf(stderr, "\nGrant information is null.\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TAOS_FIELD *fields = taos_fetch_fields(result);
|
TAOS_FIELD *fields = taos_fetch_fields(tres);
|
||||||
TAOS_ROW row = taos_fetch_row(result);
|
TAOS_ROW row = taos_fetch_row(tres);
|
||||||
if (row == NULL) {
|
if (row == NULL) {
|
||||||
fprintf(stderr, "\nFailed to get grant information from server. Abort.\n");
|
fprintf(stderr, "\nFailed to get grant information from server. Abort.\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
|
@ -888,8 +895,8 @@ void shellGetGrantInfo(void *con) {
|
||||||
fprintf(stdout, "Server is Enterprise %s Edition, version is %s and will expire at %s.\n", serverVersion, taos_get_server_info(con), expiretime);
|
fprintf(stdout, "Server is Enterprise %s Edition, version is %s and will expire at %s.\n", serverVersion, taos_get_server_info(con), expiretime);
|
||||||
}
|
}
|
||||||
|
|
||||||
taos_free_result(result);
|
|
||||||
result = NULL;
|
result = NULL;
|
||||||
|
taos_free_result(tres);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stdout, "\n");
|
fprintf(stdout, "\n");
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
#include "tsclient.h"
|
|
||||||
|
|
||||||
pthread_t pid;
|
pthread_t pid;
|
||||||
|
|
||||||
|
@ -23,14 +22,6 @@ pthread_t pid;
|
||||||
void interruptHandler(int signum) {
|
void interruptHandler(int signum) {
|
||||||
#ifdef LINUX
|
#ifdef LINUX
|
||||||
taos_stop_query(result);
|
taos_stop_query(result);
|
||||||
if (result != NULL) {
|
|
||||||
/*
|
|
||||||
* we need to free result in async model, in order to avoid free
|
|
||||||
* results while the master thread is waiting for server response.
|
|
||||||
*/
|
|
||||||
tscQueueAsyncFreeResult(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
result = NULL;
|
result = NULL;
|
||||||
#else
|
#else
|
||||||
printf("\nReceive ctrl+c or other signal, quit shell.\n");
|
printf("\nReceive ctrl+c or other signal, quit shell.\n");
|
||||||
|
|
|
@ -293,7 +293,6 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
static struct argp argp = {options, parse_opt, args_doc, doc};
|
static struct argp argp = {options, parse_opt, args_doc, doc};
|
||||||
|
|
||||||
TAOS *taos = NULL;
|
TAOS *taos = NULL;
|
||||||
TAOS_RES *result = NULL;
|
|
||||||
char *command = NULL;
|
char *command = NULL;
|
||||||
char *lcommand = NULL;
|
char *lcommand = NULL;
|
||||||
char *buffer = NULL;
|
char *buffer = NULL;
|
||||||
|
@ -463,10 +462,10 @@ int taosDumpOut(SDumpArguments *arguments) {
|
||||||
taosDumpCharset(fp);
|
taosDumpCharset(fp);
|
||||||
|
|
||||||
sprintf(command, "show databases");
|
sprintf(command, "show databases");
|
||||||
result = taos_query(taos, command);
|
TAOS_RES* result = taos_query(taos, command);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
fprintf(stderr, "failed to run command: %s, reason: %s\n", command, taos_errstr(taos));
|
fprintf(stderr, "failed to run command: %s, reason: %s\n", command, taos_errstr(result));
|
||||||
taos_free_result(result);
|
taos_free_result(result);
|
||||||
goto _exit_failure;
|
goto _exit_failure;
|
||||||
}
|
}
|
||||||
|
@ -613,7 +612,7 @@ int taosDumpDb(SDbInfo *dbInfo, SDumpArguments *arguments, FILE *fp) {
|
||||||
fprintf(fp, "USE %s\n\n", dbInfo->name);
|
fprintf(fp, "USE %s\n\n", dbInfo->name);
|
||||||
|
|
||||||
sprintf(command, "show tables");
|
sprintf(command, "show tables");
|
||||||
result = taos_query(taos,command);
|
TAOS_RES* result = taos_query(taos,command);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
||||||
|
@ -717,7 +716,7 @@ void taosDumpCreateMTableClause(STableDef *tableDes, char *metric, int numOfCols
|
||||||
|
|
||||||
sprintf(command, "select %s from %s limit 1", tableDes->cols[counter].field, tableDes->name);
|
sprintf(command, "select %s from %s limit 1", tableDes->cols[counter].field, tableDes->name);
|
||||||
|
|
||||||
result = taos_query(taos, command);
|
TAOS_RES* result = taos_query(taos, command);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
||||||
|
@ -795,7 +794,7 @@ int taosGetTableDes(char *table, STableDef *tableDes) {
|
||||||
|
|
||||||
sprintf(command, "describe %s", table);
|
sprintf(command, "describe %s", table);
|
||||||
|
|
||||||
result = taos_query(taos, command);
|
TAOS_RES* result = taos_query(taos, command);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
||||||
|
@ -875,7 +874,7 @@ int32_t taosDumpMetric(char *metric, SDumpArguments *arguments, FILE *fp) {
|
||||||
tstrncpy(tableRecord.metric, metric, TSDB_TABLE_NAME_LEN);
|
tstrncpy(tableRecord.metric, metric, TSDB_TABLE_NAME_LEN);
|
||||||
|
|
||||||
sprintf(command, "select tbname from %s", metric);
|
sprintf(command, "select tbname from %s", metric);
|
||||||
result = taos_query(taos, command);
|
TAOS_RES* result = taos_query(taos, command);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
fprintf(stderr, "failed to run command %s, error: %s\n", command, taos_errstr(result));
|
||||||
|
@ -928,7 +927,7 @@ int taosDumpTableData(FILE *fp, char *tbname, SDumpArguments *arguments) {
|
||||||
sprintf(command, "select * from %s where _c0 >= %" PRId64 " and _c0 <= %" PRId64 " order by _c0 asc", tbname, arguments->start_time,
|
sprintf(command, "select * from %s where _c0 >= %" PRId64 " and _c0 <= %" PRId64 " order by _c0 asc", tbname, arguments->start_time,
|
||||||
arguments->end_time);
|
arguments->end_time);
|
||||||
|
|
||||||
result = taos_query(taos, command);
|
TAOS_RES* result = taos_query(taos, command);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
fprintf(stderr, "failed to run command %s, reason: %s\n", command, taos_errstr(result));
|
fprintf(stderr, "failed to run command %s, reason: %s\n", command, taos_errstr(result));
|
||||||
|
@ -1177,9 +1176,13 @@ int taosDumpIn(SDumpArguments *arguments) {
|
||||||
tcommand = command;
|
tcommand = command;
|
||||||
}
|
}
|
||||||
taosReplaceCtrlChar(tcommand);
|
taosReplaceCtrlChar(tcommand);
|
||||||
if (taos_query(taos, tcommand) == NULL)
|
|
||||||
|
TAOS_RES* result = taos_query(taos, tcommand);
|
||||||
|
if (taos_errno(result) != 0){
|
||||||
fprintf(stderr, "linenu: %" PRId64 " failed to run command %s reason:%s \ncontinue...\n", linenu, command,
|
fprintf(stderr, "linenu: %" PRId64 " failed to run command %s reason:%s \ncontinue...\n", linenu, command,
|
||||||
taos_errstr(taos));
|
taos_errstr(result));
|
||||||
|
taos_free_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
pstr = command;
|
pstr = command;
|
||||||
pstr[0] = '\0';
|
pstr[0] = '\0';
|
||||||
|
@ -1225,12 +1228,12 @@ int taosDumpIn(SDumpArguments *arguments) {
|
||||||
tcommand = command;
|
tcommand = command;
|
||||||
}
|
}
|
||||||
taosReplaceCtrlChar(tcommand);
|
taosReplaceCtrlChar(tcommand);
|
||||||
result = taos_query(taos, tcommand);
|
TAOS_RES* result = taos_query(taos, tcommand);
|
||||||
int32_t code = taos_errno(result);
|
int32_t code = taos_errno(result);
|
||||||
if (code != 0)
|
if (code != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "linenu:%" PRId64 " failed to run command %s reason: %s \ncontinue...\n", linenu, command,
|
fprintf(stderr, "linenu:%" PRId64 " failed to run command %s reason: %s \ncontinue...\n", linenu, command,
|
||||||
taos_errstr(taos));
|
taos_errstr(result));
|
||||||
}
|
}
|
||||||
taos_free_result(result);
|
taos_free_result(result);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue