diff --git a/tests/examples/c/demo.c b/tests/examples/c/demo.c index 34c785a271c4217f89803539b3f1cb6aa3ca1111..377f4c162e7106ec8b95bd528980e015431d327c 100644 --- a/tests/examples/c/demo.c +++ b/tests/examples/c/demo.c @@ -16,142 +16,52 @@ // TAOS standard API example. The same syntax as MySQL, but only a subet // to compile: gcc -o demo demo.c -ltaos -#include #include #include #include #include // TAOS header file -#include -#include - -static int32_t doQuery(TAOS* taos, const char* sql) { - struct timeval t1 = {0}; - gettimeofday(&t1, NULL); - - TAOS_RES* res = taos_query(taos, sql); - if (taos_errno(res) != 0) { - printf("failed to execute query, reason:%s\n", taos_errstr(taos)); - return -1; - } - - TAOS_ROW row = NULL; - char buf[512] = {0}; - - int32_t numOfFields = taos_num_fields(res); - TAOS_FIELD* pFields = taos_fetch_fields(res); - - int32_t i = 0; - while((row = taos_fetch_row(res)) != NULL) { - taos_print_row(buf, row, pFields, numOfFields); - printf("%d:%s\n", ++i, buf); - memset(buf, 0, 512); - } - - taos_free_result(res); - - struct timeval t2 = {0}; - gettimeofday(&t2, NULL); - - printf("elapsed time:%"PRId64 " ms\n", ((t2.tv_sec*1000000 + t2.tv_usec) - (t1.tv_sec*1000000 + t1.tv_usec))/1000); - return 0; -} - -void* oneLoader(void* param) { - TAOS* conn = (TAOS*) param; - - for(int32_t i = 0; i < 20000; ++i) { -// doQuery(conn, "show databases"); - doQuery(conn, "use test"); -// doQuery(conn, "describe t12"); -// doQuery(conn, "show tables"); -// doQuery(conn, "create table if not exists abc (ts timestamp, k int)"); -// doQuery(conn, "select * from t12"); - } - - return 0; -} - - -static __attribute__((unused)) void multiThreadTest(int32_t numOfThreads, void* conn) { - pthread_attr_t thattr; - pthread_attr_init(&thattr); - pthread_attr_setdetachstate(&thattr, PTHREAD_CREATE_JOINABLE); - - pthread_t* threadId = (pthread_t*)malloc(sizeof(pthread_t)*(uint32_t)numOfThreads); - - for (int i = 0; i < numOfThreads; ++i) { - pthread_create(&threadId[i], NULL, oneLoader, conn); - } - - for (int32_t i = 0; i < numOfThreads; ++i) { - pthread_join(threadId[i], NULL); - } - - free(threadId); - pthread_attr_destroy(&thattr); -} int main(int argc, char *argv[]) { TAOS * taos; char qstr[1024]; TAOS_RES *result; - + // connect to server if (argc < 2) { printf("please input server-ip \n"); return 0; } - - taos_options(TSDB_OPTION_CONFIGDIR, "~/sec/cfg"); - + // init TAOS taos_init(); - + taos = taos_connect(argv[1], "root", "taosdata", NULL, 0); if (taos == NULL) { - printf("failed to connect to server, reason:%s\n", taos_errstr(NULL)); + printf("failed to connect to server, reason:%s\n", taos_errstr(taos)); exit(1); } - printf("success to connect to server\n"); -// doQuery(taos, "select c1,count(*) from group_db0.group_mt0 where c1<8 group by c1"); -// doQuery(taos, "select * from test.m1"); - -// multiThreadTest(1, taos); -// doQuery(taos, "select tbname from test.m1"); -// doQuery(taos, "select max(c1), min(c2), sum(c3), avg(c4), first(c7), last(c8), first(c9) from lm2_db0.lm2_stb0 where ts >= 1537146000000 and ts <= 1543145400000 and tbname in ('lm2_tb0') interval(1s) group by t1"); -// doQuery(taos, "select max(c1), min(c2), sum(c3), avg(c4), first(c7), last(c8), first(c9) from lm2_db0.lm2_stb0 where ts >= 1537146000000 and ts <= 1543145400000 and tbname in ('lm2_tb0', 'lm2_tb1', 'lm2_tb2') interval(1s)"); - for(int32_t i = 0; i < 200; ++i) { - doQuery(taos, "select * from lm2_db0.lm2_stb0"); - } -// doQuery(taos, "create table t1(ts timestamp, k binary(12), f nchar(2))"); - - taos_close(taos); - return 0; - + + taos_query(taos, "drop database demo"); if (taos_query(taos, "create database demo") != 0) { printf("failed to create database, reason:%s\n", taos_errstr(taos)); exit(1); } printf("success to create database\n"); - - + taos_query(taos, "use demo"); - - + // create table if (taos_query(taos, "create table m1 (ts timestamp, speed int)") != 0) { printf("failed to create table, reason:%s\n", taos_errstr(taos)); exit(1); } printf("success to create table\n"); - - + // sleep for one second to make sure table is created on data node // taosMsleep(1000); - - + // insert 10 records int i = 0; for (i = 0; i < 10; ++i) { @@ -162,29 +72,21 @@ int main(int argc, char *argv[]) { //sleep(1); } printf("success to insert rows, total %d rows\n", i); - - + // query the records sprintf(qstr, "SELECT * FROM m1"); - if (taos_query(taos, qstr) != 0) { - printf("failed to select, reason:%s\n", taos_errstr(taos)); - exit(1); - } - - if (result == NULL) { - printf("failed to get result, reason:%s\n", taos_errstr(taos)); + result = taos_query(taos, qstr); + if (result == NULL || taos_errno(result) != 0) { + printf("failed to select, reason:%s\n", taos_errstr(result)); exit(1); } -// TAOS_ROW row; - TAOS_ROW row; int rows = 0; int num_fields = taos_field_count(taos); TAOS_FIELD *fields = taos_fetch_fields(result); char temp[256]; - - + printf("select * from table, result:\n"); // fetch the records row by row while ((row = taos_fetch_row(result))) { @@ -192,7 +94,7 @@ int main(int argc, char *argv[]) { taos_print_row(temp, row, fields, num_fields); printf("%s\n", temp); } - + taos_free_result(result); printf("====demo end====\n\n"); return getchar();