Merge branch 'develop' into hotfix/hostname
This commit is contained in:
commit
3897e00925
|
@ -27,6 +27,7 @@
|
|||
#include "ttimer.h"
|
||||
#include "tutil.h"
|
||||
#include "tscLog.h"
|
||||
#include "qsqltype.h"
|
||||
|
||||
#define TSC_MGMT_VNODE 999
|
||||
|
||||
|
@ -186,7 +187,7 @@ int tscSendMsgToServer(SSqlObj *pSql) {
|
|||
memcpy(pMsg, pSql->cmd.payload, pSql->cmd.payloadLen);
|
||||
}
|
||||
|
||||
tscTrace("%p msg:%s is sent to server", pSql, taosMsg[pSql->cmd.msgType]);
|
||||
// tscTrace("%p msg:%s is sent to server", pSql, taosMsg[pSql->cmd.msgType]);
|
||||
|
||||
SRpcMsg rpcMsg = {
|
||||
.msgType = pSql->cmd.msgType,
|
||||
|
@ -214,7 +215,7 @@ void tscProcessMsgFromServer(SRpcMsg *rpcMsg, SRpcIpSet *pIpSet) {
|
|||
SSqlRes *pRes = &pSql->res;
|
||||
SSqlCmd *pCmd = &pSql->cmd;
|
||||
STscObj *pObj = pSql->pTscObj;
|
||||
tscTrace("%p msg:%s is received from server", pSql, taosMsg[rpcMsg->msgType]);
|
||||
// tscTrace("%p msg:%s is received from server", pSql, taosMsg[rpcMsg->msgType]);
|
||||
|
||||
if (pSql->freed || pObj->signature != pObj) {
|
||||
tscTrace("%p sql is already released or DB connection is closed, freed:%d pObj:%p signature:%p", pSql, pSql->freed,
|
||||
|
@ -319,10 +320,10 @@ void tscProcessMsgFromServer(SRpcMsg *rpcMsg, SRpcIpSet *pIpSet) {
|
|||
pMsg->numOfFailedBlocks = htonl(pMsg->numOfFailedBlocks);
|
||||
|
||||
pRes->numOfRows += pMsg->affectedRows;
|
||||
tscTrace("%p cmd:%d code:%s, inserted rows:%d, rsp len:%d", pSql, pCmd->command, tstrerror(pRes->code),
|
||||
pMsg->affectedRows, pRes->rspLen);
|
||||
tscTrace("%p SQL cmd:%s, code:%s inserted rows:%d rspLen:%d", pSql, sqlCmd[pCmd->command],
|
||||
tstrerror(pRes->code), pMsg->affectedRows, pRes->rspLen);
|
||||
} else {
|
||||
tscTrace("%p cmd:%d code:%s rsp len:%d", pSql, pCmd->command, tstrerror(pRes->code), pRes->rspLen);
|
||||
tscTrace("%p SQL cmd:%s, code:%s rspLen:%d", pSql, sqlCmd[pCmd->command], tstrerror(pRes->code), pRes->rspLen);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -405,7 +406,7 @@ int tscProcessSql(SSqlObj *pSql) {
|
|||
assert((pQueryInfo->numOfTables == 0 && pQueryInfo->command == TSDB_SQL_HB) || pQueryInfo->numOfTables > 0);
|
||||
}
|
||||
|
||||
tscTrace("%p SQL cmd:%d will be processed, name:%s, type:%d", pSql, pCmd->command, name, type);
|
||||
tscTrace("%p SQL cmd:%s will be processed, name:%s, type:%d", pSql, sqlCmd[pCmd->command], name, type);
|
||||
if (pCmd->command < TSDB_SQL_MGMT) { // the pTableMetaInfo cannot be NULL
|
||||
if (pTableMetaInfo == NULL) {
|
||||
pSql->res.code = TSDB_CODE_OTHERS;
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||
*
|
||||
* This program is free software: you can use, redistribute, and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3
|
||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef TDENGINE_QSQLCMD_H
|
||||
#define TDENGINE_QSQLCMD_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// sql type
|
||||
|
||||
#ifdef TSDB_SQL_C
|
||||
#define TSDB_DEFINE_SQL_TYPE( name, msg ) msg,
|
||||
char *sqlCmd[] = {
|
||||
"null",
|
||||
#else
|
||||
#define TSDB_DEFINE_SQL_TYPE( name, msg ) name,
|
||||
enum {
|
||||
TSDB_SQL_NULL = 0,
|
||||
#endif
|
||||
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_SELECT, "select" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_FETCH, "fetch" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_INSERT, "insert" )
|
||||
|
||||
// the SQL below is for mgmt node
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_MGMT, "mgmt" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CREATE_DB, "create-db" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CREATE_TABLE, "create-table" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DROP_DB, "drop-db" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DROP_TABLE, "drop-table" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CREATE_ACCT, "create-acct" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CREATE_USER, "create-user" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DROP_ACCT, "drop-acct" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DROP_USER, "drop-user" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_ALTER_USER, "alter-user" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_ALTER_ACCT, "alter-acct" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_ALTER_TABLE, "alter-table" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_ALTER_DB, "alter-db" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CREATE_MNODE, "create-mnode" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DROP_MNODE, "drop-mnode" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CREATE_DNODE, "create-dnode" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DROP_DNODE, "drop-dnode" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CFG_DNODE, "cfg-dnode" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CFG_MNODE, "cfg-mnode" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_SHOW, "show" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_RETRIEVE, "retrieve" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_KILL_QUERY, "kill-query" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_KILL_STREAM, "kill-stream" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_KILL_CONNECTION, "kill-connection" )
|
||||
|
||||
// SQL below is for read operation
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_READ, "read" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CONNECT, "connect" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_USE_DB, "use-db" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_META, "meta" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_STABLEVGROUP, "stable-vgroup" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_MULTI_META, "multi-meta" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_HB, "heart-beat" )
|
||||
|
||||
// SQL below for client local
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_LOCAL, "local" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_DESCRIBE_TABLE, "describe-table" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_RETRIEVE_LOCALMERGE, "retrieve-localmerge" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_TABLE_JOIN_RETRIEVE, "join-retrieve" )
|
||||
|
||||
/*
|
||||
* build empty result instead of accessing dnode to fetch result
|
||||
* reset the client cache
|
||||
*/
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_RETRIEVE_EMPTY_RESULT, "retrieve-empty-result" )
|
||||
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_RESET_CACHE, "reset-cache" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_SERV_STATUS, "serv-status" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CURRENT_DB, "current-db" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_SERV_VERSION, "serv-version" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CLI_VERSION, "cli-version" )
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CURRENT_USER, "current-user ")
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_CFG_LOCAL, "cfg-local" )
|
||||
|
||||
TSDB_DEFINE_SQL_TYPE( TSDB_SQL_MAX, "max" )
|
||||
};
|
||||
|
||||
// create table operation type
|
||||
enum TSQL_TYPE {
|
||||
TSQL_CREATE_TABLE = 0x1,
|
||||
TSQL_CREATE_STABLE = 0x2,
|
||||
TSQL_CREATE_TABLE_FROM_STABLE = 0x3,
|
||||
TSQL_CREATE_STREAM = 0x4,
|
||||
};
|
||||
|
||||
extern char *sqlCmd[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // TDENGINE_QSQLCMD_H
|
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||
*
|
||||
* This program is free software: you can use, redistribute, and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3
|
||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define TSDB_SQL_C
|
||||
|
||||
#include "qsqltype.h"
|
|
@ -41,14 +41,13 @@
|
|||
// dynamic config timestamp width according to maximum time precision
|
||||
extern int32_t TIMESTAMP_OUTPUT_LENGTH;
|
||||
|
||||
typedef struct History History;
|
||||
struct History {
|
||||
typedef struct SShellHistory {
|
||||
char* hist[MAX_HISTORY_SIZE];
|
||||
int hstart;
|
||||
int hend;
|
||||
};
|
||||
} SShellHistory;
|
||||
|
||||
struct arguments {
|
||||
typedef struct SShellArguments {
|
||||
char* host;
|
||||
char* password;
|
||||
char* user;
|
||||
|
@ -62,11 +61,11 @@ struct arguments {
|
|||
char* commands;
|
||||
int abort;
|
||||
int port;
|
||||
};
|
||||
} SShellArguments;
|
||||
|
||||
/**************** Function declarations ****************/
|
||||
extern void shellParseArgument(int argc, char* argv[], struct arguments* arguments);
|
||||
extern TAOS* shellInit(struct arguments* args);
|
||||
extern void shellParseArgument(int argc, char* argv[], SShellArguments* arguments);
|
||||
extern TAOS* shellInit(SShellArguments* args);
|
||||
extern void* shellLoopQuery(void* arg);
|
||||
extern void taos_error(TAOS* con);
|
||||
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 write_history();
|
||||
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 cleanup_handler(void* arg);
|
||||
void exitShell();
|
||||
|
@ -89,12 +88,12 @@ int isCommentLine(char *line);
|
|||
extern char PROMPT_HEADER[];
|
||||
extern char CONTINUE_PROMPT[];
|
||||
extern int prompt_size;
|
||||
extern History history;
|
||||
extern SShellHistory history;
|
||||
extern struct termios oldtio;
|
||||
extern void set_terminal_mode();
|
||||
extern int get_old_terminal_mode(struct termios* tio);
|
||||
extern void reset_terminal_mode();
|
||||
extern struct arguments args;
|
||||
extern SShellArguments args;
|
||||
extern TAOS_RES* result;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -33,12 +33,12 @@ char PROMPT_HEADER[] = "taos> ";
|
|||
char CONTINUE_PROMPT[] = " -> ";
|
||||
int prompt_size = 6;
|
||||
TAOS_RES *result = NULL;
|
||||
History history;
|
||||
SShellHistory history;
|
||||
|
||||
/*
|
||||
* FUNCTION: Initialize the shell.
|
||||
*/
|
||||
TAOS *shellInit(struct arguments *args) {
|
||||
TAOS *shellInit(SShellArguments *args) {
|
||||
printf("\n");
|
||||
printf(CLIENT_VERSION, tsOsName, taos_get_client_info());
|
||||
fflush(stdout);
|
||||
|
|
|
@ -221,7 +221,7 @@ void* shellImportThreadFp(void *arg)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void shellRunImportThreads(struct arguments* args)
|
||||
static void shellRunImportThreads(SShellArguments* args)
|
||||
{
|
||||
pthread_attr_t thattr;
|
||||
ShellThreadObj *threadObj = (ShellThreadObj *)calloc(args->threadNum, sizeof(ShellThreadObj));
|
||||
|
@ -254,7 +254,7 @@ static void shellRunImportThreads(struct arguments* args)
|
|||
free(threadObj);
|
||||
}
|
||||
|
||||
void source_dir(TAOS* con, struct arguments* args) {
|
||||
void source_dir(TAOS* con, SShellArguments* args) {
|
||||
shellGetDirectoryFileList(args->dir);
|
||||
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) {
|
||||
/* Get the input argument from argp_parse, which we
|
||||
know is a pointer to our arguments structure. */
|
||||
struct arguments *arguments = state->input;
|
||||
SShellArguments *arguments = state->input;
|
||||
wordexp_t full_path;
|
||||
|
||||
switch (key) {
|
||||
|
@ -129,7 +129,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state) {
|
|||
/* Our argp parser. */
|
||||
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};
|
||||
sprintf(verType, "version: %s\n", version);
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ int checkVersion() {
|
|||
}
|
||||
|
||||
// Global configurations
|
||||
struct arguments args = {
|
||||
SShellArguments args = {
|
||||
.host = NULL,
|
||||
.password = NULL,
|
||||
.user = NULL,
|
||||
|
|
|
@ -67,7 +67,7 @@ static struct argp_option options[] = {
|
|||
{0}};
|
||||
|
||||
/* Used by main to communicate with parse_opt. */
|
||||
struct arguments {
|
||||
typedef struct DemoArguments {
|
||||
char *host;
|
||||
uint16_t port;
|
||||
char *user;
|
||||
|
@ -87,13 +87,13 @@ struct arguments {
|
|||
int num_of_DPT;
|
||||
int abort;
|
||||
char **arg_list;
|
||||
};
|
||||
} SDemoArguments;
|
||||
|
||||
/* 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
|
||||
know is a pointer to our arguments structure. */
|
||||
struct arguments *arguments = state->input;
|
||||
SDemoArguments *arguments = state->input;
|
||||
wordexp_t full_path;
|
||||
char **sptr;
|
||||
switch (key) {
|
||||
|
@ -269,7 +269,7 @@ double getCurrentTime();
|
|||
void callBack(void *param, TAOS_RES *res, int code);
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
struct arguments arguments = {NULL, // host
|
||||
SDemoArguments arguments = {NULL, // host
|
||||
0, // port
|
||||
"root", // user
|
||||
"taosdata", // password
|
||||
|
|
|
@ -168,7 +168,7 @@ static struct argp_option options[] = {
|
|||
{0}};
|
||||
|
||||
/* Used by main to communicate with parse_opt. */
|
||||
struct arguments {
|
||||
typedef struct SDumpArguments {
|
||||
// connection option
|
||||
char *host;
|
||||
char *user;
|
||||
|
@ -193,13 +193,13 @@ struct arguments {
|
|||
char **arg_list;
|
||||
int arg_list_len;
|
||||
bool isDumpIn;
|
||||
};
|
||||
} SDumpArguments;
|
||||
|
||||
/* 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
|
||||
know is a pointer to our arguments structure. */
|
||||
struct arguments *arguments = state->input;
|
||||
SDumpArguments *arguments = state->input;
|
||||
wordexp_t full_path;
|
||||
|
||||
switch (key) {
|
||||
|
@ -296,31 +296,31 @@ char *command = NULL;
|
|||
char *lcommand = 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);
|
||||
|
||||
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);
|
||||
|
||||
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();
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
struct arguments arguments = {
|
||||
SDumpArguments arguments = {
|
||||
// connection option
|
||||
NULL, "root", "taosdata", 0,
|
||||
// output file
|
||||
|
@ -424,7 +424,7 @@ int taosGetTableRecordInfo(char *table, STableRecordInfo *pTableRecordInfo) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
int taosDumpOut(struct arguments *arguments) {
|
||||
int taosDumpOut(SDumpArguments *arguments) {
|
||||
TAOS_ROW row;
|
||||
char *temp = NULL;
|
||||
FILE *fp = NULL;
|
||||
|
@ -602,7 +602,7 @@ void taosDumpCreateDbClause(SDbInfo *dbInfo, bool isDumpProperty, FILE *fp) {
|
|||
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;
|
||||
int fd = -1;
|
||||
STableRecord tableRecord;
|
||||
|
@ -660,7 +660,7 @@ int taosDumpDb(SDbInfo *dbInfo, struct arguments *arguments, FILE *fp) {
|
|||
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;
|
||||
pstr = buffer;
|
||||
int counter = 0;
|
||||
|
@ -703,7 +703,7 @@ void taosDumpCreateTableClause(STableDef *tableDes, int numOfCols, struct argume
|
|||
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) {
|
||||
char *pstr = NULL;
|
||||
pstr = buffer;
|
||||
|
@ -786,7 +786,7 @@ int taosGetTableDes(char *table, STableDef *tableDes) {
|
|||
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;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
int32_t taosDumpMetric(char *metric, struct arguments *arguments, FILE *fp) {
|
||||
int32_t taosDumpMetric(char *metric, SDumpArguments *arguments, FILE *fp) {
|
||||
TAOS_ROW row = NULL;
|
||||
int fd = -1;
|
||||
STableRecord tableRecord;
|
||||
|
@ -877,7 +877,7 @@ int32_t taosDumpMetric(char *metric, struct arguments *arguments, FILE *fp) {
|
|||
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"; */
|
||||
int count = 0;
|
||||
char *pstr = NULL;
|
||||
|
@ -987,7 +987,7 @@ int taosDumpTableData(FILE *fp, char *tbname, struct arguments *arguments) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int taosCheckParam(struct arguments *arguments) {
|
||||
int taosCheckParam(SDumpArguments *arguments) {
|
||||
if (arguments->all_databases && arguments->databases) {
|
||||
fprintf(stderr, "conflict option --all-databases and --databases\n");
|
||||
return -1;
|
||||
|
@ -1072,7 +1072,7 @@ void taosReplaceCtrlChar(char *str) {
|
|||
*pstr = '\0';
|
||||
}
|
||||
|
||||
int taosDumpIn(struct arguments *arguments) {
|
||||
int taosDumpIn(SDumpArguments *arguments) {
|
||||
assert(arguments->isDumpIn);
|
||||
|
||||
int tsize = 0;
|
||||
|
|
|
@ -1,96 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||
*
|
||||
* This program is free software: you can use, redistribute, and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3
|
||||
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef TDENGINE_QSQLCMD_H
|
||||
#define TDENGINE_QSQLCMD_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum _sql_type {
|
||||
TSDB_SQL_SELECT = 1,
|
||||
TSDB_SQL_FETCH,
|
||||
TSDB_SQL_INSERT,
|
||||
|
||||
TSDB_SQL_MGMT, // the SQL below is for mgmt node
|
||||
TSDB_SQL_CREATE_DB,
|
||||
TSDB_SQL_CREATE_TABLE,
|
||||
TSDB_SQL_DROP_DB,
|
||||
TSDB_SQL_DROP_TABLE,
|
||||
TSDB_SQL_CREATE_ACCT,
|
||||
TSDB_SQL_CREATE_USER, // 10
|
||||
TSDB_SQL_DROP_ACCT,
|
||||
TSDB_SQL_DROP_USER,
|
||||
TSDB_SQL_ALTER_USER,
|
||||
TSDB_SQL_ALTER_ACCT,
|
||||
TSDB_SQL_ALTER_TABLE,
|
||||
TSDB_SQL_ALTER_DB,
|
||||
TSDB_SQL_CREATE_MNODE,
|
||||
TSDB_SQL_DROP_MNODE,
|
||||
TSDB_SQL_CREATE_DNODE,
|
||||
TSDB_SQL_DROP_DNODE, // 20
|
||||
TSDB_SQL_CFG_DNODE,
|
||||
TSDB_SQL_CFG_MNODE,
|
||||
TSDB_SQL_SHOW,
|
||||
TSDB_SQL_RETRIEVE,
|
||||
TSDB_SQL_KILL_QUERY,
|
||||
TSDB_SQL_KILL_STREAM,
|
||||
TSDB_SQL_KILL_CONNECTION,
|
||||
|
||||
TSDB_SQL_READ, // SQL below is for read operation
|
||||
TSDB_SQL_CONNECT,
|
||||
TSDB_SQL_USE_DB, // 30
|
||||
TSDB_SQL_META,
|
||||
TSDB_SQL_STABLEVGROUP,
|
||||
TSDB_SQL_MULTI_META,
|
||||
TSDB_SQL_HB,
|
||||
|
||||
TSDB_SQL_LOCAL, // SQL below for client local
|
||||
TSDB_SQL_DESCRIBE_TABLE,
|
||||
TSDB_SQL_RETRIEVE_LOCALMERGE,
|
||||
TSDB_SQL_TABLE_JOIN_RETRIEVE,
|
||||
|
||||
/*
|
||||
* build empty result instead of accessing dnode to fetch result
|
||||
* reset the client cache
|
||||
*/
|
||||
TSDB_SQL_RETRIEVE_EMPTY_RESULT,
|
||||
|
||||
TSDB_SQL_RESET_CACHE, // 40
|
||||
TSDB_SQL_SERV_STATUS,
|
||||
TSDB_SQL_CURRENT_DB,
|
||||
TSDB_SQL_SERV_VERSION,
|
||||
TSDB_SQL_CLI_VERSION,
|
||||
TSDB_SQL_CURRENT_USER,
|
||||
TSDB_SQL_CFG_LOCAL,
|
||||
|
||||
TSDB_SQL_MAX // 47
|
||||
};
|
||||
|
||||
|
||||
// create table operation type
|
||||
enum TSQL_TYPE {
|
||||
TSQL_CREATE_TABLE = 0x1,
|
||||
TSQL_CREATE_STABLE = 0x2,
|
||||
TSQL_CREATE_TABLE_FROM_STABLE = 0x3,
|
||||
TSQL_CREATE_STREAM = 0x4,
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // TDENGINE_QSQLCMD_H
|
|
@ -1116,7 +1116,7 @@ static void rpcSendMsgToPeer(SRpcConn *pConn, void *msg, int msgLen) {
|
|||
htonl(pHead->code), msgLen, pHead->sourceId, pHead->destId, pHead->tranId);
|
||||
}
|
||||
|
||||
tTrace("connection type is: %d", pConn->connType);
|
||||
//tTrace("connection type is: %d", pConn->connType);
|
||||
writtenLen = (*taosSendData[pConn->connType])(pConn->peerIp, pConn->peerPort, pHead, msgLen, pConn->chandle);
|
||||
|
||||
if (writtenLen != msgLen) {
|
||||
|
|
|
@ -214,12 +214,12 @@ typedef struct {
|
|||
int64_t tombSize; // unused file size
|
||||
int32_t totalBlocks;
|
||||
int32_t totalSubBlocks;
|
||||
} SFileInfo;
|
||||
} STsdbFileInfo;
|
||||
|
||||
typedef struct {
|
||||
int fd;
|
||||
char fname[128];
|
||||
SFileInfo info;
|
||||
STsdbFileInfo info;
|
||||
} SFile;
|
||||
|
||||
#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);
|
||||
|
||||
// TSDB repository definition
|
||||
typedef struct _tsdb_repo {
|
||||
typedef struct STsdbRepo {
|
||||
char *rootDir;
|
||||
// TSDB configuration
|
||||
STsdbCfg config;
|
||||
|
|
Loading…
Reference in New Issue