commit
eed660cc58
|
@ -41,14 +41,13 @@
|
||||||
// dynamic config timestamp width according to maximum time precision
|
// dynamic config timestamp width according to maximum time precision
|
||||||
extern int32_t TIMESTAMP_OUTPUT_LENGTH;
|
extern int32_t TIMESTAMP_OUTPUT_LENGTH;
|
||||||
|
|
||||||
typedef struct History History;
|
typedef struct SShellHistory {
|
||||||
struct History {
|
|
||||||
char* hist[MAX_HISTORY_SIZE];
|
char* hist[MAX_HISTORY_SIZE];
|
||||||
int hstart;
|
int hstart;
|
||||||
int hend;
|
int hend;
|
||||||
};
|
} SShellHistory;
|
||||||
|
|
||||||
struct arguments {
|
typedef struct SShellArguments {
|
||||||
char* host;
|
char* host;
|
||||||
char* password;
|
char* password;
|
||||||
char* user;
|
char* user;
|
||||||
|
@ -62,11 +61,11 @@ struct arguments {
|
||||||
char* commands;
|
char* commands;
|
||||||
int abort;
|
int abort;
|
||||||
int port;
|
int port;
|
||||||
};
|
} SShellArguments;
|
||||||
|
|
||||||
/**************** Function declarations ****************/
|
/**************** Function declarations ****************/
|
||||||
extern void shellParseArgument(int argc, char* argv[], struct arguments* arguments);
|
extern void shellParseArgument(int argc, char* argv[], SShellArguments* arguments);
|
||||||
extern TAOS* shellInit(struct arguments* args);
|
extern TAOS* shellInit(SShellArguments* args);
|
||||||
extern void* shellLoopQuery(void* arg);
|
extern void* shellLoopQuery(void* arg);
|
||||||
extern void taos_error(TAOS* con);
|
extern void taos_error(TAOS* con);
|
||||||
extern int regex_match(const char* s, const char* reg, int cflags);
|
extern int regex_match(const char* s, const char* reg, int cflags);
|
||||||
|
@ -76,7 +75,7 @@ void shellRunCommandOnServer(TAOS* con, char command[]);
|
||||||
void read_history();
|
void read_history();
|
||||||
void write_history();
|
void write_history();
|
||||||
void source_file(TAOS* con, char* fptr);
|
void source_file(TAOS* con, char* fptr);
|
||||||
void source_dir(TAOS* con, struct arguments* args);
|
void source_dir(TAOS* con, SShellArguments* args);
|
||||||
void get_history_path(char* history);
|
void get_history_path(char* history);
|
||||||
void cleanup_handler(void* arg);
|
void cleanup_handler(void* arg);
|
||||||
void exitShell();
|
void exitShell();
|
||||||
|
@ -89,12 +88,12 @@ int isCommentLine(char *line);
|
||||||
extern char PROMPT_HEADER[];
|
extern char PROMPT_HEADER[];
|
||||||
extern char CONTINUE_PROMPT[];
|
extern char CONTINUE_PROMPT[];
|
||||||
extern int prompt_size;
|
extern int prompt_size;
|
||||||
extern History history;
|
extern SShellHistory history;
|
||||||
extern struct termios oldtio;
|
extern struct termios oldtio;
|
||||||
extern void set_terminal_mode();
|
extern void set_terminal_mode();
|
||||||
extern int get_old_terminal_mode(struct termios* tio);
|
extern int get_old_terminal_mode(struct termios* tio);
|
||||||
extern void reset_terminal_mode();
|
extern void reset_terminal_mode();
|
||||||
extern struct arguments args;
|
extern SShellArguments args;
|
||||||
extern TAOS_RES* result;
|
extern TAOS_RES* result;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,12 +33,12 @@ char PROMPT_HEADER[] = "taos> ";
|
||||||
char CONTINUE_PROMPT[] = " -> ";
|
char CONTINUE_PROMPT[] = " -> ";
|
||||||
int prompt_size = 6;
|
int prompt_size = 6;
|
||||||
TAOS_RES *result = NULL;
|
TAOS_RES *result = NULL;
|
||||||
History history;
|
SShellHistory history;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Initialize the shell.
|
* FUNCTION: Initialize the shell.
|
||||||
*/
|
*/
|
||||||
TAOS *shellInit(struct arguments *args) {
|
TAOS *shellInit(SShellArguments *args) {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf(CLIENT_VERSION, tsOsName, taos_get_client_info());
|
printf(CLIENT_VERSION, tsOsName, taos_get_client_info());
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
|
@ -221,7 +221,7 @@ void* shellImportThreadFp(void *arg)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void shellRunImportThreads(struct arguments* args)
|
static void shellRunImportThreads(SShellArguments* args)
|
||||||
{
|
{
|
||||||
pthread_attr_t thattr;
|
pthread_attr_t thattr;
|
||||||
ShellThreadObj *threadObj = (ShellThreadObj *)calloc(args->threadNum, sizeof(ShellThreadObj));
|
ShellThreadObj *threadObj = (ShellThreadObj *)calloc(args->threadNum, sizeof(ShellThreadObj));
|
||||||
|
@ -254,7 +254,7 @@ static void shellRunImportThreads(struct arguments* args)
|
||||||
free(threadObj);
|
free(threadObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
void source_dir(TAOS* con, struct arguments* args) {
|
void source_dir(TAOS* con, SShellArguments* args) {
|
||||||
shellGetDirectoryFileList(args->dir);
|
shellGetDirectoryFileList(args->dir);
|
||||||
int64_t start = taosGetTimestampMs();
|
int64_t start = taosGetTimestampMs();
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ static struct argp_option options[] = {
|
||||||
static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
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. */
|
||||||
struct arguments *arguments = state->input;
|
SShellArguments *arguments = state->input;
|
||||||
wordexp_t full_path;
|
wordexp_t full_path;
|
||||||
|
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
@ -129,7 +129,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
||||||
/* Our argp parser. */
|
/* Our argp parser. */
|
||||||
static struct argp argp = {options, parse_opt, args_doc, doc};
|
static struct argp argp = {options, parse_opt, args_doc, doc};
|
||||||
|
|
||||||
void shellParseArgument(int argc, char *argv[], struct arguments *arguments) {
|
void shellParseArgument(int argc, char *argv[], SShellArguments *arguments) {
|
||||||
static char verType[32] = {0};
|
static char verType[32] = {0};
|
||||||
sprintf(verType, "version: %s\n", version);
|
sprintf(verType, "version: %s\n", version);
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ int checkVersion() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Global configurations
|
// Global configurations
|
||||||
struct arguments args = {
|
SShellArguments args = {
|
||||||
.host = NULL,
|
.host = NULL,
|
||||||
.password = NULL,
|
.password = NULL,
|
||||||
.user = NULL,
|
.user = NULL,
|
||||||
|
|
|
@ -67,7 +67,7 @@ static struct argp_option options[] = {
|
||||||
{0}};
|
{0}};
|
||||||
|
|
||||||
/* Used by main to communicate with parse_opt. */
|
/* Used by main to communicate with parse_opt. */
|
||||||
struct arguments {
|
typedef struct DemoArguments {
|
||||||
char *host;
|
char *host;
|
||||||
uint16_t port;
|
uint16_t port;
|
||||||
char *user;
|
char *user;
|
||||||
|
@ -87,13 +87,13 @@ struct arguments {
|
||||||
int num_of_DPT;
|
int num_of_DPT;
|
||||||
int abort;
|
int abort;
|
||||||
char **arg_list;
|
char **arg_list;
|
||||||
};
|
} SDemoArguments;
|
||||||
|
|
||||||
/* Parse a single option. */
|
/* Parse a single option. */
|
||||||
static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
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. */
|
||||||
struct arguments *arguments = state->input;
|
SDemoArguments *arguments = state->input;
|
||||||
wordexp_t full_path;
|
wordexp_t full_path;
|
||||||
char **sptr;
|
char **sptr;
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
@ -269,7 +269,7 @@ double getCurrentTime();
|
||||||
void callBack(void *param, TAOS_RES *res, int code);
|
void callBack(void *param, TAOS_RES *res, int code);
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
struct arguments arguments = {NULL, // host
|
SDemoArguments arguments = {NULL, // host
|
||||||
0, // port
|
0, // port
|
||||||
"root", // user
|
"root", // user
|
||||||
"taosdata", // password
|
"taosdata", // password
|
||||||
|
|
|
@ -168,7 +168,7 @@ static struct argp_option options[] = {
|
||||||
{0}};
|
{0}};
|
||||||
|
|
||||||
/* Used by main to communicate with parse_opt. */
|
/* Used by main to communicate with parse_opt. */
|
||||||
struct arguments {
|
typedef struct SDumpArguments {
|
||||||
// connection option
|
// connection option
|
||||||
char *host;
|
char *host;
|
||||||
char *user;
|
char *user;
|
||||||
|
@ -193,13 +193,13 @@ struct arguments {
|
||||||
char **arg_list;
|
char **arg_list;
|
||||||
int arg_list_len;
|
int arg_list_len;
|
||||||
bool isDumpIn;
|
bool isDumpIn;
|
||||||
};
|
} SDumpArguments;
|
||||||
|
|
||||||
/* Parse a single option. */
|
/* Parse a single option. */
|
||||||
static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
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. */
|
||||||
struct arguments *arguments = state->input;
|
SDumpArguments *arguments = state->input;
|
||||||
wordexp_t full_path;
|
wordexp_t full_path;
|
||||||
|
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
@ -296,31 +296,31 @@ char *command = NULL;
|
||||||
char *lcommand = NULL;
|
char *lcommand = NULL;
|
||||||
char *buffer = NULL;
|
char *buffer = NULL;
|
||||||
|
|
||||||
int taosDumpOut(struct arguments *arguments);
|
int taosDumpOut(SDumpArguments *arguments);
|
||||||
|
|
||||||
int taosDumpIn(struct arguments *arguments);
|
int taosDumpIn(SDumpArguments *arguments);
|
||||||
|
|
||||||
void taosDumpCreateDbClause(SDbInfo *dbInfo, bool isDumpProperty, FILE *fp);
|
void taosDumpCreateDbClause(SDbInfo *dbInfo, bool isDumpProperty, FILE *fp);
|
||||||
|
|
||||||
int taosDumpDb(SDbInfo *dbInfo, struct arguments *arguments, FILE *fp);
|
int taosDumpDb(SDbInfo *dbInfo, SDumpArguments *arguments, FILE *fp);
|
||||||
|
|
||||||
void taosDumpCreateTableClause(STableDef *tableDes, int numOfCols, struct arguments *arguments, FILE *fp);
|
void taosDumpCreateTableClause(STableDef *tableDes, int numOfCols, SDumpArguments *arguments, FILE *fp);
|
||||||
|
|
||||||
void taosDumpCreateMTableClause(STableDef *tableDes, char *metric, int numOfCols, struct arguments *arguments,
|
void taosDumpCreateMTableClause(STableDef *tableDes, char *metric, int numOfCols, SDumpArguments *arguments,
|
||||||
FILE *fp);
|
FILE *fp);
|
||||||
|
|
||||||
int32_t taosDumpTable(char *table, char *metric, struct arguments *arguments, FILE *fp);
|
int32_t taosDumpTable(char *table, char *metric, SDumpArguments *arguments, FILE *fp);
|
||||||
|
|
||||||
int32_t taosDumpMetric(char *metric, struct arguments *arguments, FILE *fp);
|
int32_t taosDumpMetric(char *metric, SDumpArguments *arguments, FILE *fp);
|
||||||
|
|
||||||
int taosDumpTableData(FILE *fp, char *tbname, struct arguments *arguments);
|
int taosDumpTableData(FILE *fp, char *tbname, SDumpArguments *arguments);
|
||||||
|
|
||||||
int taosCheckParam(struct arguments *arguments);
|
int taosCheckParam(SDumpArguments *arguments);
|
||||||
|
|
||||||
void taosFreeDbInfos();
|
void taosFreeDbInfos();
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
struct arguments arguments = {
|
SDumpArguments arguments = {
|
||||||
// connection option
|
// connection option
|
||||||
NULL, "root", "taosdata", 0,
|
NULL, "root", "taosdata", 0,
|
||||||
// output file
|
// output file
|
||||||
|
@ -424,7 +424,7 @@ int taosGetTableRecordInfo(char *table, STableRecordInfo *pTableRecordInfo) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int taosDumpOut(struct arguments *arguments) {
|
int taosDumpOut(SDumpArguments *arguments) {
|
||||||
TAOS_ROW row;
|
TAOS_ROW row;
|
||||||
char *temp = NULL;
|
char *temp = NULL;
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
|
@ -602,7 +602,7 @@ void taosDumpCreateDbClause(SDbInfo *dbInfo, bool isDumpProperty, FILE *fp) {
|
||||||
fprintf(fp, "%s\n\n", buffer);
|
fprintf(fp, "%s\n\n", buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
int taosDumpDb(SDbInfo *dbInfo, struct arguments *arguments, FILE *fp) {
|
int taosDumpDb(SDbInfo *dbInfo, SDumpArguments *arguments, FILE *fp) {
|
||||||
TAOS_ROW row;
|
TAOS_ROW row;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
STableRecord tableRecord;
|
STableRecord tableRecord;
|
||||||
|
@ -660,7 +660,7 @@ int taosDumpDb(SDbInfo *dbInfo, struct arguments *arguments, FILE *fp) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosDumpCreateTableClause(STableDef *tableDes, int numOfCols, struct arguments *arguments, FILE *fp) {
|
void taosDumpCreateTableClause(STableDef *tableDes, int numOfCols, SDumpArguments *arguments, FILE *fp) {
|
||||||
char *pstr = NULL;
|
char *pstr = NULL;
|
||||||
pstr = buffer;
|
pstr = buffer;
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
|
@ -703,7 +703,7 @@ void taosDumpCreateTableClause(STableDef *tableDes, int numOfCols, struct argume
|
||||||
fprintf(fp, "%s\n\n", buffer);
|
fprintf(fp, "%s\n\n", buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosDumpCreateMTableClause(STableDef *tableDes, char *metric, int numOfCols, struct arguments *arguments,
|
void taosDumpCreateMTableClause(STableDef *tableDes, char *metric, int numOfCols, SDumpArguments *arguments,
|
||||||
FILE *fp) {
|
FILE *fp) {
|
||||||
char *pstr = NULL;
|
char *pstr = NULL;
|
||||||
pstr = buffer;
|
pstr = buffer;
|
||||||
|
@ -786,7 +786,7 @@ int taosGetTableDes(char *table, STableDef *tableDes) {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosDumpTable(char *table, char *metric, struct arguments *arguments, FILE *fp) {
|
int32_t taosDumpTable(char *table, char *metric, SDumpArguments *arguments, FILE *fp) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
STableDef *tableDes = (STableDef *)calloc(1, sizeof(STableDef) + sizeof(SColDes) * TSDB_MAX_COLUMNS);
|
STableDef *tableDes = (STableDef *)calloc(1, sizeof(STableDef) + sizeof(SColDes) * TSDB_MAX_COLUMNS);
|
||||||
|
@ -828,7 +828,7 @@ int32_t taosDumpTable(char *table, char *metric, struct arguments *arguments, FI
|
||||||
return taosDumpTableData(fp, table, arguments);
|
return taosDumpTableData(fp, table, arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosDumpMetric(char *metric, struct arguments *arguments, FILE *fp) {
|
int32_t taosDumpMetric(char *metric, SDumpArguments *arguments, FILE *fp) {
|
||||||
TAOS_ROW row = NULL;
|
TAOS_ROW row = NULL;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
STableRecord tableRecord;
|
STableRecord tableRecord;
|
||||||
|
@ -877,7 +877,7 @@ int32_t taosDumpMetric(char *metric, struct arguments *arguments, FILE *fp) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int taosDumpTableData(FILE *fp, char *tbname, struct arguments *arguments) {
|
int taosDumpTableData(FILE *fp, char *tbname, SDumpArguments *arguments) {
|
||||||
/* char temp[MAX_COMMAND_SIZE] = "\0"; */
|
/* char temp[MAX_COMMAND_SIZE] = "\0"; */
|
||||||
int count = 0;
|
int count = 0;
|
||||||
char *pstr = NULL;
|
char *pstr = NULL;
|
||||||
|
@ -987,7 +987,7 @@ int taosDumpTableData(FILE *fp, char *tbname, struct arguments *arguments) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int taosCheckParam(struct arguments *arguments) {
|
int taosCheckParam(SDumpArguments *arguments) {
|
||||||
if (arguments->all_databases && arguments->databases) {
|
if (arguments->all_databases && arguments->databases) {
|
||||||
fprintf(stderr, "conflict option --all-databases and --databases\n");
|
fprintf(stderr, "conflict option --all-databases and --databases\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1072,7 +1072,7 @@ void taosReplaceCtrlChar(char *str) {
|
||||||
*pstr = '\0';
|
*pstr = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
int taosDumpIn(struct arguments *arguments) {
|
int taosDumpIn(SDumpArguments *arguments) {
|
||||||
assert(arguments->isDumpIn);
|
assert(arguments->isDumpIn);
|
||||||
|
|
||||||
int tsize = 0;
|
int tsize = 0;
|
||||||
|
|
|
@ -214,12 +214,12 @@ typedef struct {
|
||||||
int64_t tombSize; // unused file size
|
int64_t tombSize; // unused file size
|
||||||
int32_t totalBlocks;
|
int32_t totalBlocks;
|
||||||
int32_t totalSubBlocks;
|
int32_t totalSubBlocks;
|
||||||
} SFileInfo;
|
} STsdbFileInfo;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int fd;
|
int fd;
|
||||||
char fname[128];
|
char fname[128];
|
||||||
SFileInfo info;
|
STsdbFileInfo info;
|
||||||
} SFile;
|
} SFile;
|
||||||
|
|
||||||
#define TSDB_IS_FILE_OPENED(f) ((f)->fd != -1)
|
#define TSDB_IS_FILE_OPENED(f) ((f)->fd != -1)
|
||||||
|
@ -350,7 +350,7 @@ SFileGroup *tsdbSearchFGroup(STsdbFileH *pFileH, int fid);
|
||||||
void tsdbGetKeyRangeOfFileId(int32_t daysPerFile, int8_t precision, int32_t fileId, TSKEY *minKey, TSKEY *maxKey);
|
void tsdbGetKeyRangeOfFileId(int32_t daysPerFile, int8_t precision, int32_t fileId, TSKEY *minKey, TSKEY *maxKey);
|
||||||
|
|
||||||
// TSDB repository definition
|
// TSDB repository definition
|
||||||
typedef struct _tsdb_repo {
|
typedef struct STsdbRepo {
|
||||||
char *rootDir;
|
char *rootDir;
|
||||||
// TSDB configuration
|
// TSDB configuration
|
||||||
STsdbCfg config;
|
STsdbCfg config;
|
||||||
|
|
Loading…
Reference in New Issue