Skip to main content

rook_parser/
lib.rs

1use sqlparser::dialect::GenericDialect;
2use sqlparser::parser::Parser;
3
4mod models;
5mod utils;
6
7use crate::utils::build_query_summary;
8
9pub fn parse_sql(sql: &str) -> Result<String, String> {
10    let dialect = GenericDialect {};
11
12    let statements = Parser::parse_sql(&dialect, sql)
13        .map_err(|e| e.to_string())?;
14
15    let statement = statements
16        .first()
17        .ok_or("No SQL statement found")?;
18
19    let summary = build_query_summary(statement);
20
21    serde_json::to_string_pretty(&summary)
22        .map_err(|e| e.to_string())
23}