extern crate log; extern crate sqlparser; use sqlparser::dialect::AnsiSqlDialect; use sqlparser::sqlast::*; use sqlparser::sqlparser::*; use sqlparser::sqltokenizer::*; #[test] fn parse_simple_select() { let sql = String::from("SELECT id, fname, lname FROM customer WHERE id = 1"); let ast = parse_sql(&sql); match ast { ASTNode::SQLSelect { projection, .. } => { assert_eq!(3, projection.len()); } _ => assert!(false), } } fn parse_sql(sql: &str) -> ASTNode { let dialect = AnsiSqlDialect {}; let mut tokenizer = Tokenizer::new(&dialect, &sql); let tokens = tokenizer.tokenize().unwrap(); let mut parser = Parser::new(tokens); let ast = parser.parse().unwrap(); ast }