Skip to main content

rook_parser/
lib.rs

1use sqlparser::dialect::GenericDialect;
2use sqlparser::parser::Parser;
3
4mod models;
5mod utils;
6
7use crate::models::QuerySummary;
8use crate::utils::build_query_summary;
9
10pub fn parse_sql(sql: &str) -> Result<Vec<QuerySummary>, String> {
11    let dialect = GenericDialect {};
12
13    let statements = Parser::parse_sql(&dialect, sql)
14        .map_err(|e| e.to_string())?;
15
16    let summaries = statements
17        .iter()
18        .map(build_query_summary)
19        .collect::<Vec<_>>();
20
21    Ok(summaries)
22}