Skip to main content

sqlglot_rust/parser/
mod.rs

1mod sql_parser;
2
3pub use sql_parser::Parser;
4
5use crate::ast::Statement;
6use crate::dialects::Dialect;
7use crate::errors::Result;
8
9/// Parse a SQL string into a [`Statement`] AST using the given dialect.
10///
11/// # Errors
12///
13/// Returns a [`SqlglotError`](crate::errors::SqlglotError) if the input
14/// is not valid SQL.
15pub fn parse(sql: &str, _dialect: Dialect) -> Result<Statement> {
16    let mut parser = Parser::new(sql)?;
17    parser.parse_statement()
18}
19
20/// Parse a SQL string containing multiple statements separated by semicolons.
21///
22/// # Errors
23///
24/// Returns a [`SqlglotError`](crate::errors::SqlglotError) if parsing fails.
25pub fn parse_statements(sql: &str, _dialect: Dialect) -> Result<Vec<Statement>> {
26    let mut parser = Parser::new(sql)?;
27    parser.parse_statements()
28}