diff --git a/README.md b/README.md index 3b277a96..24674d91 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ let sql = "SELECT a, b, 123, myfunc(b) \ let dialect = GenericDialect {}; // or AnsiDialect, or your own dialect ... -let ast = Parser::parse_sql(&dialect, sql.to_string()).unwrap(); +let ast = Parser::parse_sql(&dialect, sql).unwrap(); println!("AST: {:?}", ast); ``` @@ -122,4 +122,4 @@ resources. [LocustDB]: https://github.com/cswinter/LocustDB [Pratt Parser]: https://tdop.github.io/ [sql-2016-grammar]: https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html -[sql-standard]: https://en.wikipedia.org/wiki/ISO/IEC_9075 \ No newline at end of file +[sql-standard]: https://en.wikipedia.org/wiki/ISO/IEC_9075 diff --git a/examples/cli.rs b/examples/cli.rs index 917629e4..2b082258 100644 --- a/examples/cli.rs +++ b/examples/cli.rs @@ -45,7 +45,7 @@ fn main() { chars.next(); chars.as_str() }; - let parse_result = Parser::parse_sql(&*dialect, without_bom.to_owned()); + let parse_result = Parser::parse_sql(&*dialect, without_bom); match parse_result { Ok(statements) => { println!( diff --git a/examples/parse_select.rs b/examples/parse_select.rs index 539d9165..e7aa1630 100644 --- a/examples/parse_select.rs +++ b/examples/parse_select.rs @@ -23,7 +23,7 @@ fn main() { let dialect = GenericDialect {}; - let ast = Parser::parse_sql(&dialect, sql.to_string()).unwrap(); + let ast = Parser::parse_sql(&dialect, sql).unwrap(); println!("AST: {:?}", ast); } diff --git a/src/lib.rs b/src/lib.rs index 156e20eb..d25b2499 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -28,7 +28,7 @@ //! WHERE a > b AND b < 100 \ //! ORDER BY a DESC, b"; //! -//! let ast = Parser::parse_sql(&dialect, sql.to_string()).unwrap(); +//! let ast = Parser::parse_sql(&dialect, sql).unwrap(); //! //! println!("AST: {:?}", ast); //! ``` diff --git a/src/parser.rs b/src/parser.rs index 0a50d2d7..9a22f4d1 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -82,7 +82,7 @@ impl Parser { } /// Parse a SQL statement and produce an Abstract Syntax Tree (AST) - pub fn parse_sql(dialect: &dyn Dialect, sql: String) -> Result, ParserError> { + pub fn parse_sql(dialect: &dyn Dialect, sql: &str) -> Result, ParserError> { let mut tokenizer = Tokenizer::new(dialect, &sql); let tokens = tokenizer.tokenize()?; let mut parser = Parser::new(tokens); diff --git a/src/test_utils.rs b/src/test_utils.rs index d36eeb04..4d4d3561 100644 --- a/src/test_utils.rs +++ b/src/test_utils.rs @@ -58,9 +58,9 @@ impl TestedDialects { } pub fn parse_sql_statements(&self, sql: &str) -> Result, ParserError> { - self.one_of_identical_results(|dialect| Parser::parse_sql(dialect, sql.to_string())) + self.one_of_identical_results(|dialect| Parser::parse_sql(dialect, &sql)) // To fail the `ensure_multiple_dialects_are_tested` test: - // Parser::parse_sql(&**self.dialects.first().unwrap(), sql.to_string()) + // Parser::parse_sql(&**self.dialects.first().unwrap(), sql) } /// Ensures that `sql` parses as a single statement, optionally checking