Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6ef8910f
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6ef8910f
编写于
8月 25, 2021
作者:
Z
zhaoyanggh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
move stmt.c to right place
上级
8df365f9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
545 addition
and
0 deletion
+545
-0
tests/script/api/stmt.c
tests/script/api/stmt.c
+545
-0
未找到文件。
tests/script/api/stmt.c
0 → 100644
浏览文件 @
6ef8910f
#include <assert.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include "taos.h"
void
execute_simple_sql
(
void
*
taos
,
char
*
sql
)
{
TAOS_RES
*
result
=
taos_query
(
taos
,
sql
);
if
(
result
==
NULL
||
taos_errno
(
result
)
!=
0
)
{
printf
(
"failed to %s, Reason: %s
\n
"
,
sql
,
taos_errstr
(
result
));
taos_free_result
(
result
);
exit
(
EXIT_FAILURE
);
}
taos_free_result
(
result
);
}
void
print_result
(
TAOS_RES
*
res
)
{
if
(
res
==
NULL
)
{
exit
(
EXIT_FAILURE
);
}
TAOS_ROW
row
=
NULL
;
int
num_fields
=
taos_num_fields
(
res
);
TAOS_FIELD
*
fields
=
taos_fetch_fields
(
res
);
while
((
row
=
taos_fetch_row
(
res
)))
{
char
temp
[
256
]
=
{
0
};
taos_print_row
(
temp
,
row
,
fields
,
num_fields
);
printf
(
"get result: %s
\n
"
,
temp
);
}
}
void
taos_stmt_init_test
()
{
printf
(
"start taos_stmt_init test
\n
"
);
void
*
taos
=
NULL
;
TAOS_STMT
*
stmt
=
NULL
;
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
==
NULL
);
// ASM ERROR
// assert(taos_stmt_close(stmt) != 0);
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
printf
(
"finish taos_stmt_init test
\n
"
);
}
void
taos_stmt_preprare_test
()
{
printf
(
"start taos_stmt_prepare test
\n
"
);
char
*
stmt_sql
=
calloc
(
1
,
1048576
);
TAOS_STMT
*
stmt
=
NULL
;
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
!=
0
);
void
*
taos
=
NULL
;
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create table super(ts timestamp, c1 int, c2 bigint, c3 float, c4 double, c5 binary(8), c6 "
"smallint, c7 tinyint, c8 bool, c9 nchar(8), c10 timestamp) tags (t1 int, t2 bigint, t3 float, t4 "
"double, t5 binary(8), t6 smallint, t7 tinyint, t8 bool, t9 nchar(8))"
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
// below will make client dead lock
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
// assert(taos_stmt_close(stmt) == 0);
// stmt = taos_stmt_init(taos);
assert
(
stmt
!=
NULL
);
sprintf
(
stmt_sql
,
"select from ?"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
!=
0
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?,?,?,?,?,?,?,?,?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
sprintf
(
stmt_sql
,
"insert into super values (?,?,?,?,?,?,?,?,?,?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
!=
0
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?,?,?,?,?,?,?,1,?,?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
free
(
stmt_sql
);
printf
(
"finish taos_stmt_prepare test
\n
"
);
}
void
taos_stmt_set_tbname_test
()
{
printf
(
"start taos_stmt_set_tbname test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
char
*
name
=
calloc
(
1
,
200
);
// ASM ERROR
// assert(taos_stmt_set_tbname(stmt, name) != 0);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create table super(ts timestamp, c1 int)"
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
assert
(
taos_stmt_set_tbname
(
stmt
,
name
)
!=
0
);
char
*
stmt_sql
=
calloc
(
1
,
1000
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
sprintf
(
name
,
"super"
);
assert
(
stmt
!=
NULL
);
assert
(
taos_stmt_set_tbname
(
stmt
,
name
)
==
0
);
free
(
name
);
free
(
stmt_sql
);
taos_stmt_close
(
stmt
);
printf
(
"finish taos_stmt_set_tbname test
\n
"
);
}
void
taos_stmt_set_tbname_tags_test
()
{
printf
(
"start taos_stmt_set_tbname_tags test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
char
*
name
=
calloc
(
1
,
20
);
TAOS_BIND
*
tags
=
calloc
(
1
,
sizeof
(
TAOS_BIND
));
// ASM ERROR
// assert(taos_stmt_set_tbname_tags(stmt, name, tags) != 0);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create stable super(ts timestamp, c1 int) tags (id int)"
);
execute_simple_sql
(
taos
,
"create table tb using super tags (1)"
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
char
*
stmt_sql
=
calloc
(
1
,
1000
);
sprintf
(
stmt_sql
,
"insert into ? using super tags (?) values (?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_set_tbname_tags
(
stmt
,
name
,
tags
)
!=
0
);
sprintf
(
name
,
"tb"
);
assert
(
taos_stmt_set_tbname_tags
(
stmt
,
name
,
tags
)
!=
0
);
int
t
=
1
;
tags
->
buffer_length
=
TSDB_DATA_TYPE_INT
;
tags
->
buffer_length
=
sizeof
(
uint32_t
);
tags
->
buffer
=
&
t
;
tags
->
length
=
&
tags
->
buffer_length
;
tags
->
is_null
=
NULL
;
assert
(
taos_stmt_set_tbname_tags
(
stmt
,
name
,
tags
)
==
0
);
free
(
stmt_sql
);
free
(
name
);
free
(
tags
);
taos_stmt_close
(
stmt
);
printf
(
"finish taos_stmt_set_tbname_tags test
\n
"
);
}
void
taos_stmt_set_sub_tbname_test
()
{
printf
(
"start taos_stmt_set_sub_tbname test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
char
*
name
=
calloc
(
1
,
200
);
// ASM ERROR
// assert(taos_stmt_set_sub_tbname(stmt, name) != 0);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create stable super(ts timestamp, c1 int) tags (id int)"
);
execute_simple_sql
(
taos
,
"create table tb using super tags (1)"
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
char
*
stmt_sql
=
calloc
(
1
,
1000
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_set_sub_tbname
(
stmt
,
name
)
!=
0
);
sprintf
(
name
,
"tb"
);
assert
(
taos_stmt_set_sub_tbname
(
stmt
,
name
)
==
0
);
// assert(taos_load_table_info(taos, "super, tb") == 0);
// assert(taos_stmt_set_sub_tbname(stmt, name) == 0);
free
(
name
);
free
(
stmt_sql
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
printf
(
"finish taos_stmt_set_sub_tbname test
\n
"
);
}
void
taos_stmt_bind_param_test
()
{
printf
(
"start taos_stmt_bind_param test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
TAOS_BIND
*
binds
=
NULL
;
assert
(
taos_stmt_bind_param
(
stmt
,
binds
)
!=
0
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create table super(ts timestamp, c1 int)"
);
stmt
=
taos_stmt_init
(
taos
);
char
*
stmt_sql
=
calloc
(
1
,
1000
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_bind_param
(
stmt
,
binds
)
!=
0
);
free
(
binds
);
TAOS_BIND
*
params
=
calloc
(
2
,
sizeof
(
TAOS_BIND
));
int64_t
ts
=
(
int64_t
)
1591060628000
;
params
[
0
].
buffer_type
=
TSDB_DATA_TYPE_TIMESTAMP
;
params
[
0
].
buffer_length
=
sizeof
(
uint64_t
);
params
[
0
].
buffer
=
&
ts
;
params
[
0
].
length
=
&
params
[
0
].
buffer_length
;
params
[
0
].
is_null
=
NULL
;
int32_t
i
=
(
int32_t
)
21474
;
params
[
1
].
buffer_type
=
TSDB_DATA_TYPE_INT
;
params
[
1
].
buffer_length
=
sizeof
(
int32_t
);
params
[
1
].
buffer
=
&
i
;
params
[
1
].
length
=
&
params
[
1
].
buffer_length
;
params
[
1
].
is_null
=
NULL
;
assert
(
taos_stmt_bind_param
(
stmt
,
params
)
!=
0
);
assert
(
taos_stmt_set_tbname
(
stmt
,
"super"
)
==
0
);
assert
(
taos_stmt_bind_param
(
stmt
,
params
)
==
0
);
free
(
params
);
free
(
stmt_sql
);
taos_stmt_close
(
stmt
);
printf
(
"finish taos_stmt_bind_param test
\n
"
);
}
void
taos_stmt_bind_single_param_batch_test
()
{
printf
(
"start taos_stmt_bind_single_param_batch test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
TAOS_MULTI_BIND
*
bind
=
NULL
;
assert
(
taos_stmt_bind_single_param_batch
(
stmt
,
bind
,
0
)
!=
0
);
printf
(
"finish taos_stmt_bind_single_param_batch test
\n
"
);
}
void
taos_stmt_bind_param_batch_test
()
{
printf
(
"start taos_stmt_bind_param_batch test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
TAOS_MULTI_BIND
*
bind
=
NULL
;
assert
(
taos_stmt_bind_param_batch
(
stmt
,
bind
)
!=
0
);
printf
(
"finish taos_stmt_bind_param_batch test
\n
"
);
}
void
taos_stmt_add_batch_test
()
{
printf
(
"start taos_stmt_add_batch test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
assert
(
taos_stmt_add_batch
(
stmt
)
!=
0
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create table super(ts timestamp, c1 int)"
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
char
*
stmt_sql
=
calloc
(
1
,
1000
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_add_batch
(
stmt
)
!=
0
);
TAOS_BIND
*
params
=
calloc
(
2
,
sizeof
(
TAOS_BIND
));
int64_t
ts
=
(
int64_t
)
1591060628000
;
params
[
0
].
buffer_type
=
TSDB_DATA_TYPE_TIMESTAMP
;
params
[
0
].
buffer_length
=
sizeof
(
uint64_t
);
params
[
0
].
buffer
=
&
ts
;
params
[
0
].
length
=
&
params
[
0
].
buffer_length
;
params
[
0
].
is_null
=
NULL
;
int32_t
i
=
(
int32_t
)
21474
;
params
[
1
].
buffer_type
=
TSDB_DATA_TYPE_INT
;
params
[
1
].
buffer_length
=
sizeof
(
int32_t
);
params
[
1
].
buffer
=
&
i
;
params
[
1
].
length
=
&
params
[
1
].
buffer_length
;
params
[
1
].
is_null
=
NULL
;
assert
(
taos_stmt_set_tbname
(
stmt
,
"super"
)
==
0
);
assert
(
taos_stmt_bind_param
(
stmt
,
params
)
==
0
);
assert
(
taos_stmt_add_batch
(
stmt
)
==
0
);
free
(
params
);
free
(
stmt_sql
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
printf
(
"finish taos_stmt_add_batch test
\n
"
);
}
void
taos_stmt_execute_test
()
{
printf
(
"start taos_stmt_execute test
\n
"
);
TAOS_STMT
*
stmt
=
NULL
;
assert
(
taos_stmt_execute
(
stmt
)
!=
0
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create table super(ts timestamp, c1 int)"
);
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
assert
(
taos_stmt_execute
(
stmt
)
!=
0
);
char
*
stmt_sql
=
calloc
(
1
,
1000
);
sprintf
(
stmt_sql
,
"insert into ? values (?,?)"
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
assert
(
taos_stmt_execute
(
stmt
)
!=
0
);
TAOS_BIND
*
params
=
calloc
(
2
,
sizeof
(
TAOS_BIND
));
int64_t
ts
=
(
int64_t
)
1591060628000
;
params
[
0
].
buffer_type
=
TSDB_DATA_TYPE_TIMESTAMP
;
params
[
0
].
buffer_length
=
sizeof
(
uint64_t
);
params
[
0
].
buffer
=
&
ts
;
params
[
0
].
length
=
&
params
[
0
].
buffer_length
;
params
[
0
].
is_null
=
NULL
;
int32_t
i
=
(
int32_t
)
21474
;
params
[
1
].
buffer_type
=
TSDB_DATA_TYPE_INT
;
params
[
1
].
buffer_length
=
sizeof
(
int32_t
);
params
[
1
].
buffer
=
&
i
;
params
[
1
].
length
=
&
params
[
1
].
buffer_length
;
params
[
1
].
is_null
=
NULL
;
assert
(
taos_stmt_set_tbname
(
stmt
,
"super"
)
==
0
);
assert
(
taos_stmt_execute
(
stmt
)
!=
0
);
assert
(
taos_stmt_bind_param
(
stmt
,
params
)
==
0
);
assert
(
taos_stmt_execute
(
stmt
)
!=
0
);
assert
(
taos_stmt_add_batch
(
stmt
)
==
0
);
assert
(
taos_stmt_execute
(
stmt
)
==
0
);
free
(
params
);
free
(
stmt_sql
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
printf
(
"finish taos_stmt_execute test
\n
"
);
}
void
taos_stmt_use_result_query
(
void
*
taos
,
char
*
col
,
int
type
)
{
TAOS_STMT
*
stmt
=
taos_stmt_init
(
taos
);
assert
(
stmt
!=
NULL
);
char
*
stmt_sql
=
calloc
(
1
,
1024
);
struct
{
int64_t
long_value
;
int64_t
ts_value
;
uint64_t
ulong_value
;
int32_t
int_value
;
uint32_t
uint_value
;
int16_t
small_value
;
uint16_t
usmall_value
;
int8_t
tiny_value
;
uint8_t
utiny_value
;
float
float_value
;
double
double_value
;
char
binary_value
[
10
];
char
nchar_value
[
32
];
}
v
=
{
0
};
v
.
ts_value
=
(
int64_t
)
1591060628000
;
v
.
long_value
=
(
int64_t
)
1
;
v
.
int_value
=
(
int32_t
)
1
;
v
.
small_value
=
(
int16_t
)
1
;
v
.
tiny_value
=
(
int8_t
)
1
;
v
.
ulong_value
=
(
uint64_t
)
1
;
v
.
uint_value
=
(
uint32_t
)
1
;
v
.
usmall_value
=
(
uint16_t
)
1
;
v
.
utiny_value
=
(
uint8_t
)
1
;
v
.
float_value
=
(
float
)
1
;
v
.
double_value
=
(
double
)
1
;
strcpy
(
v
.
binary_value
,
"abcdefgh"
);
strcpy
(
v
.
nchar_value
,
"一二三四五六七八"
);
uintptr_t
nchar_value_len
=
strlen
(
v
.
nchar_value
);
sprintf
(
stmt_sql
,
"select * from stmt_test.t1 where %s = ?"
,
col
);
printf
(
"stmt_sql: %s
\n
"
,
stmt_sql
);
assert
(
taos_stmt_prepare
(
stmt
,
stmt_sql
,
0
)
==
0
);
TAOS_BIND
*
params
=
calloc
(
1
,
sizeof
(
TAOS_BIND
));
params
->
buffer_type
=
type
;
params
->
is_null
=
NULL
;
switch
(
type
)
{
case
TSDB_DATA_TYPE_TIMESTAMP
:
params
->
buffer_length
=
sizeof
(
v
.
ts_value
);
params
->
buffer
=
&
v
.
ts_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_INT
:
params
->
buffer_length
=
sizeof
(
v
.
int_value
);
params
->
buffer
=
&
v
.
int_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_BIGINT
:
params
->
buffer_length
=
sizeof
(
v
.
long_value
);
params
->
buffer
=
&
v
.
long_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_FLOAT
:
params
->
buffer_length
=
sizeof
(
v
.
float_value
);
params
->
buffer
=
&
v
.
float_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_DOUBLE
:
params
->
buffer_length
=
sizeof
(
v
.
double_value
);
params
->
buffer
=
&
v
.
double_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_BINARY
:
params
->
buffer_length
=
sizeof
(
v
.
binary_value
);
params
->
buffer
=
&
v
.
binary_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_SMALLINT
:
params
->
buffer_length
=
sizeof
(
v
.
small_value
);
params
->
buffer
=
&
v
.
small_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_TINYINT
:
params
->
buffer_length
=
sizeof
(
v
.
tiny_value
);
params
->
buffer
=
&
v
.
tiny_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_BOOL
:
params
->
buffer_length
=
sizeof
(
v
.
tiny_value
);
params
->
buffer
=
&
v
.
tiny_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_NCHAR
:
params
->
buffer_length
=
sizeof
(
v
.
nchar_value
);
params
->
buffer
=
&
v
.
nchar_value
;
params
->
length
=
&
nchar_value_len
;
break
;
case
TSDB_DATA_TYPE_UINT
:
params
->
buffer_length
=
sizeof
(
v
.
uint_value
);
params
->
buffer
=
&
v
.
uint_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_UBIGINT
:
params
->
buffer_length
=
sizeof
(
v
.
ulong_value
);
params
->
buffer
=
&
v
.
ulong_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_USMALLINT
:
params
->
buffer_length
=
sizeof
(
v
.
usmall_value
);
params
->
buffer
=
&
v
.
usmall_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
case
TSDB_DATA_TYPE_UTINYINT
:
params
->
buffer_length
=
sizeof
(
v
.
utiny_value
);
params
->
buffer
=
&
v
.
utiny_value
;
params
->
length
=
&
params
->
buffer_length
;
break
;
default:
printf
(
"Cannnot find type: %d
\n
"
,
type
);
break
;
}
assert
(
taos_stmt_bind_param
(
stmt
,
params
)
==
0
);
assert
(
taos_stmt_execute
(
stmt
)
==
0
);
TAOS_RES
*
result
=
taos_stmt_use_result
(
stmt
);
assert
(
result
!=
NULL
);
print_result
(
result
);
assert
(
taos_stmt_close
(
stmt
)
==
0
);
free
(
params
);
free
(
stmt_sql
);
taos_free_result
(
result
);
}
void
taos_stmt_use_result_test
()
{
printf
(
"start taos_stmt_use_result test
\n
"
);
void
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
NULL
,
0
);
if
(
taos
==
NULL
)
{
printf
(
"Cannot connect to tdengine server
\n
"
);
exit
(
EXIT_FAILURE
);
}
execute_simple_sql
(
taos
,
"drop database if exists stmt_test"
);
execute_simple_sql
(
taos
,
"create database stmt_test"
);
execute_simple_sql
(
taos
,
"use stmt_test"
);
execute_simple_sql
(
taos
,
"create table super(ts timestamp, c1 int, c2 bigint, c3 float, c4 double, c5 binary(8), c6 smallint, c7 tinyint, "
"c8 bool, c9 nchar(8), c10 timestamp, c11 int unsigned, c12 bigint unsigned, c13 smallint unsigned, c14 tinyint "
"unsigned) tags (t1 int, t2 bigint, t3 float, t4 double, t5 binary(8), t6 smallint, t7 tinyint, t8 bool, t9 "
"nchar(8), t10 int unsigned, t11 bigint unsigned, t12 smallint unsigned, t13 tinyint unsigned)"
);
execute_simple_sql
(
taos
,
"create table t1 using super tags (1, 1, 1, 1, 'abcdefgh',1,1,1,'一二三四五六七八', 1, 1, 1, 1)"
);
execute_simple_sql
(
taos
,
"insert into t1 values (1591060628000, 1, 1, 1, 1, 'abcdefgh',1,1,1,'一二三四五六七八', now, 1, 1, 1, 1)"
);
execute_simple_sql
(
taos
,
"insert into t1 values (1591060628001, 1, 1, 1, 1, 'abcdefgh',1,1,1,'一二三四五六七八', now, 1, 1, 1, 1)"
);
// taos_stmt_use_result_query(taos, "ts", TSDB_DATA_TYPE_TIMESTAMP);
taos_stmt_use_result_query
(
taos
,
"c1"
,
TSDB_DATA_TYPE_INT
);
taos_stmt_use_result_query
(
taos
,
"c2"
,
TSDB_DATA_TYPE_BIGINT
);
taos_stmt_use_result_query
(
taos
,
"c3"
,
TSDB_DATA_TYPE_FLOAT
);
taos_stmt_use_result_query
(
taos
,
"c4"
,
TSDB_DATA_TYPE_DOUBLE
);
taos_stmt_use_result_query
(
taos
,
"c5"
,
TSDB_DATA_TYPE_BINARY
);
taos_stmt_use_result_query
(
taos
,
"c6"
,
TSDB_DATA_TYPE_SMALLINT
);
taos_stmt_use_result_query
(
taos
,
"c7"
,
TSDB_DATA_TYPE_TINYINT
);
taos_stmt_use_result_query
(
taos
,
"c8"
,
TSDB_DATA_TYPE_BOOL
);
taos_stmt_use_result_query
(
taos
,
"c9"
,
TSDB_DATA_TYPE_NCHAR
);
// taos_stmt_use_result_query(taos, "c10", TSDB_DATA_TYPE_TIMESTAMP);
taos_stmt_use_result_query
(
taos
,
"c11"
,
TSDB_DATA_TYPE_UINT
);
taos_stmt_use_result_query
(
taos
,
"c12"
,
TSDB_DATA_TYPE_UBIGINT
);
taos_stmt_use_result_query
(
taos
,
"c13"
,
TSDB_DATA_TYPE_USMALLINT
);
taos_stmt_use_result_query
(
taos
,
"c14"
,
TSDB_DATA_TYPE_UTINYINT
);
printf
(
"finish taos_stmt_use_result test
\n
"
);
}
void
taos_stmt_close_test
()
{
printf
(
"start taos_stmt_close test
\n
"
);
// ASM ERROR
// TAOS_STMT *stmt = NULL;
// assert(taos_stmt_close(stmt) != 0);
printf
(
"finish taos_stmt_close test
\n
"
);
}
void
test_api_reliability
()
{
// ASM catch memory leak
taos_stmt_init_test
();
taos_stmt_preprare_test
();
taos_stmt_set_tbname_test
();
taos_stmt_set_tbname_tags_test
();
taos_stmt_set_sub_tbname_test
();
taos_stmt_bind_param_test
();
taos_stmt_bind_single_param_batch_test
();
taos_stmt_bind_param_batch_test
();
taos_stmt_add_batch_test
();
taos_stmt_execute_test
();
taos_stmt_close_test
();
}
void
test_query
()
{
taos_stmt_use_result_test
();
}
int
main
(
int
argc
,
char
*
argv
[])
{
// test_api_reliability();
test_query
();
return
0
;
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录