后面可以考虑支持,但是目前StarRocks 迭代比较快C++的 ABI/API 不能保证稳定。很容易导致升级后需要重新编写。所以如果是自己想实现C++的UDF可以尝试编写builtin函数的方式做扩展开发。
有没有计划支持类似MySQL的自定义函数的计划?比如MySQL中可以用以下语句创建
DELIMITER $$
USE database
$$
DROP FUNCTION IF EXISTS GetCodeByNM
$$
CREATE DEFINER=xxx
@%
FUNCTION GetCodeByNM
(cname VARCHAR(255)) RETURNS VARCHAR(2048) CHARSET utf8mb4
BEGIN
DECLARE retName VARCHAR(255) DEFAULT ‘’;
SELECT xxx INTO retName FROM table_name WHERE xxx = cname LIMIT 1;
IF retName IS NULL || retName =’’ THEN
SET retName=‘123’;
END IF;
RETURN retName;
END$$
DELIMITER ;
你好,目前在尝试编写builtin函数的方式扩展开发,有什么相关文档吗,或者demo之类的
这几天我写一下怎么添加 scalar builtin函数
好的,尤其是聚合函数,目前FE搭建成功了,be开发环境搭建有点困难,希望有个文档吧
你好,新版本udf是否支持jdk11,目前2.3.3版本jdk11的udf直接导致be crash
可以详细说下吗,发下 be.out的crash堆栈?
我们先自己测试下,再给你个回复
be jdk改1.8,udf jar包用jdk 1.8编译运行正常
be jdk改11,udf jar包用jdk 11编译be直接crash,堆栈如下:
也尝试过在jdk11下编译starrock,不过还是一样
好的,我们Fix下。
你好,能提供一下builtin的文档吗?
文档中的udaf太简单了。
如果想实现一个类似 ARRAY_AGG 的udaf,应该怎么构造state? serializeLength怎么写?
期望有类似clickhouse对多行bitmap求交集的函数:groupBitmapAndState
bitmap_union 能满足需求吗?
希望UDF包可以选择FE管理,不要强制用另外http服务。
FE自身具有高可用性,http服务需要额外的部署运维工作。
可以使用本地文件file:///path/udf.jar
这个后续有提供吗?最新的3.2版本文档说明,好像还是只支持标量函数,不支持Array入参,也没有提供类似lambda函数的方式