diff --git a/CHANGELOG.md b/CHANGELOG.md index 60c25da188..ab27d94e8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Given that the parser produces a typed AST, any changes to the AST will technica Check https://github.com/andygrove/sqlparser-rs/commits/master for undocumented changes. ### Changed +- **`Parser::parse_sql` now accepts a `&str` instead of `String` (#182)** - thanks @Dandandan! - Change `Ident` (previously a simple `String`) to store the parsed (unquoted) `value` of the identifier and the `quote_style` separately (#143) - thanks @apparebit! - Support Snowflake's `FROM (table_name)` (#155) - thanks @eyalleshem! @@ -21,6 +22,8 @@ Check https://github.com/andygrove/sqlparser-rs/commits/master for undocumented - Support basic forms of `CREATE SCHEMA` and `DROP SCHEMA` (#173) - thanks @alex-dukhno! - Support `NULLS FIRST`/`LAST` in `ORDER BY` expressions (#176) - thanks @houqp! - Support `LISTAGG()` (#174) - thanks @maxcountryman! +- Support the string concatentation operator `||` (#178) - thanks @Dandandan! +- Support bitwise AND (`&`), OR (`|`), XOR (`^`) (#181) - thanks @Dandandan! ### Fixed - Report an error for unterminated string literals (#165) diff --git a/src/tokenizer.rs b/src/tokenizer.rs index 910f73911c..1f33dd5dce 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -143,7 +143,6 @@ impl Token { } pub fn make_word(word: &str, quote_style: Option) -> Self { let word_uppercase = word.to_uppercase(); - //TODO: validate use of a hashset (e.g. FnvHashSet) compared to using binary search let is_keyword = quote_style == None && ALL_KEYWORDS.binary_search(&word_uppercase.as_str()).is_ok(); Token::Word(Word {