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驱动的如何编译 ## 12.TDengine GO windows驱动的如何编译
请看为此问题撰写的<a href='blog/2020/01/06/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. */ /* Used by main to communicate with parse_opt. */
typedef struct DemoArguments { typedef struct DemoArguments {
char *host; char * host;
uint16_t port; uint16_t port;
char *user; char * user;
char *password; char * password;
char *database; char * database;
char *tb_prefix; int replica;
char *sqlFile; char * tb_prefix;
bool use_metric; char * sqlFile;
bool insert_only; bool use_metric;
char *output_file; bool insert_only;
int mode; char * output_file;
char *datatype[MAX_NUM_DATATYPE+1]; int mode;
int len_of_binary; char * datatype[MAX_NUM_DATATYPE + 1];
int num_of_CPR; int len_of_binary;
int num_of_threads; int num_of_CPR;
int num_of_RPR; int num_of_threads;
int num_of_tables; int num_of_RPR;
int num_of_DPT; int num_of_tables;
int abort; int num_of_DPT;
int order; int abort;
int rate; int order;
int method_of_delete; int rate;
char **arg_list; int method_of_delete;
char ** arg_list;
} SDemoArguments; } SDemoArguments;
#ifdef LINUX #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, '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, '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, '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, 'm', "table_prefix", 0, "Table prefix name. Default is 't'.", 3},
{0, 's', "sql file", 0, "The select sql file.", 3}, {0, 's', "sql file", 0, "The select sql file.", 3},
{0, 'M', 0, 0, "Use metric flag.", 13}, {0, 'M', 0, 0, "Use metric flag.", 13},
@ -225,6 +227,13 @@ typedef struct DemoArguments {
arguments->rate = 10; arguments->rate = 10;
} }
break; break;
case 'a':
arguments->replica = atoi(arg);
if (arguments->replica > 3 || arguments->replica < 1)
{
arguments->replica = 1;
}
break;
case 'D': case 'D':
arguments->method_of_delete = atoi(arg); arguments->method_of_delete = atoi(arg);
if (arguments->method_of_delete < 0 || arguments->method_of_delete > 3) 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%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\n", indent, "-d");
printf("%s%s%s\n", indent, indent, "database, Destination database. Default is 'test'."); 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\n", indent, "-m");
printf("%s%s%s\n", indent, indent, "table_prefix, Table prefix name. Default is 't'."); printf("%s%s%s\n", indent, indent, "table_prefix, Table prefix name. Default is 't'.");
printf("%s%s\n", indent, "-s"); printf("%s%s\n", indent, "-s");
@ -396,6 +407,11 @@ typedef struct DemoArguments {
if (arguments->order == 1 && (arguments->rate > 50 || arguments->rate <= 0)) { if (arguments->order == 1 && (arguments->rate > 50 || arguments->rate <= 0)) {
arguments->rate = 10; 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) { } else if (strcmp(argv[i], "-D") == 0) {
arguments->method_of_delete = atoi(argv[++i]); arguments->method_of_delete = atoi(argv[++i]);
if (arguments->method_of_delete < 0 || arguments->method_of_delete > 3) { if (arguments->method_of_delete < 0 || arguments->method_of_delete > 3) {
@ -499,6 +515,7 @@ int main(int argc, char *argv[]) {
"root", // user "root", // user
"taosdata", // password "taosdata", // password
"test", // database "test", // database
1, // replica
"t", // tb_prefix "t", // tb_prefix
NULL, NULL,
false, // use_metric false, // use_metric
@ -564,6 +581,7 @@ int main(int argc, char *argv[]) {
int count_data_type = 0; int count_data_type = 0;
char dataString[STRING_LEN]; char dataString[STRING_LEN];
bool do_aggreFunc = true; bool do_aggreFunc = true;
int replica = arguments.replica;
if (NULL != arguments.sqlFile) { if (NULL != arguments.sqlFile) {
TAOS* qtaos = taos_connect(ip_addr, user, pass, db_name, port); 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_RES* res = taos_query(taos, command);
taos_free_result(res); 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); res = taos_query(taos, command);
taos_free_result(res); taos_free_result(res);

View File

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

View File

@ -50,18 +50,19 @@ int taosMkDir(const char *path, mode_t mode) {
return code; return code;
} }
void taosMvDir(char* destDir, char *srcDir) { void taosRename(char* oldName, char *newName) {
if (0 == tsEnableVnodeBak) { if (0 == tsEnableVnodeBak) {
uInfo("vnode backup not enabled"); uInfo("vnode backup not enabled");
return; return;
} }
char shellCmd[1024+1] = {0}; // if newName in not empty, rename return fail.
// the newName must be empty or does not exist
//(void)snprintf(shellCmd, 1024, "cp -rf %s %s", srcDir, destDir); if (rename(oldName, newName)) {
(void)snprintf(shellCmd, 1024, "mv %s %s", srcDir, destDir); uError("%s is modify to %s fail, reason:%s", oldName, newName, strerror(errno));
taosSystem(shellCmd); } else {
uInfo("shell cmd:%s is executed", shellCmd); 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 compatible_version[12] = "2.0.0.0";
char gitinfo[48] = "ae1966332948147bacce3d32f9ad539ab8721db2"; char gitinfo[48] = "d711657139620f6c50f362597020705b8ad26bd2";
char gitinfoOfInternal[48] = "bf53767db56cedb1c484df83a1f10536f12647ad"; char gitinfoOfInternal[48] = "1d74ae24c541ffbb280e8630883c0236cd45f8c7";
char buildinfo[64] = "Built by root at 2020-08-20 15:46"; 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); taosTFree(pVnode->rootDir);
if (pVnode->dropped) { 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); sprintf(rootDir, "%s/vnode%d", tsVnodeDir, vgId);
taosMvDir(tsVnodeBakDir, rootDir); sprintf(newDir, "%s/vnode%d", tsVnodeBakDir, vgId);
taosRename(rootDir, newDir);
taosRemoveDir(rootDir); taosRemoveDir(rootDir);
dnodeSendStatusMsgToMnode(); dnodeSendStatusMsgToMnode();
} }