sql-parse

crates.io crates.io License actions-badge

Parse SQL into an AST

This crate provides an lexer and parser that can parse SQL into an Abstract Syntax Tree (AST). Currently primarily focused on MariaDB/Mysql.

Example code: ```rust use sqlparse::{SQLDialect, SQLArguments, ParseOptions, parsestatement};

let options = ParseOptions::new() .dialect(SQLDialect::MariaDB) .arguments(SQLArguments::QuestionMark) .warnunquotedidentifiers(true);

let mut issues = Vec::new();

let sql = "SELECT monkey, FROM t1 LEFT JOIN t2 ON t2.id = t1.two WHERE t1.id = ?";

let ast = parse_statement(sql, &mut issues, &options);

println!("Issues: {:#?}", issues); println!("AST: {:#?}", ast); ```

Features