Merge branch 'develop' into feature/2.0tsdb
This commit is contained in:
commit
21972ecca2
|
@ -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>
|
||||
```
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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() {};
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue