9个版本
0.0.11 | 2022年11月29日 |
---|---|
0.0.10 | 2022年11月21日 |
0.0.9 | 2022年10月13日 |
0.0.8 | 2022年8月16日 |
0.0.1 | 2022年3月30日 |
#2 in #substrait
1MB
22K SLoC
包含(WOFF字体,155KB) src/export/html/fa-solid-900.woff2
Substrait查询计划验证器
此crate实现了对Substrait查询计划的验证器。
[dependencies]
substrait-validator = "0.0.11"
YAML文件解析
验证Substrait计划的一个复杂性是解析YAML扩展文件。默认情况下,crate只支持file://...
URLs,但通常,YAML文件会存储在远程位置。为了更容易处理这个问题,您可以将curl作为可选依赖项启用
[dependencies]
substrait-validator = { version = "0.0.11", features = ["curl"] }
这添加了substrait_validator::Config::add_curl_yaml_uri_resolver()
方法,它将使用libcurl
解析文件,从而支持所有常见协议(http、https、ftp等)。缺点是curl crate依赖于系统库。
lib.rs
:
Crate用于验证Substrait。
使用方法
使用模式大致如下。
- 构建一个
Config
结构来配置验证器。如果您不需要配置任何内容,也可以使用std::default::Default
,但您可能至少想调用[Config::add_curl_uri_resolver()
](如果您正在使用curl
功能)。 - 使用[
parse()
]解析传入的substrait.Plan
消息。这创建了一个[ParseResult],包含与查询计划对应的树结构,该结构还包含验证器添加的诊断和其他注释。 - 您可以使用ParseResult::root自行遍历树,或者您可以使用与[ParseResult]相关联的方法来获取您需要的验证结果。
请注意,输入仅支持二进制 protobuf 序列化格式;JSON 格式不支持。这是使用 protobuf 反序列化的 crate(prost
)的限制。如果您正在寻找支持更易读输入的库(或 CLI),请查看 Python 绑定。
依赖项
~15–27MB
~448K SLoC