2 个版本

0.1.3 2024年6月2日
0.1.0 2024年6月1日

#9 in #dialect

Apache-2.0

1MB
348 代码行数,不包括注释

SQL 函数

该包包含从各种 SQL 方言生成的函数存根和实现。目标是使计算提供程序(如 DataFusion)能够选择性地从许多方言中导入函数。

目标:**与所有 SQL 方言中的所有函数具有功能等价性**。

要贡献一个函数,请参阅我们的 贡献指南

概览

该包分为以下组件

  • signatures - 包含每个 SQL 方言的文件夹。每个文件夹包含 .sdf.yml 格式的函数签名。这些签名随后由生成器用于生成函数存根。每个函数存根都有一个 todo!(),需要填充。
  • src - 包含每个函数的实现。我们建议每个文件一个函数。

先决条件设置

所有函数都编译到一个单独的包中。

构建 函数包

cargo build

测试 函数包

cargo test

单态函数

该包中的函数默认是 单态的。这意味着每个函数只操作一种 类型 的数据,支持多种数据类型将导致函数重载。例如,一个接受整数并返回整数的函数,如 int add(int a, int b),是单态的。

这与多态函数相反,多态函数可以通过泛型或类型参数等机制在多种类型上操作。单态函数在类型检查和类型推断方面通常更简单,因为没有需要解析的泛型类型参数。

贡献

欢迎贡献!无论是报告列表还是文档。请仔细阅读 CONTRIBUTING.md

使用 SQL 函数包

依赖项

~64MB
~1.5M SLoC