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}