当前位置: 首页 > article >正文

DeepSeek总结的DuckDB动态函数应用插件

来源https://github.com/teaguesterling/duckdb_func_applyDuckDB FuncApply 扩展DuckDB 的动态函数应用 - 在运行时通过名称调用函数。概述FuncApply 扩展为 DuckDB 提供了动态函数调用能力允许您使用apply()通过名称调用任何标量函数或宏使用apply_with()动态传递参数使用apply_table()和apply_table_with()动态调用表函数使用function_exists()检查函数是否存在这对于数据驱动的转换、动态 SQL 生成以及构建灵活的数据管道非常有用。快速开始-- 加载扩展LOADfunc_apply;-- 动态调用标量函数SELECTapply(upper,hello world);-- 结果: HELLO WORLDSELECTapply(substr,hello world,7,5);-- 结果: world-- 动态调用表函数SELECT*FROMapply_table(range,5);-- 返回: 0, 1, 2, 3, 4SELECT*FROMapply_table(generate_series,1,10,2);-- 返回: 1, 3, 5, 7, 9-- 在调用前检查函数是否存在SELECTfunction_exists(my_custom_func);-- 结果: true/false函数apply(func_name, ...args)使用提供的参数通过名称调用一个函数。-- 字符串函数SELECTapply(upper,hello);-- HELLOSELECTapply(concat,a,b,c);-- abcSELECTapply(substr,hello,2,3);-- ell-- 数值函数SELECTapply(abs,-42);-- 42SELECTapply(round,3.14159,2);-- 3.14-- 列表函数宏SELECTapply(list_sum,[1,2,3,4]);-- 10SELECTapply(list_reverse,[1,2,3]);-- [3, 2, 1]-- 支持命名参数SELECTapply(substr,hello world,start:7,length :5);-- worldapply_with(func_name, args, kwargs)使用作为列表提供的参数调用一个函数。-- 基本用法SELECTapply_with(upper,args :[hello]);-- 结果: HELLO-- 使用位置语法SELECTapply_with(concat,[a,b,c],NULL);-- 结果: abc注意DuckDB 列表必须是同质的相同类型。对于混合类型的参数请直接使用apply()。apply_table(func_name, ...args)通过名称调用一个表函数并将其结果作为表返回。-- 基本范围SELECT*FROMapply_table(range,5);-- 返回: 0, 1, 2, 3, 4-- 带步长的生成序列SELECT*FROMapply_table(generate_series,1,10,2);-- 返回: 1, 3, 5, 7, 9-- 在连接中使用SELECTd.*,r.rangeasidxFROMmy_data dCROSSJOINapply_table(range,3)r;-- 在子查询中使用SELECT*FROMmy_tableWHEREidIN(SELECTrangeFROMapply_table(range,100));apply_table_with(func_name, args, kwargs)使用作为列表提供的参数和可选的命名参数调用一个表函数。-- 基本用法SELECT*FROMapply_table_with(range,args :[5]);-- 返回: 0, 1, 2, 3, 4-- 使用命名参数SELECT*FROMapply_table_with(generate_series,args :[1],kwargs :{stop:10,step:2});-- 返回: 1, 3, 5, 7, 9function_exists(name)如果存在具有给定名称的函数则返回 true。SELECTfunction_exists(upper);-- trueSELECTfunction_exists(nonexistent);-- false-- 用于条件逻辑SELECTCASEWHENfunction_exists(func_name)THENapply(func_name,value)ELSEN/AENDFROMmy_table;支持的函数类型类型是否支持使用的函数示例标量函数是apply,apply_withupper,abs,substr宏是apply,apply_withlist_sum,list_reverse表函数是apply_table,apply_table_withrange,generate_series聚合函数否不适用sum,avg用例数据驱动的转换-- 在表中存储转换规则CREATETABLEtransforms(column_nameVARCHAR,func_nameVARCHAR);INSERTINTOtransformsVALUES(name,upper),(email,lower),(phone,trim);-- 动态应用转换SELECTapply(t.func_name,d.value)asresultFROMdatadJOINtransforms tONd.columnt.column_name;动态函数选择-- 根据数据类型选择函数SELECTapply(CASEtypeof(value)WHENVARCHARTHENupperWHENINTEGERTHENabsELSEto_stringEND,value)FROMmy_table;执行前验证-- 仅调用存在的函数SELECTfunc_name,CASEWHENfunction_exists(func_name)THENapply(func_name,test)ELSEFunction not foundENDasresultFROMfunction_list;动态表生成-- 根据配置生成动态行数SELECT*FROMapply_table(range,row_count)WHERErow_count(SELECTmax_rowsFROMconfig);-- 在交叉连接中使用表函数进行数据扩展SELECTd.*,idx.rangeaspositionFROMmy_data dCROSSJOINapply_table(range,d.repeat_count)idx;构建先决条件DuckDB 扩展使用 VCPKG 进行依赖管理gitclone https://github.com/Microsoft/vcpkg.git ./vcpkg/bootstrap-vcpkg.shexportVCPKG_TOOLCHAIN_PATHpwd/vcpkg/scripts/buildsystems/vcpkg.cmake构建make测试maketest安装从源码构建构建后扩展位于./build/release/extension/func_apply/func_apply.duckdb_extension在 DuckDB 中加载它LOADpath/to/func_apply.duckdb_extension;未签名扩展要加载未签名的扩展请使用以下方式启动 DuckDBduckdb-unsigned或者在 Python 中conduckdb.connect(:memory:,config{allow_unsigned_extensions:true})文档请参阅 docs/ 文件夹获取详细文档API 参考 - 完整的函数参考示例 - 使用示例和模式内部实现 - 实现细节许可证MIT 许可证 - 详情请参阅 LICENSE 文件。

相关文章:

DeepSeek总结的DuckDB动态函数应用插件

来源:https://github.com/teaguesterling/duckdb_func_apply DuckDB FuncApply 扩展 DuckDB 的动态函数应用 - 在运行时通过名称调用函数。 概述 FuncApply 扩展为 DuckDB 提供了动态函数调用能力,允许您: 使用 apply() 通过名称调用任何…...

自适应能量对齐:提升电子态密度机器学习预测精度的关键技术

1. 项目概述:为什么电子态密度的机器学习预测需要“自适应对齐”?在计算材料科学领域,电子态密度(DOS)是一个核心的物理量。它描绘了材料中电子能级随能量的分布情况,就像一张材料的“电子身份证”。通过这…...

《彻底搞懂RAG技术:解决大模型幻觉,落地企业AI应用的核心方案》

随着大模型技术快速普及,众多企业纷纷入局AI落地,但绝大多数通用大模型在实际业务场景中都会面临两大致命难题:知识滞后与幻觉问题。通用大模型的训练数据存在固定时间截止点,无法获取最新行业数据、企业私有业务数据,…...

AI 时代产品经理生存与进化指南

AI 时代产品经理生存与进化指南 三重知识体系的交汇:NPDP产品开发 PMP项目管理 AI原生方法论 本文档整合了 NPDP(新产品开发专业人士认证)、PMP(项目管理专业人士认证)与 Anthropic 产品负责人 Catherine Wu&#xf…...

【稻米计数】基于matlab形态学稻米计数【含Matlab源码 15562期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞&#x1f49…...

MySQL 全文索引实战:搜索功能的正确打开方式

开场白 做搜索功能的时候,很多人第一反应是 LIKE ‘%关键词%’,数据量小的时候没问题,数据一大直接全表扫描。我之前有个项目,商品表的 LIKE 搜索在 50 万条数据时就要 3 秒以上,根本没法用。后来上了全文索引&#x…...

MySQL JSON 类型操作:从入门到不踩坑

开场白 MySQL 5.7 加了 JSON 类型之后,很多人觉得终于可以在关系型数据库里存 JSON 了,不用再拆表了。但说实话,我一开始用 JSON 类型的时候也没少踩坑——查询语法记不住、索引不会建、JSON 路径表达式写错……后来用多了才发现&#xff0c…...

通过Hermes Agent对接Taotoken自定义模型提供方

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Hermes Agent对接Taotoken自定义模型提供方 Hermes Agent是一个流行的AI Agent开发框架,它支持通过统一的接口调用…...

LinkSwift网盘直链下载助手:一站式解决9大网盘下载难题

LinkSwift网盘直链下载助手:一站式解决9大网盘下载难题 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

170家具身智能公司名单

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达具身智能:人工智能的下一个浪潮!今年再次被写入《政府工作报告》中,已经成为国家未来重点培育产业。市场方面,具身智能近一年融资更是爆火&…...

【具身智能】最大微信群

点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达具身智能:人工智能的下一个浪潮!今年再次被写入《政府工作报告》中,已经成为国家未来重点培育产业。市场方面,具身智能近一年融资更是爆火&…...

云安全与合规

云安全与合规 1. 技术分析 1.1 云安全概述 云安全是云计算的关键考量: 云安全维度数据安全: 加密、访问控制网络安全: 防火墙、VPN身份管理: IAM、SSO合规性: GDPR、SOC2安全责任:服务商: 基础设施安全用户: 数据和应用安全1.2 云安全架构 安全层次物理层: 数据…...

无服务器架构与Serverless

无服务器架构与Serverless 1. 技术分析 1.1 无服务器架构概述 无服务器架构是云计算的重要演进: Serverless特点无需管理服务器事件驱动按需付费自动伸缩Serverless服务:FaaS: 函数即服务BaaS: 后端即服务DBaaS: 数据库即服务1.2 FaaS工作原理 FaaS执行流程事件触发…...

2026论文写作工具红黑榜:AI论文工具怎么选?别再瞎找了!

2026年论文写作工具红黑榜出炉,红榜优先推荐千笔AI、ThouPen、豆包,适配国内学术规范,提升写作效率;黑榜需避开低质免费工具、无真实引用平台、过度依赖全文生成的工具。选择时应按需求匹配三维模型(需求匹配度 - 数据…...

容器化与Kubernetes

容器化与Kubernetes 1. 技术分析 1.1 容器化概述 容器化是现代应用部署的核心技术: 容器化优势轻量级: 共享内核一致性: 环境一致可移植: 跨平台隔离性: 资源隔离容器技术:Docker: 容器引擎containerd: 容器运行时CRI-O: Kubernetes兼容1.2 Kubernetes概述 Kubernet…...

2026年亲测一键生成论文工具指南(高效定稿版)

为解决学术写作中效率与合规两大核心痛点,本文精选8款高适配性AI论文写作工具(按综合优先级排序),围绕中文学术规范适配、真实参考文献生成、格式标准化、高性价比四大核心维度筛选,同时配套分场景精准选型方案与学术合…...

NISQ时代量子机器学习实战:从变分量子电路到混合架构落地

1. 量子机器学习:从NISQ时代的现实挑战到工程实践如果你关注前沿科技,最近几年一定频繁听到“量子计算”和“机器学习”这两个词。当这两个看似在不同轨道上狂奔的领域开始交汇,就诞生了一个充满想象力又极具挑战的新方向——量子机器学习。我…...

【教育科技爆款内容生产核心】:用ChatGPT批量生成带答案解析+难度分级+认知维度标签的脑筋急转弯(附可商用JSON Schema)

更多请点击: https://kaifayun.com 第一章:教育科技爆款内容生产的底层逻辑重构 教育科技领域的“爆款”并非偶然产物,而是内容价值、用户认知路径与算法分发机制三者深度耦合的结果。传统以课程大纲为中心的线性生产范式,正被“…...

利用Taotoken实现多模型备选方案以提升业务连续性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken实现多模型备选方案以提升业务连续性 在中大型企业将AI能力集成到关键业务流程时,服务的连续性与稳定性是…...

开源AI工具真能替代商业方案?2024最新Benchmark数据揭示92%团队忽略的关键短板

更多请点击: https://codechina.net 第一章:开源AI工具真能替代商业方案?2024最新Benchmark数据揭示92%团队忽略的关键短板 2024年Q2由MLPerf与OpenLLM-Bench联合发布的跨模态AI工具基准报告覆盖全球147个生产级AI部署团队,结果显…...

企业团队如何利用Taotoken CLI工具统一配置开发环境与API密钥

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业团队如何利用Taotoken CLI工具统一配置开发环境与API密钥 在团队协作开发中,一个常见的问题是API密钥的管理与开发…...

基于减法优化算法(SABO)优化CNN-BiGUR-Attention风电功率预测研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...

2026年一键生成论文工具实测精选:5款神器从构思到提交全流程护航

写论文的焦虑,是每个科研人和学生都无法回避的日常。选题无从下手,文献检索耗时费力,格式排版反复调整,查重降重更是让人抓耳挠腮。到了2026年,AI工具早已不再只是“敲字机器”,而是进化成了能陪你从构思到…...

太顶了!只需输入需求,这几款一键生成论文工具自动生成毕业论文初稿!

毕业季论文焦虑?还在为选题、查资料、写大纲、找文献发愁?现在只需输入需求,AI 论文工具就能一键生成图文并茂的毕业论文初稿,从开题到定稿全流程搞定!千笔AI、ThouPen、豆包、DeepSeek、元宝这五款 AI 论文神器实测&a…...

面向实时决策Agent的Harness微秒级调度

面向实时决策Agent的Harness微秒级调度:从原理到落地,打造低于10us延迟的智能决策系统 副标题:适配量化交易、自动驾驶、工业控制等高实时性场景,确定性延迟保障99.999%调度成功率 摘要/引言 你有没有遇到过这些场景:量化交易策略的决策逻辑晚了5us,原本可以盈利的订单…...

2026必备!AI论文工具测评:最新好用推荐与对比分析

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…...

3分钟让AI自动分层?LayerDivider如何拯救你的PSD编辑噩梦

3分钟让AI自动分层?LayerDivider如何拯救你的PSD编辑噩梦 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为一张扁平插画需要分层编辑而头…...

NS模拟器自动化管理系统:简化游戏兼容性配置的解决方案

NS模拟器自动化管理系统:简化游戏兼容性配置的解决方案 【免费下载链接】ns-emu-tools 一个用于安装/更新 NS 模拟器的工具 项目地址: https://gitcode.com/gh_mirrors/ns/ns-emu-tools NsEmuTools是一款专为Nintendo Switch模拟器用户设计的桌面端管理解决方…...

【图像压缩】基于ADMM的卷积稀疏编码高效算法Matlab实现

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f3…...

深入解析Gofile下载器:3倍效率提升的Python多线程下载方案

深入解析Gofile下载器:3倍效率提升的Python多线程下载方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 在文件传输领域,Gofile作为流行的文件共享…...