更新时间:2025-12-10 GMT+08:00
UDTF
UDTF整体开发流程可参考Scalar UDF,需要注意以下几点:
- Handler目前仅支持返回迭代器,推荐使用yield。
- UDTF不支持开启并发和向量化计算。
- 当Handler出现死循环,无限输出结果时,FabricSQL会根据超时时间自动关闭程序,默认超时时间为1000s。
示例
- 创建UDTF:
CREATE FUNCTION py_generate_series(start int, endnum int, step int) RETURNS TABLE(a int) LANGUAGE python RUNTIME_VERSION='3.11.2' HANDLER='generate_series' as $$ def generate_series(start, endnum, step): current = start while current <= endnum: yield current current += step $$; - 执行UDTF:
SELECT py_generate_series(1,4,1); py_generate_series ---------------------- 1 2 3 4 (4 rows)
父主题: UDF开发(Python)