#sql-parser #pest-parser #sql #pest #parser

bin+lib yehorbolt_sql_parser

这是一个使用pest库编写的简单的SQL解析器。解析器支持解析带有列定义的CREATE TABLE语句。

11次发布

使用旧Rust 2015

0.1.11 2023年11月14日
0.1.9 2023年11月14日

数据库接口中排名1197

Download history 2/week @ 2024-03-11 38/week @ 2024-04-01 159/week @ 2024-04-29

每月下载量66

MIT协议

13KB
170

SQL解析器

这是一个使用pest库编写的简单SQL解析器。解析器支持解析带有列定义的CREATE TABLE语句。

License: MIT Crates.io Documentation

安装

要使用此解析器,您需要安装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语句,并将解析结果打印到控制台。

语法图

Diagram Example

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