Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
817eed74
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
817eed74
编写于
9月 15, 2022
作者:
S
slzhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: prototype to verify stream + udf as task framework
上级
d0df914d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
33 addition
and
16 deletion
+33
-16
source/libs/function/src/udfd.c
source/libs/function/src/udfd.c
+16
-3
source/libs/function/test/udf1.c
source/libs/function/test/udf1.c
+4
-0
tests/script/tsim/query/udf.sim
tests/script/tsim/query/udf.sim
+13
-13
未找到文件。
source/libs/function/src/udfd.c
浏览文件 @
817eed74
...
...
@@ -29,6 +29,8 @@
#include "trpc.h"
// clang-foramt on
SArray
*
udfdResidentFuncs
;
typedef
struct
SUdfdContext
{
uv_loop_t
*
loop
;
uv_pipe_t
ctrlPipe
;
...
...
@@ -576,9 +578,9 @@ int32_t udfdLoadUdf(char *udfName, SUdf *udf) {
uv_dlsym
(
&
udf
->
lib
,
finishFuncName
,
(
void
**
)(
&
udf
->
aggFinishFunc
));
char
mergeFuncName
[
TSDB_FUNC_NAME_LEN
+
6
]
=
{
0
};
char
*
mergeSuffix
=
"_merge"
;
strncpy
(
finishFuncName
,
processFuncName
,
sizeof
(
finish
FuncName
));
strncat
(
finish
FuncName
,
mergeSuffix
,
strlen
(
mergeSuffix
));
uv_dlsym
(
&
udf
->
lib
,
finish
FuncName
,
(
void
**
)(
&
udf
->
aggMergeFunc
));
strncpy
(
mergeFuncName
,
processFuncName
,
sizeof
(
merge
FuncName
));
strncat
(
merge
FuncName
,
mergeSuffix
,
strlen
(
mergeSuffix
));
uv_dlsym
(
&
udf
->
lib
,
merge
FuncName
,
(
void
**
)(
&
udf
->
aggMergeFunc
));
}
return
0
;
}
...
...
@@ -941,6 +943,14 @@ void udfdConnectMnodeThreadFunc(void *args) {
}
}
int32_t
udfdInitResidentFuncs
()
{
return
TSDB_CODE_SUCCESS
;
}
int32_t
udfdDeinitResidentFuncs
()
{
return
TSDB_CODE_SUCCESS
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
if
(
!
taosCheckSystemIsLittleEnd
())
{
printf
(
"failed to start since on non-little-end machines
\n
"
);
...
...
@@ -978,6 +988,8 @@ int main(int argc, char *argv[]) {
return
-
5
;
}
udfdInitResidentFuncs
();
uv_thread_t
mnodeConnectThread
;
uv_thread_create
(
&
mnodeConnectThread
,
udfdConnectMnodeThreadFunc
,
NULL
);
...
...
@@ -986,5 +998,6 @@ int main(int argc, char *argv[]) {
removeListeningPipe
();
udfdCloseClientRpc
();
udfdDeinitResidentFuncs
();
return
0
;
}
source/libs/function/test/udf1.c
浏览文件 @
817eed74
...
...
@@ -40,6 +40,10 @@ DLL_EXPORT int32_t udf1(SUdfDataBlock* block, SUdfColumn *resultCol) {
udfColDataSet
(
resultCol
,
i
,
(
char
*
)
&
luckyNum
,
false
);
}
}
TAOS
*
taos
=
taos_connect
(
"127.0.0.1"
,
"root"
,
"taosdata"
,
"gpd"
,
6030
);
taos_query
(
taos
,
"create st (ts timestamp, f int) tags(t int)"
);
taos_query
(
taos
,
"insert into t using st tags(1) values(now, 1) "
);
taos_query
(
taos
,
"select * from gpd.t"
);
//to simulate actual processing delay by udf
#ifdef LINUX
usleep
(
1
*
1000
);
// usleep takes sleep time in us (1 millionth of a second)
...
...
tests/script/tsim/query/udf.sim
浏览文件 @
817eed74
...
...
@@ -144,18 +144,18 @@ if $data20 != 8.000000000 then
return -1
endi
sql drop function bit_and;
sql show functions;
if $rows != 1 then
return -1
endi
if $data00 != @l2norm@ then
return -1
endi
sql drop function l2norm;
sql show functions;
if $rows != 0 then
return -1
endi
#
sql drop function bit_and;
#
sql show functions;
#
if $rows != 1 then
#
return -1
#
endi
#
if $data00 != @l2norm@ then
#
return -1
#
endi
#
sql drop function l2norm;
#
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录