Merge branch 'develop' into feature/2.0tsdb

This commit is contained in:
Hongze Cheng 2020-08-25 14:52:02 +08:00
commit 21972ecca2
6 changed files with 70 additions and 41 deletions

View File

@ -68,5 +68,13 @@ Connection = DriverManager.getConnection(url, properties);
## 12.TDengine GO windows驱动的如何编译
请看为此问题撰写的<a href='blog/2020/01/06/tdengine-go-windows驱动的编译/'>技术博客
## 13.JDBC报错 the excuted SQL is not a DML or a DDL
请更新至最新的JDBC驱动
```JAVA
<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.4</version>
</dependency>
```

View File

@ -57,29 +57,30 @@ extern char configDir[];
/* Used by main to communicate with parse_opt. */
typedef struct DemoArguments {
char *host;
uint16_t port;
char *user;
char *password;
char *database;
char *tb_prefix;
char *sqlFile;
bool use_metric;
bool insert_only;
char *output_file;
int mode;
char *datatype[MAX_NUM_DATATYPE+1];
int len_of_binary;
int num_of_CPR;
int num_of_threads;
int num_of_RPR;
int num_of_tables;
int num_of_DPT;
int abort;
int order;
int rate;
int method_of_delete;
char **arg_list;
char * host;
uint16_t port;
char * user;
char * password;
char * database;
int replica;
char * tb_prefix;
char * sqlFile;
bool use_metric;
bool insert_only;
char * output_file;
int mode;
char * datatype[MAX_NUM_DATATYPE + 1];
int len_of_binary;
int num_of_CPR;
int num_of_threads;
int num_of_RPR;
int num_of_tables;
int num_of_DPT;
int abort;
int order;
int rate;
int method_of_delete;
char ** arg_list;
} SDemoArguments;
#ifdef LINUX
@ -90,6 +91,7 @@ typedef struct DemoArguments {
{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, 'a', "replica", 0, "Set the replica parameters of the database, Default 1, min: 1, max: 3.", 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},
@ -225,6 +227,13 @@ typedef struct DemoArguments {
arguments->rate = 10;
}
break;
case 'a':
arguments->replica = atoi(arg);
if (arguments->replica > 3 || arguments->replica < 1)
{
arguments->replica = 1;
}
break;
case 'D':
arguments->method_of_delete = atoi(arg);
if (arguments->method_of_delete < 0 || arguments->method_of_delete > 3)
@ -273,6 +282,8 @@ typedef struct DemoArguments {
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, "-a");
printf("%s%s%s\n", indent, indent, "replica, Set the replica parameters of the database, Default 1, min: 1, max: 3.");
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");
@ -396,6 +407,11 @@ typedef struct DemoArguments {
if (arguments->order == 1 && (arguments->rate > 50 || arguments->rate <= 0)) {
arguments->rate = 10;
}
} else if (strcmp(argv[i], "-a") == 0) {
arguments->replica = atoi(argv[++i]);
if (arguments->rate > 3 || arguments->rate < 1) {
arguments->rate = 1;
}
} 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) {
@ -499,6 +515,7 @@ int main(int argc, char *argv[]) {
"root", // user
"taosdata", // password
"test", // database
1, // replica
"t", // tb_prefix
NULL,
false, // use_metric
@ -564,6 +581,7 @@ int main(int argc, char *argv[]) {
int count_data_type = 0;
char dataString[STRING_LEN];
bool do_aggreFunc = true;
int replica = arguments.replica;
if (NULL != arguments.sqlFile) {
TAOS* qtaos = taos_connect(ip_addr, user, pass, db_name, port);
@ -661,7 +679,7 @@ int main(int argc, char *argv[]) {
TAOS_RES* res = taos_query(taos, command);
taos_free_result(res);
sprintf(command, "create database %s;", db_name);
sprintf(command, "create database %s replica %d;", db_name, replica);
res = taos_query(taos, command);
taos_free_result(res);

View File

@ -23,7 +23,7 @@ extern "C" {
// TAOS_OS_FUNC_DIR
void taosRemoveDir(char *rootDir);
int taosMkDir(const char *pathname, mode_t mode);
void taosMvDir(char* destDir, char *srcDir);
void taosRename(char* oldName, char *newName);
#ifdef __cplusplus
}

View File

@ -50,18 +50,19 @@ int taosMkDir(const char *path, mode_t mode) {
return code;
}
void taosMvDir(char* destDir, char *srcDir) {
void taosRename(char* oldName, char *newName) {
if (0 == tsEnableVnodeBak) {
uInfo("vnode backup not enabled");
return;
}
char shellCmd[1024+1] = {0};
//(void)snprintf(shellCmd, 1024, "cp -rf %s %s", srcDir, destDir);
(void)snprintf(shellCmd, 1024, "mv %s %s", srcDir, destDir);
taosSystem(shellCmd);
uInfo("shell cmd:%s is executed", shellCmd);
// if newName in not empty, rename return fail.
// the newName must be empty or does not exist
if (rename(oldName, newName)) {
uError("%s is modify to %s fail, reason:%s", oldName, newName, strerror(errno));
} else {
uInfo("%s is modify to %s success!", oldName, newName);
}
}
#endif
#endif

View File

@ -1,7 +1,7 @@
char version[12] = "2.0.1.1";
char version[12] = "2.0.2.0";
char compatible_version[12] = "2.0.0.0";
char gitinfo[48] = "ae1966332948147bacce3d32f9ad539ab8721db2";
char gitinfoOfInternal[48] = "bf53767db56cedb1c484df83a1f10536f12647ad";
char buildinfo[64] = "Built by root at 2020-08-20 15:46";
char gitinfo[48] = "d711657139620f6c50f362597020705b8ad26bd2";
char gitinfoOfInternal[48] = "1d74ae24c541ffbb280e8630883c0236cd45f8c7";
char buildinfo[64] = "Built by root at 2020-08-24 16:31";
void libtaos_2_0_1_1_Linux_x64() {};
void libtaos_2_0_2_0_Linux_x64_beta() {};

View File

@ -358,9 +358,11 @@ void vnodeRelease(void *pVnodeRaw) {
taosTFree(pVnode->rootDir);
if (pVnode->dropped) {
char rootDir[TSDB_FILENAME_LEN] = {0};
char rootDir[TSDB_FILENAME_LEN] = {0};
char newDir[TSDB_FILENAME_LEN] = {0};
sprintf(rootDir, "%s/vnode%d", tsVnodeDir, vgId);
taosMvDir(tsVnodeBakDir, rootDir);
sprintf(newDir, "%s/vnode%d", tsVnodeBakDir, vgId);
taosRename(rootDir, newDir);
taosRemoveDir(rootDir);
dnodeSendStatusMsgToMnode();
}