11次发布
使用旧Rust 2015
0.1.11 | 2023年11月14日 |
---|---|
0.1.9 | 2023年11月14日 |
在数据库接口中排名1197
每月下载量66
13KB
170 行
SQL解析器
这是一个使用pest
库编写的简单SQL解析器。解析器支持解析带有列定义的CREATE TABLE
语句。
安装
要使用此解析器,您需要安装Rust。将以下依赖项添加到您的Cargo.toml
文件中
[dependencies]
anyhow = "1.0.75"
clap = { version = "4.4.8", features = ["derive"] }
pest = "2.7.5"
pest_derive = "2.7.5"
thiserror = "1.0.50"
然后,将提供的sql_grammar.pest文件包含到您的项目中。您可以根据需要自定义此语法文件以支持更多SQL语句或修改现有规则。
示例
要解析SQL语句,请使用代码中提供的parse_sql函数。它接受一个SQL语句作为字符串,并返回一个Parsed枚举变体。
extern crate yehorbolt_sql_parser;
use yehorbolt_sql_parser::parse_sql;
fn main() {
let table = "CREATE TABLE financial_report
{
id INT,
currency_name TEXT,
is_usable BOOL
}";
let res = parse_sql(table);
println!("Parsed: {:?}", res);
}
在此示例中,使用parse_sql函数解析CREATE TABLE语句,并将解析结果打印到控制台。
语法图
SQL数据类型
解析器支持以下SQL数据类型
INT: 整数类型
TEXT: 文本类型
BOOL: 布尔类型
使用
将sql_parser包包含到您的Rust项目中,并使用提供的函数解析SQL CREATE TABLE
语句。有关使用详细信息,请参阅示例。
命令行使用
-p, --parse : 从指定的文件解析SQL CREATE TABLE语句。
-h, --help : 打印帮助信息。
-V, --version : 打印版本。
命令行示例
cargo run -- -p ./examples/txtfile.txt
cargo run -- -p ./examples/sqlfile.sql
(包含示例)
依赖项
~4MB
~78K SLoC