提交 7e3cd84d 编写于 作者: S Shengliang Guan

TD-1057

上级 a18e287c
...@@ -16,4 +16,5 @@ IF (TD_LINUX) ...@@ -16,4 +16,5 @@ IF (TD_LINUX)
ELSEIF (TD_WINDOWS) ELSEIF (TD_WINDOWS)
AUX_SOURCE_DIRECTORY(. SRC) AUX_SOURCE_DIRECTORY(. SRC)
ADD_EXECUTABLE(taosdemo ${SRC}) ADD_EXECUTABLE(taosdemo ${SRC})
TARGET_LINK_LIBRARIES(taosdemo taos_static)
ENDIF () ENDIF ()
...@@ -15,24 +15,31 @@ ...@@ -15,24 +15,31 @@
#define _GNU_SOURCE #define _GNU_SOURCE
#include <argp.h> #ifdef LINUX
#include <assert.h> #include "os.h"
#include <inttypes.h> #include <argp.h>
#include <assert.h>
#ifndef _ALPINE #include <inttypes.h>
#include <error.h> #ifndef _ALPINE
#include <error.h>
#endif
#include <pthread.h>
#include <semaphore.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <wordexp.h>
#include <regex.h>
#else
#include <assert.h>
#include <regex.h>
#include <stdio.h>
#include "os.h"
#endif #endif
#include <pthread.h>
#include <semaphore.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <wordexp.h>
#include <regex.h>
#include "taos.h" #include "taos.h"
#include "tutil.h" #include "tutil.h"
...@@ -48,32 +55,6 @@ extern char configDir[]; ...@@ -48,32 +55,6 @@ extern char configDir[];
#define STRING_LEN 60000 #define STRING_LEN 60000
#define MAX_PREPARED_RAND 1000000 #define MAX_PREPARED_RAND 1000000
/* The options we understand. */
static struct argp_option options[] = {
{0, 'h', "host", 0, "The host to connect to TDEngine. Default is localhost.", 0},
{0, 'p', "port", 0, "The TCP/IP port number to use for the connection. Default is 0.", 1},
{0, 'u', "user", 0, "The TDEngine user name to use when connecting to the server. Default is 'root'.", 2},
{0, 'P', "password", 0, "The password to use when connecting to the server. Default is 'taosdata'.", 3},
{0, 'd', "database", 0, "Destination database. Default is 'test'.", 3},
{0, 'm', "table_prefix", 0, "Table prefix name. Default is 't'.", 3},
{0, 's', "sql file", 0, "The select sql file.", 3},
{0, 'M', 0, 0, "Use metric flag.", 13},
{0, 'o', "outputfile", 0, "Direct output to the named file. Default is './output.txt'.", 14},
{0, 'q', "query_mode", 0, "Query mode--0: SYNC, 1: ASYNC. Default is SYNC.", 6},
{0, 'b', "type_of_cols", 0, "The data_type of columns: 'INT', 'TINYINT', 'SMALLINT', 'BIGINT', 'FLOAT', 'DOUBLE', 'BINARY'. Default is 'INT'.", 7},
{0, 'w', "length_of_binary", 0, "The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8", 8},
{0, 'l', "num_of_cols_per_record", 0, "The number of columns per record. Default is 3.", 8},
{0, 'T', "num_of_threads", 0, "The number of threads. Default is 10.", 9},
{0, 'r', "num_of_records_per_req", 0, "The number of records per request. Default is 1000.", 10},
{0, 't', "num_of_tables", 0, "The number of tables. Default is 10000.", 11},
{0, 'n', "num_of_records_per_table", 0, "The number of records per table. Default is 100000.", 12},
{0, 'c', "config_directory", 0, "Configuration directory. Default is '/etc/taos/'.", 14},
{0, 'x', 0, 0, "Insert only flag.", 13},
{0, 'O', "order", 0, "Insert mode--0: In order, 1: Out of order. Default is in order.", 14},
{0, 'R', "rate", 0, "Out of order data's rate--if order=1 Default 10, min: 0, max: 50.", 14},
{0, 'D', "delete table", 0, "Delete data methods——0: don't delete, 1: delete by table, 2: delete by stable, 3: delete by database", 14},
{0}};
/* Used by main to communicate with parse_opt. */ /* Used by main to communicate with parse_opt. */
typedef struct DemoArguments { typedef struct DemoArguments {
char *host; char *host;
...@@ -101,8 +82,35 @@ typedef struct DemoArguments { ...@@ -101,8 +82,35 @@ typedef struct DemoArguments {
char **arg_list; char **arg_list;
} SDemoArguments; } SDemoArguments;
/* Parse a single option. */ #ifdef LINUX
static error_t parse_opt(int key, char *arg, struct argp_state *state) { /* The options we understand. */
static struct argp_option options[] = {
{0, 'h', "host", 0, "The host to connect to TDEngine. Default is localhost.", 0},
{0, 'p', "port", 0, "The TCP/IP port number to use for the connection. Default is 0.", 1},
{0, 'u', "user", 0, "The TDEngine user name to use when connecting to the server. Default is 'root'.", 2},
{0, 'P', "password", 0, "The password to use when connecting to the server. Default is 'taosdata'.", 3},
{0, 'd', "database", 0, "Destination database. Default is 'test'.", 3},
{0, 'm', "table_prefix", 0, "Table prefix name. Default is 't'.", 3},
{0, 's', "sql file", 0, "The select sql file.", 3},
{0, 'M', 0, 0, "Use metric flag.", 13},
{0, 'o', "outputfile", 0, "Direct output to the named file. Default is './output.txt'.", 14},
{0, 'q', "query_mode", 0, "Query mode--0: SYNC, 1: ASYNC. Default is SYNC.", 6},
{0, 'b', "type_of_cols", 0, "The data_type of columns: 'INT', 'TINYINT', 'SMALLINT', 'BIGINT', 'FLOAT', 'DOUBLE', 'BINARY'. Default is 'INT'.", 7},
{0, 'w', "length_of_binary", 0, "The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8", 8},
{0, 'l', "num_of_cols_per_record", 0, "The number of columns per record. Default is 3.", 8},
{0, 'T', "num_of_threads", 0, "The number of threads. Default is 10.", 9},
{0, 'r', "num_of_records_per_req", 0, "The number of records per request. Default is 1000.", 10},
{0, 't', "num_of_tables", 0, "The number of tables. Default is 10000.", 11},
{0, 'n', "num_of_records_per_table", 0, "The number of records per table. Default is 100000.", 12},
{0, 'c', "config_directory", 0, "Configuration directory. Default is '/etc/taos/'.", 14},
{0, 'x', 0, 0, "Insert only flag.", 13},
{0, 'O', "order", 0, "Insert mode--0: In order, 1: Out of order. Default is in order.", 14},
{0, 'R', "rate", 0, "Out of order data's rate--if order=1 Default 10, min: 0, max: 50.", 14},
{0, 'D', "delete table", 0, "Delete data methods——0: don't delete, 1: delete by table, 2: delete by stable, 3: delete by database", 14},
{0}};
/* Parse a single option. */
static error_t parse_opt(int key, char *arg, struct argp_state *state) {
/* Get the input argument from argp_parse, which we /* Get the input argument from argp_parse, which we
know is a pointer to our arguments structure. */ know is a pointer to our arguments structure. */
SDemoArguments *arguments = state->input; SDemoArguments *arguments = state->input;
...@@ -237,7 +245,174 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) { ...@@ -237,7 +245,174 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
return ARGP_ERR_UNKNOWN; return ARGP_ERR_UNKNOWN;
} }
return 0; return 0;
} }
static struct argp argp = {options, parse_opt, 0, 0};
void parse_args(int argc, char *argv[], SDemoArguments *arguments) {
argp_parse(&argp, argc, argv, 0, 0, &arguments);
if (arguments.abort) {
#ifndef _ALPINE
error(10, 0, "ABORTED");
#else
abort();
#endif
}
}
#else
void printHelp() {
char indent[10] = " ";
printf("%s%s\n", indent, "-h");
printf("%s%s%s\n", indent, indent, "host, The host to connect to TDEngine. Default is localhost.");
printf("%s%s\n", indent, "-p");
printf("%s%s%s\n", indent, indent, "port, The TCP/IP port number to use for the connection. Default is 0.");
printf("%s%s\n", indent, "-u");
printf("%s%s%s\n", indent, indent, "user, The TDEngine user name to use when connecting to the server. Default is 'root'.");
printf("%s%s\n", indent, "-p");
printf("%s%s%s\n", indent, indent, "password, The password to use when connecting to the server. Default is 'taosdata'.");
printf("%s%s\n", indent, "-d");
printf("%s%s%s\n", indent, indent, "database, Destination database. Default is 'test'.");
printf("%s%s\n", indent, "-m");
printf("%s%s%s\n", indent, indent, "table_prefix, Table prefix name. Default is 't'.");
printf("%s%s\n", indent, "-s");
printf("%s%s%s\n", indent, indent, "sql file, The select sql file.");
printf("%s%s\n", indent, "-M");
printf("%s%s%s\n", indent, indent, "meteric, Use metric flag.");
printf("%s%s\n", indent, "-o");
printf("%s%s%s\n", indent, indent, "outputfile, Direct output to the named file. Default is './output.txt'.");
printf("%s%s\n", indent, "-q");
printf("%s%s%s\n", indent, indent, "query_mode, Query mode--0: SYNC, 1: ASYNC. Default is SYNC.");
printf("%s%s\n", indent, "-b");
printf("%s%s%s\n", indent, indent, "type_of_cols, data_type of columns: 'INT', 'TINYINT', 'SMALLINT', 'BIGINT', 'FLOAT', 'DOUBLE', 'BINARY'. Default is 'INT'.");
printf("%s%s\n", indent, "-w");
printf("%s%s%s\n", indent, indent, "length_of_binary, The length of data_type 'BINARY'. Only applicable when type of cols is 'BINARY'. Default is 8");
printf("%s%s\n", indent, "-l");
printf("%s%s%s\n", indent, indent, "num_of_cols_per_record, The number of columns per record. Default is 3.");
printf("%s%s\n", indent, "-T");
printf("%s%s%s\n", indent, indent, "num_of_threads, The number of threads. Default is 10.");
printf("%s%s\n", indent, "-r");
printf("%s%s%s\n", indent, indent, "num_of_records_per_req, The number of records per request. Default is 1000.");
printf("%s%s\n", indent, "-t");
printf("%s%s%s\n", indent, indent, "num_of_tables, The number of tables. Default is 10000.");
printf("%s%s\n", indent, "-n");
printf("%s%s%s\n", indent, indent, "num_of_records_per_table, The number of records per table. Default is 100000.");
printf("%s%s\n", indent, "-c");
printf("%s%s%s\n", indent, indent, "config_directory, Configuration directory. Default is '/etc/taos/'.");
printf("%s%s\n", indent, "-x");
printf("%s%s%s\n", indent, indent, "flag, Insert only flag.");
printf("%s%s\n", indent, "-O");
printf("%s%s%s\n", indent, indent, "order, Insert mode--0: In order, 1: Out of order. Default is in order.");
printf("%s%s\n", indent, "-R");
printf("%s%s%s\n", indent, indent, "rate, Out of order data's rate--if order=1 Default 10, min: 0, max: 50.");
printf("%s%s\n", indent, "-D");
printf("%s%s%s\n", indent, indent, "Delete data methods——0: don't delete, 1: delete by table, 2: delete by stable, 3: delete by database.");
}
void parse_args(int argc, char *argv[], SDemoArguments *arguments) {
char **sptr;
for (int i = 1; i < argc; i++) {
if (strcmp(argv[i], "-h") == 0) {
arguments->host = argv[++i];
} else if (strcmp(argv[i], "-p") == 0) {
arguments->port = atoi(argv[++i]);
} else if (strcmp(argv[i], "-u") == 0) {
arguments->user = argv[++i];
} else if (strcmp(argv[i], "-P") == 0) {
arguments->password = argv[++i];
} else if (strcmp(argv[i], "-o") == 0) {
arguments->output_file = argv[++i];
} else if (strcmp(argv[i], "-s") == 0) {
arguments->sqlFile = argv[++i];
} else if (strcmp(argv[i], "-q") == 0) {
arguments->mode = atoi(argv[++i]);
} else if (strcmp(argv[i], "-T") == 0) {
arguments->num_of_threads = atoi(argv[++i]);
} else if (strcmp(argv[i], "-r") == 0) {
arguments->num_of_RPR = atoi(argv[++i]);
} else if (strcmp(argv[i], "-t") == 0) {
arguments->num_of_tables = atoi(argv[++i]);
} else if (strcmp(argv[i], "-n") == 0) {
arguments->num_of_DPT = atoi(argv[++i]);
} else if (strcmp(argv[i], "-d") == 0) {
arguments->database = argv[++i];
} else if (strcmp(argv[i], "-l") == 0) {
arguments->num_of_CPR = atoi(argv[++i]);
} else if (strcmp(argv[i], "-b") == 0) {
sptr = arguments->datatype;
++i;
if (strstr(argv[i], ",") == NULL) {
if (strcasecmp(argv[i], "INT") != 0 && strcasecmp(argv[i], "FLOAT") != 0 &&
strcasecmp(argv[i], "TINYINT") != 0 && strcasecmp(argv[i], "BOOL") != 0 &&
strcasecmp(argv[i], "SMALLINT") != 0 &&
strcasecmp(argv[i], "BIGINT") != 0 && strcasecmp(argv[i], "DOUBLE") != 0 &&
strcasecmp(argv[i], "BINARY") && strcasecmp(argv[i], "NCHAR")) {
fprintf(stderr, "Invalid data_type!\n");
printHelp();
exit(EXIT_FAILURE);
}
sptr[0] = argv[i];
} else {
int index = 0;
char *dupstr = strdup(argv[i]);
char *running = dupstr;
char *token = strsep(&running, ",");
while (token != NULL) {
if (strcasecmp(token, "INT") != 0 &&
strcasecmp(token, "FLOAT") != 0 &&
strcasecmp(token, "TINYINT") != 0 &&
strcasecmp(token, "BOOL") != 0 &&
strcasecmp(token, "SMALLINT") != 0 &&
strcasecmp(token, "BIGINT") != 0 &&
strcasecmp(token, "DOUBLE") != 0 && strcasecmp(token, "BINARY") && strcasecmp(token, "NCHAR")) {
fprintf(stderr, "Invalid data_type!\n");
printHelp();
exit(EXIT_FAILURE);
}
sptr[index++] = token;
token = strsep(&running, ",");
if (index >= MAX_NUM_DATATYPE) break;
}
}
} else if (strcmp(argv[i], "-w") == 0) {
arguments->len_of_binary = atoi(argv[++i]);
} else if (strcmp(argv[i], "-m") == 0) {
arguments->tb_prefix = argv[++i];
} else if (strcmp(argv[i], "-M") == 0) {
arguments->use_metric = false;
} else if (strcmp(argv[i], "-x") == 0) {
arguments->insert_only = false;
} else if (strcmp(argv[i], "-c") == 0) {
strcpy(configDir, argv[++i]);
} else if (strcmp(argv[i], "-O") == 0) {
arguments->order = atoi(argv[++i]);
if (arguments->order > 1 || arguments->order < 0) {
arguments->order = 0;
} else if (arguments->order == 1) {
arguments->rate = 10;
}
} else if (strcmp(argv[i], "-R") == 0) {
arguments->rate = atoi(argv[++i]);
if (arguments->order == 1 && (arguments->rate > 50 || arguments->rate <= 0)) {
arguments->rate = 10;
}
} else if (strcmp(argv[i], "-D") == 0) {
arguments->method_of_delete = atoi(argv[++i]);
if (arguments->method_of_delete < 0 || arguments->method_of_delete > 3) {
arguments->method_of_delete = 0;
}
} else if (strcmp(argv[i], "--help") == 0) {
printHelp();
exit(EXIT_FAILURE);
} else {
fprintf(stderr, "wrong options\n");
printHelp();
exit(EXIT_FAILURE);
}
}
}
#endif
/* ******************************* Structure /* ******************************* Structure
* definition******************************* */ * definition******************************* */
...@@ -293,9 +468,6 @@ typedef struct { ...@@ -293,9 +468,6 @@ typedef struct {
* variables******************************* */ * variables******************************* */
char *aggreFunc[] = {"*", "count(*)", "avg(f1)", "sum(f1)", "max(f1)", "min(f1)", "first(f1)", "last(f1)"}; char *aggreFunc[] = {"*", "count(*)", "avg(f1)", "sum(f1)", "max(f1)", "min(f1)", "first(f1)", "last(f1)"};
/* ******************************* Global
* functions******************************* */
static struct argp argp = {options, parse_opt, 0, 0};
void queryDB(TAOS *taos, char *command); void queryDB(TAOS *taos, char *command);
...@@ -368,15 +540,7 @@ int main(int argc, char *argv[]) { ...@@ -368,15 +540,7 @@ int main(int argc, char *argv[]) {
arguments.insert_only = true; arguments.insert_only = true;
// end change // end change
argp_parse(&argp, argc, argv, 0, 0, &arguments); parse_args(argc, argv, &arguments);
if (arguments.abort) {
#ifndef _ALPINE
error(10, 0, "ABORTED");
#else
abort();
#endif
}
enum MODE query_mode = arguments.mode; enum MODE query_mode = arguments.mode;
char *ip_addr = arguments.host; char *ip_addr = arguments.host;
...@@ -438,7 +602,7 @@ int main(int argc, char *argv[]) { ...@@ -438,7 +602,7 @@ int main(int argc, char *argv[]) {
printf("# Use metric: %s\n", use_metric ? "true" : "false"); printf("# Use metric: %s\n", use_metric ? "true" : "false");
printf("# Datatype of Columns: %s\n", dataString); printf("# Datatype of Columns: %s\n", dataString);
printf("# Binary Length(If applicable): %d\n", printf("# Binary Length(If applicable): %d\n",
(strcasestr(dataString, "BINARY") != NULL || strcasestr(dataString, "NCHAR") != NULL ) ? len_of_binary : -1); (strncasecmp(dataString, "BINARY", 6) == 0 || strncasecmp(dataString, "NCHAR", 5) == 0) ? len_of_binary : -1);
printf("# Number of Columns per record: %d\n", ncols_per_record); printf("# Number of Columns per record: %d\n", ncols_per_record);
printf("# Number of Threads: %d\n", threads); printf("# Number of Threads: %d\n", threads);
printf("# Number of Tables: %d\n", ntables); printf("# Number of Tables: %d\n", ntables);
...@@ -466,7 +630,7 @@ int main(int argc, char *argv[]) { ...@@ -466,7 +630,7 @@ int main(int argc, char *argv[]) {
fprintf(fp, "# Use metric: %s\n", use_metric ? "true" : "false"); fprintf(fp, "# Use metric: %s\n", use_metric ? "true" : "false");
fprintf(fp, "# Datatype of Columns: %s\n", dataString); fprintf(fp, "# Datatype of Columns: %s\n", dataString);
fprintf(fp, "# Binary Length(If applicable): %d\n", fprintf(fp, "# Binary Length(If applicable): %d\n",
(strcasestr(dataString, "BINARY") != NULL || strcasestr(dataString, "NCHAR") != NULL ) ? len_of_binary : -1); (strncasecmp(dataString, "BINARY", 6) == 0 || strncasecmp(dataString, "NCHAR", 5) == 0) ? len_of_binary : -1);
fprintf(fp, "# Number of Columns per record: %d\n", ncols_per_record); fprintf(fp, "# Number of Columns per record: %d\n", ncols_per_record);
fprintf(fp, "# Number of Threads: %d\n", threads); fprintf(fp, "# Number of Threads: %d\n", threads);
fprintf(fp, "# Number of Tables: %d\n", ntables); fprintf(fp, "# Number of Tables: %d\n", ntables);
...@@ -753,7 +917,7 @@ void querySqlFile(TAOS* taos, char* sqlFile) ...@@ -753,7 +917,7 @@ void querySqlFile(TAOS* taos, char* sqlFile)
double t = getCurrentTime(); double t = getCurrentTime();
while ((read_len = getline(&line, &line_len, fp)) != -1) { while ((read_len = taosGetline(&line, &line_len, fp)) != -1) {
if (read_len >= MAX_SQL_SIZE) continue; if (read_len >= MAX_SQL_SIZE) continue;
line[--read_len] = '\0'; line[--read_len] = '\0';
...@@ -1035,7 +1199,7 @@ void *syncWrite(void *sarg) { ...@@ -1035,7 +1199,7 @@ void *syncWrite(void *sarg) {
char **data_type = winfo->datatype; char **data_type = winfo->datatype;
int len_of_binary = winfo->len_of_binary; int len_of_binary = winfo->len_of_binary;
int ncols_per_record = winfo->ncols_per_record; int ncols_per_record = winfo->ncols_per_record;
srand(time(NULL)); srand((uint32_t)time(NULL));
int64_t time_counter = winfo->start_time; int64_t time_counter = winfo->start_time;
for (int i = 0; i < winfo->nrecords_per_table;) { for (int i = 0; i < winfo->nrecords_per_table;) {
for (int tID = winfo->start_table_id; tID <= winfo->end_table_id; tID++) { for (int tID = winfo->start_table_id; tID <= winfo->end_table_id; tID++) {
...@@ -1049,7 +1213,7 @@ void *syncWrite(void *sarg) { ...@@ -1049,7 +1213,7 @@ void *syncWrite(void *sarg) {
int rand_num = rand() % 100; int rand_num = rand() % 100;
int len = -1; int len = -1;
if (winfo->data_of_order ==1 && rand_num < winfo->data_of_rate) { if (winfo->data_of_order ==1 && rand_num < winfo->data_of_rate) {
long d = tmp_time - rand() % 1000000 + rand_num; int64_t d = tmp_time - rand() % 1000000 + rand_num;
len = generateData(data, data_type, ncols_per_record, d, len_of_binary); len = generateData(data, data_type, ncols_per_record, d, len_of_binary);
} else { } else {
len = generateData(data, data_type, ncols_per_record, tmp_time += 1000, len_of_binary); len = generateData(data, data_type, ncols_per_record, tmp_time += 1000, len_of_binary);
...@@ -1144,7 +1308,7 @@ void callBack(void *param, TAOS_RES *res, int code) { ...@@ -1144,7 +1308,7 @@ void callBack(void *param, TAOS_RES *res, int code) {
int rand_num = rand() % 100; int rand_num = rand() % 100;
if (tb_info->data_of_order ==1 && rand_num < tb_info->data_of_rate) if (tb_info->data_of_order ==1 && rand_num < tb_info->data_of_rate)
{ {
long d = tmp_time - rand() % 1000000 + rand_num; int64_t d = tmp_time - rand() % 1000000 + rand_num;
generateData(data, datatype, ncols_per_record, d, len_of_binary); generateData(data, datatype, ncols_per_record, d, len_of_binary);
} else } else
{ {
...@@ -1269,13 +1433,15 @@ int32_t generateData(char *res, char **data_type, int num_of_cols, int64_t times ...@@ -1269,13 +1433,15 @@ int32_t generateData(char *res, char **data_type, int num_of_cols, int64_t times
bool b = rand() & 1; bool b = rand() & 1;
pstr += sprintf(pstr, ", %s", b ? "true" : "false"); pstr += sprintf(pstr, ", %s", b ? "true" : "false");
} else if (strcasecmp(data_type[i % c], "binary") == 0) { } else if (strcasecmp(data_type[i % c], "binary") == 0) {
char s[len_of_binary]; char *s = malloc(len_of_binary);
rand_string(s, len_of_binary); rand_string(s, len_of_binary);
pstr += sprintf(pstr, ", \"%s\"", s); pstr += sprintf(pstr, ", \"%s\"", s);
free(s);
}else if (strcasecmp(data_type[i % c], "nchar") == 0) { }else if (strcasecmp(data_type[i % c], "nchar") == 0) {
char s[len_of_binary]; char *s = malloc(len_of_binary);
rand_string(s, len_of_binary); rand_string(s, len_of_binary);
pstr += sprintf(pstr, ", \"%s\"", s); pstr += sprintf(pstr, ", \"%s\"", s);
free(s);
} }
if (pstr - res > MAX_DATA_SIZE) { if (pstr - res > MAX_DATA_SIZE) {
...@@ -1286,7 +1452,7 @@ int32_t generateData(char *res, char **data_type, int num_of_cols, int64_t times ...@@ -1286,7 +1452,7 @@ int32_t generateData(char *res, char **data_type, int num_of_cols, int64_t times
pstr += sprintf(pstr, ")"); pstr += sprintf(pstr, ")");
return pstr - res; return (int32_t)(pstr - res);
} }
static const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJK1234567890"; static const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJK1234567890";
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include "msvcProcess.h" #include "msvcProcess.h"
#include "msvcDirect.h" #include "msvcDirect.h"
#include "msvcFcntl.h" #include "msvcFcntl.h"
#include "msvcStdio.h"
#include "sys/msvcStat.h" #include "sys/msvcStat.h"
#include "sys/msvcTypes.h" #include "sys/msvcTypes.h"
......
...@@ -4,10 +4,6 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc) ...@@ -4,10 +4,6 @@ INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/client/inc)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/cJson/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/cJson/inc)
INCLUDE_DIRECTORIES(inc) INCLUDE_DIRECTORIES(inc)
IF (TD_WINDOWS)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/pthread)
ENDIF ()
AUX_SOURCE_DIRECTORY(src SRC) AUX_SOURCE_DIRECTORY(src SRC)
ADD_EXECUTABLE(tsim ${SRC}) ADD_EXECUTABLE(tsim ${SRC})
TARGET_LINK_LIBRARIES(tsim taos_static trpc tutil pthread cJson) TARGET_LINK_LIBRARIES(tsim taos_static trpc tutil pthread cJson)
...@@ -313,7 +313,9 @@ bool simExecuteSystemCmd(SScript *script, char *option) { ...@@ -313,7 +313,9 @@ bool simExecuteSystemCmd(SScript *script, char *option) {
simError("script:%s, failed to execute %s , code %d, errno:%d %s, repeatTimes:%d", simError("script:%s, failed to execute %s , code %d, errno:%d %s, repeatTimes:%d",
script->fileName, buf, code, errno, strerror(errno), repeatTimes); script->fileName, buf, code, errno, strerror(errno), repeatTimes);
taosMsleep(1000); taosMsleep(1000);
#ifdef LINUX
signal(SIGCHLD, SIG_DFL); signal(SIGCHLD, SIG_DFL);
#endif
if (repeatTimes++ >= 10) { if (repeatTimes++ >= 10) {
exit(0); exit(0);
} }
...@@ -418,14 +420,14 @@ void simVisuallizeOption(SScript *script, char *src, char *dst) { ...@@ -418,14 +420,14 @@ void simVisuallizeOption(SScript *script, char *src, char *dst) {
var = strchr(src, '$'); var = strchr(src, '$');
if (var == NULL) break; if (var == NULL) break;
if (var && ((var - src - 1) > 0) && *(var - 1) == '\\') { if (var && ((var - src - 1) > 0) && *(var - 1) == '\\') {
srcLen = var - src - 1; srcLen = (int)(var - src - 1);
memcpy(dst + dstLen, src, srcLen); memcpy(dst + dstLen, src, srcLen);
dstLen += srcLen; dstLen += srcLen;
src = var; src = var;
break; break;
} }
srcLen = var - src; srcLen = (int)(var - src);
memcpy(dst + dstLen, src, srcLen); memcpy(dst + dstLen, src, srcLen);
dstLen += srcLen; dstLen += srcLen;
...@@ -433,7 +435,7 @@ void simVisuallizeOption(SScript *script, char *src, char *dst) { ...@@ -433,7 +435,7 @@ void simVisuallizeOption(SScript *script, char *src, char *dst) {
value = simGetVariable(script, token, tokenLen); value = simGetVariable(script, token, tokenLen);
strcpy(dst + dstLen, value); strcpy(dst + dstLen, value);
dstLen += strlen(value); dstLen += (int)strlen(value);
} }
strcpy(dst + dstLen, src); strcpy(dst + dstLen, src);
...@@ -455,9 +457,9 @@ void simCloseNativeConnect(SScript *script) { ...@@ -455,9 +457,9 @@ void simCloseNativeConnect(SScript *script) {
void simCloseTaosdConnect(SScript *script) { void simCloseTaosdConnect(SScript *script) {
if (simAsyncQuery) { if (simAsyncQuery) {
return simCloseRestFulConnect(script); simCloseRestFulConnect(script);
} else { } else {
return simCloseNativeConnect(script); simCloseNativeConnect(script);
} }
} }
// {"status":"succ","code":0,"desc":"/KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04"} // {"status":"succ","code":0,"desc":"/KfeAzX/f9na8qdtNZmtONryp201ma04bEl8LcvLUd7a8qdtNZmtONryp201ma04"}
...@@ -575,7 +577,7 @@ int simExecuteRestFulCommand(SScript *script, char *command) { ...@@ -575,7 +577,7 @@ int simExecuteRestFulCommand(SScript *script, char *command) {
while (!feof(fp)) { while (!feof(fp)) {
int availSize = mallocSize - alreadyReadSize; int availSize = mallocSize - alreadyReadSize;
int len = fread(content + alreadyReadSize, 1, availSize, fp); int len = (int)fread(content + alreadyReadSize, 1, availSize, fp);
if (len >= availSize) { if (len >= availSize) {
alreadyReadSize += len; alreadyReadSize += len;
mallocSize *= 2; mallocSize *= 2;
......
...@@ -105,7 +105,7 @@ void simAddCmdIntoHash(SCommand *pCmd) { ...@@ -105,7 +105,7 @@ void simAddCmdIntoHash(SCommand *pCmd) {
int hash; int hash;
SCommand *node; SCommand *node;
hash = simHashCmd(pCmd->name, strlen(pCmd->name)); hash = simHashCmd(pCmd->name, (int)strlen(pCmd->name));
node = cmdHashList[hash]; node = cmdHashList[hash];
pCmd->next = node; pCmd->next = node;
cmdHashList[hash] = pCmd; cmdHashList[hash] = pCmd;
...@@ -199,7 +199,7 @@ SScript *simParseScript(char *fileName) { ...@@ -199,7 +199,7 @@ SScript *simParseScript(char *fileName) {
if (fgets(buffer, sizeof(buffer), fd) == NULL) continue; if (fgets(buffer, sizeof(buffer), fd) == NULL) continue;
lineNum++; lineNum++;
int cmdlen = strlen(buffer); int cmdlen = (int)strlen(buffer);
if (buffer[cmdlen - 1] == '\r' || buffer[cmdlen - 1] == '\n') if (buffer[cmdlen - 1] == '\r' || buffer[cmdlen - 1] == '\n')
buffer[cmdlen - 1] = 0; buffer[cmdlen - 1] = 0;
rest = buffer; rest = buffer;
...@@ -294,10 +294,10 @@ int simCheckExpression(char *exp) { ...@@ -294,10 +294,10 @@ int simCheckExpression(char *exp) {
rest = paGetToken(rest, &op, &opLen); rest = paGetToken(rest, &op, &opLen);
if (opLen == 0) return rest - exp; if (opLen == 0) return (int)(rest - exp);
/* if it is key word "then" */ /* if it is key word "then" */
if (strncmp(op, "then", 4) == 0) return op - exp; if (strncmp(op, "then", 4) == 0) return (int)(op - exp);
rest = paGetToken(rest, &op2, &op2Len); rest = paGetToken(rest, &op2, &op2Len);
if (op2Len == 0) { if (op2Len == 0) {
...@@ -312,7 +312,7 @@ int simCheckExpression(char *exp) { ...@@ -312,7 +312,7 @@ int simCheckExpression(char *exp) {
if (op[0] == '+' || op[0] == '-' || op[0] == '*' || op[0] == '/' || if (op[0] == '+' || op[0] == '-' || op[0] == '*' || op[0] == '/' ||
op[0] == '.') { op[0] == '.') {
return rest - exp; return (int)(rest - exp);
} }
return -1; return -1;
...@@ -655,7 +655,7 @@ bool simParsePrintCmd(char *rest, SCommand *pCmd, int lineNum) { ...@@ -655,7 +655,7 @@ bool simParsePrintCmd(char *rest, SCommand *pCmd, int lineNum) {
cmdLine[numOfLines].cmdno = SIM_CMD_PRINT; cmdLine[numOfLines].cmdno = SIM_CMD_PRINT;
cmdLine[numOfLines].lineNum = lineNum; cmdLine[numOfLines].lineNum = lineNum;
cmdLine[numOfLines].optionOffset = optionOffset; cmdLine[numOfLines].optionOffset = optionOffset;
expLen = strlen(rest); expLen = (int)strlen(rest);
memcpy(optionBuffer + optionOffset, rest, expLen); memcpy(optionBuffer + optionOffset, rest, expLen);
optionOffset += expLen + 1; optionOffset += expLen + 1;
*(optionBuffer + optionOffset - 1) = 0; *(optionBuffer + optionOffset - 1) = 0;
...@@ -690,7 +690,7 @@ bool simParseSqlCmd(char *rest, SCommand *pCmd, int lineNum) { ...@@ -690,7 +690,7 @@ bool simParseSqlCmd(char *rest, SCommand *pCmd, int lineNum) {
cmdLine[numOfLines].cmdno = SIM_CMD_SQL; cmdLine[numOfLines].cmdno = SIM_CMD_SQL;
cmdLine[numOfLines].lineNum = lineNum; cmdLine[numOfLines].lineNum = lineNum;
cmdLine[numOfLines].optionOffset = optionOffset; cmdLine[numOfLines].optionOffset = optionOffset;
expLen = strlen(rest); expLen = (int)strlen(rest);
memcpy(optionBuffer + optionOffset, rest, expLen); memcpy(optionBuffer + optionOffset, rest, expLen);
optionOffset += expLen + 1; optionOffset += expLen + 1;
*(optionBuffer + optionOffset - 1) = 0; *(optionBuffer + optionOffset - 1) = 0;
...@@ -706,7 +706,7 @@ bool simParseSqlErrorCmd(char *rest, SCommand *pCmd, int lineNum) { ...@@ -706,7 +706,7 @@ bool simParseSqlErrorCmd(char *rest, SCommand *pCmd, int lineNum) {
cmdLine[numOfLines].cmdno = SIM_CMD_SQL_ERROR; cmdLine[numOfLines].cmdno = SIM_CMD_SQL_ERROR;
cmdLine[numOfLines].lineNum = lineNum; cmdLine[numOfLines].lineNum = lineNum;
cmdLine[numOfLines].optionOffset = optionOffset; cmdLine[numOfLines].optionOffset = optionOffset;
expLen = strlen(rest); expLen = (int)strlen(rest);
memcpy(optionBuffer + optionOffset, rest, expLen); memcpy(optionBuffer + optionOffset, rest, expLen);
optionOffset += expLen + 1; optionOffset += expLen + 1;
*(optionBuffer + optionOffset - 1) = 0; *(optionBuffer + optionOffset - 1) = 0;
...@@ -728,7 +728,7 @@ bool simParseSystemCmd(char *rest, SCommand *pCmd, int lineNum) { ...@@ -728,7 +728,7 @@ bool simParseSystemCmd(char *rest, SCommand *pCmd, int lineNum) {
cmdLine[numOfLines].cmdno = SIM_CMD_SYSTEM; cmdLine[numOfLines].cmdno = SIM_CMD_SYSTEM;
cmdLine[numOfLines].lineNum = lineNum; cmdLine[numOfLines].lineNum = lineNum;
cmdLine[numOfLines].optionOffset = optionOffset; cmdLine[numOfLines].optionOffset = optionOffset;
expLen = strlen(rest); expLen = (int)strlen(rest);
memcpy(optionBuffer + optionOffset, rest, expLen); memcpy(optionBuffer + optionOffset, rest, expLen);
optionOffset += expLen + 1; optionOffset += expLen + 1;
*(optionBuffer + optionOffset - 1) = 0; *(optionBuffer + optionOffset - 1) = 0;
...@@ -840,14 +840,14 @@ void simInitsimCmdList() { ...@@ -840,14 +840,14 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_EXP; cmdno = SIM_CMD_EXP;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "exp"); strcpy(simCmdList[cmdno].name, "exp");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = NULL; simCmdList[cmdno].parseCmd = NULL;
simCmdList[cmdno].executeCmd = simExecuteExpCmd; simCmdList[cmdno].executeCmd = simExecuteExpCmd;
cmdno = SIM_CMD_IF; cmdno = SIM_CMD_IF;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "if"); strcpy(simCmdList[cmdno].name, "if");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseIfCmd; simCmdList[cmdno].parseCmd = simParseIfCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -855,7 +855,7 @@ void simInitsimCmdList() { ...@@ -855,7 +855,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_ELIF; cmdno = SIM_CMD_ELIF;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "elif"); strcpy(simCmdList[cmdno].name, "elif");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseElifCmd; simCmdList[cmdno].parseCmd = simParseElifCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -863,7 +863,7 @@ void simInitsimCmdList() { ...@@ -863,7 +863,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_ELSE; cmdno = SIM_CMD_ELSE;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "else"); strcpy(simCmdList[cmdno].name, "else");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseElseCmd; simCmdList[cmdno].parseCmd = simParseElseCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -871,7 +871,7 @@ void simInitsimCmdList() { ...@@ -871,7 +871,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_ENDI; cmdno = SIM_CMD_ENDI;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "endi"); strcpy(simCmdList[cmdno].name, "endi");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseEndiCmd; simCmdList[cmdno].parseCmd = simParseEndiCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -879,7 +879,7 @@ void simInitsimCmdList() { ...@@ -879,7 +879,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_WHILE; cmdno = SIM_CMD_WHILE;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "while"); strcpy(simCmdList[cmdno].name, "while");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseWhileCmd; simCmdList[cmdno].parseCmd = simParseWhileCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -887,7 +887,7 @@ void simInitsimCmdList() { ...@@ -887,7 +887,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_ENDW; cmdno = SIM_CMD_ENDW;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "endw"); strcpy(simCmdList[cmdno].name, "endw");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseEndwCmd; simCmdList[cmdno].parseCmd = simParseEndwCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -895,7 +895,7 @@ void simInitsimCmdList() { ...@@ -895,7 +895,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SWITCH; cmdno = SIM_CMD_SWITCH;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "switch"); strcpy(simCmdList[cmdno].name, "switch");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSwitchCmd; simCmdList[cmdno].parseCmd = simParseSwitchCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -903,7 +903,7 @@ void simInitsimCmdList() { ...@@ -903,7 +903,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_CASE; cmdno = SIM_CMD_CASE;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "case"); strcpy(simCmdList[cmdno].name, "case");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseCaseCmd; simCmdList[cmdno].parseCmd = simParseCaseCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -911,7 +911,7 @@ void simInitsimCmdList() { ...@@ -911,7 +911,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_DEFAULT; cmdno = SIM_CMD_DEFAULT;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "default"); strcpy(simCmdList[cmdno].name, "default");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseDefaultCmd; simCmdList[cmdno].parseCmd = simParseDefaultCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -919,7 +919,7 @@ void simInitsimCmdList() { ...@@ -919,7 +919,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_BREAK; cmdno = SIM_CMD_BREAK;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "break"); strcpy(simCmdList[cmdno].name, "break");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseBreakCmd; simCmdList[cmdno].parseCmd = simParseBreakCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -927,7 +927,7 @@ void simInitsimCmdList() { ...@@ -927,7 +927,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_CONTINUE; cmdno = SIM_CMD_CONTINUE;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "continue"); strcpy(simCmdList[cmdno].name, "continue");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseContinueCmd; simCmdList[cmdno].parseCmd = simParseContinueCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -935,7 +935,7 @@ void simInitsimCmdList() { ...@@ -935,7 +935,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_ENDS; cmdno = SIM_CMD_ENDS;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "ends"); strcpy(simCmdList[cmdno].name, "ends");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseEndsCmd; simCmdList[cmdno].parseCmd = simParseEndsCmd;
simCmdList[cmdno].executeCmd = NULL; simCmdList[cmdno].executeCmd = NULL;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -943,7 +943,7 @@ void simInitsimCmdList() { ...@@ -943,7 +943,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SLEEP; cmdno = SIM_CMD_SLEEP;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "sleep"); strcpy(simCmdList[cmdno].name, "sleep");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSleepCmd; simCmdList[cmdno].parseCmd = simParseSleepCmd;
simCmdList[cmdno].executeCmd = simExecuteSleepCmd; simCmdList[cmdno].executeCmd = simExecuteSleepCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -951,7 +951,7 @@ void simInitsimCmdList() { ...@@ -951,7 +951,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_GOTO; cmdno = SIM_CMD_GOTO;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "goto"); strcpy(simCmdList[cmdno].name, "goto");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseGotoCmd; simCmdList[cmdno].parseCmd = simParseGotoCmd;
simCmdList[cmdno].executeCmd = simExecuteGotoCmd; simCmdList[cmdno].executeCmd = simExecuteGotoCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -959,7 +959,7 @@ void simInitsimCmdList() { ...@@ -959,7 +959,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_RUN; cmdno = SIM_CMD_RUN;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "run"); strcpy(simCmdList[cmdno].name, "run");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseRunCmd; simCmdList[cmdno].parseCmd = simParseRunCmd;
simCmdList[cmdno].executeCmd = simExecuteRunCmd; simCmdList[cmdno].executeCmd = simExecuteRunCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -967,7 +967,7 @@ void simInitsimCmdList() { ...@@ -967,7 +967,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_RUN_BACK; cmdno = SIM_CMD_RUN_BACK;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "run_back"); strcpy(simCmdList[cmdno].name, "run_back");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseRunBackCmd; simCmdList[cmdno].parseCmd = simParseRunBackCmd;
simCmdList[cmdno].executeCmd = simExecuteRunBackCmd; simCmdList[cmdno].executeCmd = simExecuteRunBackCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -975,7 +975,7 @@ void simInitsimCmdList() { ...@@ -975,7 +975,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SYSTEM; cmdno = SIM_CMD_SYSTEM;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "system"); strcpy(simCmdList[cmdno].name, "system");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSystemCmd; simCmdList[cmdno].parseCmd = simParseSystemCmd;
simCmdList[cmdno].executeCmd = simExecuteSystemCmd; simCmdList[cmdno].executeCmd = simExecuteSystemCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -983,7 +983,7 @@ void simInitsimCmdList() { ...@@ -983,7 +983,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SYSTEM_CONTENT; cmdno = SIM_CMD_SYSTEM_CONTENT;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "system_content"); strcpy(simCmdList[cmdno].name, "system_content");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSystemContentCmd; simCmdList[cmdno].parseCmd = simParseSystemContentCmd;
simCmdList[cmdno].executeCmd = simExecuteSystemContentCmd; simCmdList[cmdno].executeCmd = simExecuteSystemContentCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -991,7 +991,7 @@ void simInitsimCmdList() { ...@@ -991,7 +991,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_PRINT; cmdno = SIM_CMD_PRINT;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "print"); strcpy(simCmdList[cmdno].name, "print");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParsePrintCmd; simCmdList[cmdno].parseCmd = simParsePrintCmd;
simCmdList[cmdno].executeCmd = simExecutePrintCmd; simCmdList[cmdno].executeCmd = simExecutePrintCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -999,7 +999,7 @@ void simInitsimCmdList() { ...@@ -999,7 +999,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SQL; cmdno = SIM_CMD_SQL;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "sql"); strcpy(simCmdList[cmdno].name, "sql");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSqlCmd; simCmdList[cmdno].parseCmd = simParseSqlCmd;
simCmdList[cmdno].executeCmd = simExecuteSqlCmd; simCmdList[cmdno].executeCmd = simExecuteSqlCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -1007,7 +1007,7 @@ void simInitsimCmdList() { ...@@ -1007,7 +1007,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SQL_ERROR; cmdno = SIM_CMD_SQL_ERROR;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "sql_error"); strcpy(simCmdList[cmdno].name, "sql_error");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSqlErrorCmd; simCmdList[cmdno].parseCmd = simParseSqlErrorCmd;
simCmdList[cmdno].executeCmd = simExecuteSqlErrorCmd; simCmdList[cmdno].executeCmd = simExecuteSqlErrorCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -1015,7 +1015,7 @@ void simInitsimCmdList() { ...@@ -1015,7 +1015,7 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_SQL_SLOW; cmdno = SIM_CMD_SQL_SLOW;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "sql_slow"); strcpy(simCmdList[cmdno].name, "sql_slow");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseSqlSlowCmd; simCmdList[cmdno].parseCmd = simParseSqlSlowCmd;
simCmdList[cmdno].executeCmd = simExecuteSqlSlowCmd; simCmdList[cmdno].executeCmd = simExecuteSqlSlowCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
...@@ -1024,14 +1024,14 @@ void simInitsimCmdList() { ...@@ -1024,14 +1024,14 @@ void simInitsimCmdList() {
cmdno = SIM_CMD_TEST; cmdno = SIM_CMD_TEST;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "test"); strcpy(simCmdList[cmdno].name, "test");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = NULL; simCmdList[cmdno].parseCmd = NULL;
simCmdList[cmdno].executeCmd = simExecuteTestCmd; simCmdList[cmdno].executeCmd = simExecuteTestCmd;
cmdno = SIM_CMD_RETURN; cmdno = SIM_CMD_RETURN;
simCmdList[cmdno].cmdno = cmdno; simCmdList[cmdno].cmdno = cmdno;
strcpy(simCmdList[cmdno].name, "return"); strcpy(simCmdList[cmdno].name, "return");
simCmdList[cmdno].nlen = strlen(simCmdList[cmdno].name); simCmdList[cmdno].nlen = (int)strlen(simCmdList[cmdno].name);
simCmdList[cmdno].parseCmd = simParseReturnCmd; simCmdList[cmdno].parseCmd = simParseReturnCmd;
simCmdList[cmdno].executeCmd = simExecuteReturnCmd; simCmdList[cmdno].executeCmd = simExecuteReturnCmd;
simAddCmdIntoHash(&(simCmdList[cmdno])); simAddCmdIntoHash(&(simCmdList[cmdno]));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册