用途:为 dbplyr 的特定数据库后端添加新的 SQL 函数翻译,把 R 函数映射为对应数据库的 SQL 等价写法。
主要能力:覆盖标量翻译(用于 mutate/filter)、聚合翻译(用于 summarise)和窗口翻译(用于带分组的 mutate);提供 sql_expr、sql_cast、sql_aggregate、sql_paste、sql_not_supported、win_aggregate、win_absent 等辅助函数,并支持继承 base_scalar、base_agg、base_win 父翻译器。
使用方式:先做 SQL 研究,检索官方文档中的“{dialect} {function}”,把结论记录到 research/{dialect}-{function}.md 并附来源 URL;再定位后端文件(如 R/backend-sqlite.R、R/backend-postgres.R、R/backend-mysql.R、R/backend-mssql.R),在连接类的 sql_translation() 方法中按标量、聚合、窗口三类加入翻译;随后交互测试并编写测试,测试放在 tests/testthat/test-{name}.R,与相近测试相邻;最后更新后端文档的 @description,并运行 air format .、devtools::test(filter = 'backend-name', reporter = 'llm') 和 devtools::document()。
适用场景:为 dbplyr 新增或完善某数据库的函数支持,尤其是字符串函数、日期时间提取函数和聚合/窗口函数。
限制:必须先完成 SQL 研究再实现;不支持的函数需用 sql_not_supported 或 win_absent 标记;具体数据库语法与行为以官方文档为准,资料未提供各数据库的完整翻译清单。