From d7a16a5b352361b400fdb545a88ebacccaa68050 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Wed, 29 Sep 2021 21:07:41 +0800 Subject: [PATCH] [TD-6217] merge develop --- tests/examples/c/connect_two_cluster.c | 162 +++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 tests/examples/c/connect_two_cluster.c diff --git a/tests/examples/c/connect_two_cluster.c b/tests/examples/c/connect_two_cluster.c new file mode 100644 index 0000000000..fa54dd4370 --- /dev/null +++ b/tests/examples/c/connect_two_cluster.c @@ -0,0 +1,162 @@ +#include +#include +#include +#include +#include "taos.h" +int numOfThreads = 1; + +void* connectClusterAndDeal(void *arg) { + int port = *(int *)arg; + const char *host = "127.0.0.1"; + const char *user = "root"; + const char *passwd = "taosdata"; + TAOS* taos1 = taos_connect(host, user, passwd, "", port); + TAOS* taos2 = taos_connect(host, user, passwd, "", port + 1000); + if (NULL == taos1 || NULL == taos2) { + printf("connect to (%d/%d) failed \n", port, port + 1000); + return NULL; + } + TAOS_RES *result = NULL; + result = taos_query(taos1, "drop database if exists db"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + + taos_query(taos2, "drop database if exists db"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + + taos_free_result(result); + // ========= build database + { + result = taos_query(taos1, "create database db"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + + taos_free_result(result); + } + { + result = taos_query(taos2, "create database db"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + } + + //======== create table + { + result = taos_query(taos1, "create stable db.stest (ts timestamp, port int) tags(tport int)"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + } + { + result = taos_query(taos2, "create stable db.stest (ts timestamp, port int) tags(tport int)"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + + } + //======== create table + { + result = taos_query(taos1, "use db"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + } + { + result = taos_query(taos2, "use db"); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + + } + { + char buf[1024] = {0}; + sprintf(buf, "insert into db.t1 using stest tags(%d) values(now, %d)", port, port); + for (int i = 0; i < 100000; i++) { + //printf("error here\t"); + result = taos_query(taos1, buf); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + //sleep(1); + } + } + + { + char buf[1024] = {0}; + sprintf(buf, "insert into db.t1 using stest tags(%d) values(now, %d)", port + 1000, port + 1000); + for (int i = 0; i < 100000; i++) { + result = taos_query(taos2, buf); + if (0 != taos_errno(result)) { + printf("failed %s\n", taos_errstr(result)); + } + taos_free_result(result); + //sleep(1); + } + } + // query result + { + result = taos_query(taos1, "select * from stest"); + if (result == NULL || taos_errno(result) != 0) { + printf("query failed %s\n", taos_errstr(result)); + taos_free_result(result); + } + TAOS_ROW row; + int rows = 0; + int num_fields = taos_field_count(result); + TAOS_FIELD *fields = taos_fetch_fields(result); + while ((row = taos_fetch_row(result))) { + char temp[1024] = {0}; + rows++; + taos_print_row(temp, row, fields , num_fields); + printf("%s\n", temp); + } + taos_free_result(result); + } + + // query result + { + result = taos_query(taos2, "select * from stest"); + if (result == NULL || taos_errno(result) != 0) { + printf("query failed %s\n", taos_errstr(result)); + taos_free_result(result); + } + TAOS_ROW row; + int rows = 0; + int num_fields = taos_field_count(result); + TAOS_FIELD *fields = taos_fetch_fields(result); + while ((row = taos_fetch_row(result))) { + char temp[1024] = {0}; + rows++; + taos_print_row(temp, row, fields , num_fields); + printf("%s\n", temp); + } + taos_free_result(result); + } + taos_close(taos1); + taos_close(taos2); + return NULL; +} +int main(int argc, char* argv[]) { + pthread_t *pthreads = malloc(sizeof(pthread_t) * numOfThreads); + + int *port = malloc(sizeof(int) * numOfThreads); + port[0] = 6030; + for (int i = 0; i < numOfThreads; i++) { + pthread_create(&pthreads[i], NULL, connectClusterAndDeal, (void *)&port[i]); + } + for (int i = 0; i < numOfThreads; i++) { + pthread_join(pthreads[i], NULL); + } + free(port); +} -- GitLab