Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
3db80837
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3db80837
编写于
8月 04, 2022
作者:
S
shenglian zhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: restore tsim/query/udf.sim
上级
e07d14b5
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
176 addition
and
8 deletion
+176
-8
tests/script/sh/bit_and.c
tests/script/sh/bit_and.c
+3
-3
tests/script/sh/compile_udf.sh
tests/script/sh/compile_udf.sh
+10
-0
tests/script/sh/sqr_sum.c
tests/script/sh/sqr_sum.c
+5
-5
tests/script/tsim/query/udf.sim
tests/script/tsim/query/udf.sim
+158
-0
未找到文件。
tests/script/sh/bit
wise
_and.c
→
tests/script/sh/bit_and.c
浏览文件 @
3db80837
...
...
@@ -4,15 +4,15 @@
#include "taosudf.h"
DLL_EXPORT
int32_t
bit
wise
_and_init
()
{
DLL_EXPORT
int32_t
bit_and_init
()
{
return
0
;
}
DLL_EXPORT
int32_t
bit
wise
_and_destroy
()
{
DLL_EXPORT
int32_t
bit_and_destroy
()
{
return
0
;
}
DLL_EXPORT
int32_t
bit
wise
_and
(
SUdfDataBlock
*
block
,
SUdfColumn
*
resultCol
)
{
DLL_EXPORT
int32_t
bit_and
(
SUdfDataBlock
*
block
,
SUdfColumn
*
resultCol
)
{
if
(
block
->
numOfCols
<
2
)
{
return
TSDB_CODE_UDF_INVALID_INPUT
;
...
...
tests/script/sh/compile_udf.sh
0 → 100644
浏览文件 @
3db80837
set
+e
rm
-rf
/tmp/udf/libbitand.so /tmp/udf/libsqrsum.so
mkdir
-p
/tmp/udf
echo
"compile udf bit_and and sqr_sum"
gcc
-fPIC
-shared
bit_and.c
-o
/tmp/udf/libbitand.so
gcc
-fPIC
-shared
sqr_sum.c
-o
/tmp/udf/libsqrsum.so
echo
"debug show /tmp/udf/*.so"
ls
/tmp/udf/
*
.so
tests/script/sh/sq
uares
_sum.c
→
tests/script/sh/sq
r
_sum.c
浏览文件 @
3db80837
...
...
@@ -5,22 +5,22 @@
#include "taosudf.h"
DLL_EXPORT
int32_t
sq
uares
_sum_init
()
{
DLL_EXPORT
int32_t
sq
r
_sum_init
()
{
return
0
;
}
DLL_EXPORT
int32_t
sq
uares
_sum_destroy
()
{
DLL_EXPORT
int32_t
sq
r
_sum_destroy
()
{
return
0
;
}
DLL_EXPORT
int32_t
sq
uares
_sum_start
(
SUdfInterBuf
*
buf
)
{
DLL_EXPORT
int32_t
sq
r
_sum_start
(
SUdfInterBuf
*
buf
)
{
*
(
int64_t
*
)(
buf
->
buf
)
=
0
;
buf
->
bufLen
=
sizeof
(
double
);
buf
->
numOfResult
=
0
;
return
0
;
}
DLL_EXPORT
int32_t
sq
uares
_sum
(
SUdfDataBlock
*
block
,
SUdfInterBuf
*
interBuf
,
SUdfInterBuf
*
newInterBuf
)
{
DLL_EXPORT
int32_t
sq
r
_sum
(
SUdfDataBlock
*
block
,
SUdfInterBuf
*
interBuf
,
SUdfInterBuf
*
newInterBuf
)
{
double
sumSquares
=
*
(
double
*
)
interBuf
->
buf
;
int8_t
numNotNull
=
0
;
for
(
int32_t
i
=
0
;
i
<
block
->
numOfCols
;
++
i
)
{
...
...
@@ -67,7 +67,7 @@ DLL_EXPORT int32_t squares_sum(SUdfDataBlock* block, SUdfInterBuf *interBuf, SUd
return
0
;
}
DLL_EXPORT
int32_t
udf2
_finish
(
SUdfInterBuf
*
buf
,
SUdfInterBuf
*
resultData
)
{
DLL_EXPORT
int32_t
sqr
_finish
(
SUdfInterBuf
*
buf
,
SUdfInterBuf
*
resultData
)
{
if
(
buf
->
numOfResult
==
0
)
{
resultData
->
numOfResult
=
0
;
return
0
;
...
...
tests/script/tsim/query/udf.sim
0 → 100644
浏览文件 @
3db80837
system_content printf %OS%
if $system_content == Windows_NT then
return 0;
endi
system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c udf -v 1
system sh/exec.sh -n dnode1 -s start
sql connect
print ======== step1 udf
system sh/compile_udf.sh
sql create database udf vgroups 3;
sql use udf;
sql show databases;
sql create table t (ts timestamp, f int);
sql insert into t values(now, 1)(now+1s, 2);
system_content printf %OS%
if $system_content == Windows_NT then
return 0;
endi
if $system_content == Windows_NT then
sql create function bit_and as 'C:\\Windows\\Temp\\bitand.dll' outputtype int bufSize 8;
sql create aggregate function sqr_sum as 'C:\\Windows\\Temp\\sqrsum.dll' outputtype double bufSize 8;
else
sql create function bit_and as '/tmp/udf/libbitand.so' outputtype int bufSize 8;
sql create aggregate function sqr_sum as '/tmp/udf/libsqrsum.so' outputtype double bufSize 8;
endi
sql show functions;
if $rows != 2 then
return -1
endi
sql select bit_and(f, f) from t;
if $rows != 2 then
return -1
endi
if $data00 != 1 then
return -1
endi
if $data10 != 2 then
return -1
endi
sql select sqr_sum(f) from t;
if $rows != 1 then
print expect 1, actual $rows
return -1
endi
if $data00 != 2.236067977 then
return -1
endi
sql create table t2 (ts timestamp, f1 int, f2 int);
sql insert into t2 values(now, 0, 0)(now+1s, 1, 1);
sql select bit_add(f1, f2) from t2;
if $rows != 2 then
return -1
endi
if $data00 != 0 then
return -1
endi
if $data10 != 1 then
return -1
endi
sql select sqr_sum(f1, f2) from t2;
if $rows != 1 then
return -1
endi
if $data00 != 1.414213562 then
return -1
endi
sql insert into t2 values(now+2s, 1, null)(now+3s, null, 2);
sql select bit_add(f1, f2) from t2;
print $rows , $data00 , $data10 , $data20 , $data30
if $rows != 4 then
return -1
endi
if $data00 != 0 then
return -1
endi
if $data10 != 1 then
return -1
endi
if $data20 != NULL then
return -1
endi
if $data30 != NULL then
return -1
endi
sql select sqr_sum(f1, f2) from t2;
print $rows, $data00
if $rows != 1 then
return -1
endi
if $data00 != 2.645751311 then
return -1
endi
sql insert into t2 values(now+4s, 4, 8)(now+5s, 5, 9);
sql select sqr_sum(f1-f2), sqr_sum(f1+f2) from t2;
print $rows , $data00 , $data01
if $rows != 1 then
return -1;
endi
if $data00 != 5.656854249 then
return -1
endi
if $data01 != 18.547236991 then
return -1
endi
sql select sqr_sum(bit_and(f2-f1, f2-f1)), sqr_sum(bit_and(f2/f1, f1/f2)) from t2;
print $rows , $data00 , $data01
if $rows != 1 then
return -1
endi
if $data00 != 176.000000000 then
return -1
endi
if $data01 != 152.420471066 then
return -1
endi
sql select sqr_sum(f2) from udf.t2 group by 1-bit_and(f1);
print $rows , $data00 , $data10
if $rows != 2 then
return -1
endi
if $data00 != 2.000000000 then
return -1
endi
if $data10 != 12.083045974 then
return -1
endi
sql drop function bit_and;
sql show functions;
if $rows != 1 then
return -1
endi
if $data00 != @sqr_sum@ then
return -1
endi
sql drop function sqr_sum;
sql show functions;
if $rows != 0 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录