Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
52d31718
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看板
提交
52d31718
编写于
8月 08, 2022
作者:
S
shenglian zhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: modify udf document
上级
c91cc310
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
12 deletion
+12
-12
docs/zh/07-develop/09-udf.md
docs/zh/07-develop/09-udf.md
+12
-12
未找到文件。
docs/zh/07-develop/09-udf.md
浏览文件 @
52d31718
...
...
@@ -8,9 +8,9 @@ description: "支持用户编码的聚合函数和标量函数,在查询中嵌
从 2.2.0.0 版本开始,TDengine 支持通过 C/C++ 语言进行 UDF 定义。接下来结合示例讲解 UDF 的使用方法。
用户可以通过 UDF 实现两类函数: 标量函数
和
聚合函数。
用户可以通过 UDF 实现两类函数: 标量函数
和
聚合函数。
##
用 C/C++ 语言来定义 UDF
##
接口函数
### 标量函数
...
...
@@ -20,7 +20,7 @@ description: "支持用户编码的聚合函数和标量函数,在查询中嵌
其中 udf 是函数名的占位符,以上述模板实现的函数对行数据块进行标量计算。
-
scalarFunction
中各参数的具体含义是:
-
其
中各参数的具体含义是:
-
inputDataBlock: 输入的数据块
-
resultColumn: 输出列
...
...
@@ -28,12 +28,12 @@ description: "支持用户编码的聚合函数和标量函数,在查询中嵌
用户可以按照如下函数模板定义自己的聚合函数。
`int32_t udf_start(SUdfInterBuf *interBuf)`
`int32_t ud
a
f_start(SUdfInterBuf *interBuf)`
`int32_t udf(SUdfDataBlock* inputBlock, SUdfInterBuf *interBuf, SUdfInterBuf *newInterBuf)`
`int32_t ud
a
f(SUdfDataBlock* inputBlock, SUdfInterBuf *interBuf, SUdfInterBuf *newInterBuf)`
`int32_t udf_finish(SUdfInterBuf* interBuf, SUdfInterBuf *result)`
其中 udf 是函数名的占位符。其中各参数的具体含义是:
`int32_t ud
a
f_finish(SUdfInterBuf* interBuf, SUdfInterBuf *result)`
其中 ud
a
f 是函数名的占位符。其中各参数的具体含义是:
-
interBuf:中间结果 buffer。
-
inputBlock:输入的数据块。
...
...
@@ -48,12 +48,8 @@ description: "支持用户编码的聚合函数和标量函数,在查询中嵌
`int32_t udf_destroy()`
其中 udf 是函数名的占位符
。udf_init 完成初始化工作。 udf_destroy 完成清理工作
。
其中 udf 是函数名的占位符
,可以替换成自己的函数名。udf_init 完成初始化工作。 udf_destroy 完成清理工作。如果没有初始化工作,无需定义udf_init函数。如果没有清理工作,无需定义udf_destroy函数
。
:::note
如果对应的函数不需要具体的功能,也需要实现一个空函数。
:::
### UDF 数据结构
```
c
...
...
@@ -187,6 +183,8 @@ SELECT X(c1,c2) FROM table/stable;
### 标量函数示例 [bit_and](https://github.com/taosdata/TDengine/blob/develop/tests/script/sh/bit_and.c)
bit_add 实现多列的按位与功能。如果只有一列,返回这一列。bit_add 忽略空值。
<details>
<summary>
bit_and.c
</summary>
...
...
@@ -198,6 +196,8 @@ SELECT X(c1,c2) FROM table/stable;
### 聚合函数示例 [sqr_sum](https://github.com/taosdata/TDengine/blob/develop/tests/script/sh/sqr_sum.c)
sqr_sum 实现了输入列的所有数据的二阶范数,即对每个数据先平方,再累加求和,最后开方。
<details>
<summary>
sqr_sum.c
</summary>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录