This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 543ec6c5 Move CHANGELOG content (#1503)
543ec6c5 is described below
commit 543ec6c584b9dbb5855f7364cd5d80b0b4ed563e
Author: Andrew Lamb <[email protected]>
AuthorDate: Wed Nov 6 16:50:27 2024 -0500
Move CHANGELOG content (#1503)
---
CHANGELOG.md | 1180 +------------------------------
CHANGELOG.md => changelog/0.51.0-pre.md | 18 +-
2 files changed, 7 insertions(+), 1191 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 07142602..e047515a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,1181 +20,9 @@
# Changelog
All notable changes to this project will be documented in this file.
-The format is based on [Keep a
Changelog](https://keepachangelog.com/en/1.0.0/), and this project aims to
adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
+This project adheres to [Semantic
Versioning](https://semver.org/spec/v2.0.0.html).
Given that the parser produces a typed AST, any changes to the AST will
-technically be breaking and thus will result in a `0.(N+1)` version. We
document
-changes that break via addition as "Added".
-
-## [Unreleased]
-Check https://github.com/sqlparser-rs/sqlparser-rs/commits/main for
undocumented changes.
-
-
-## [0.51.0] 2024-09-11
-As always, huge props to @iffyio @jmhain and @lovasoa for their help reviewing
and merging PRs 🙏.
-Without them this project would not be possible.
-
-Reminder: we are in the final phases of moving sqlparser-rs into the Apache
-DataFusion project: https://github.com/sqlparser-rs/sqlparser-rs/issues/1294
-
-### Fixed
-* Fix Hive table comment should be after table column definitions (#1413) -
Thanks @git-hulk
-* Fix stack overflow in `parse_subexpr` (#1410) - Thanks @eejbyfeldt
-* Fix `INTERVAL` parsing to support expressions and units via dialect (#1398)
- Thanks @samuelcolvin
-* Fix identifiers starting with `$` should be regarded as a placeholder in
SQLite (#1402) - Thanks @git-hulk
-
-### Added
-* Support for MSSQL table options (#1414) - Thanks @bombsimon
-* Test showing how negative constants are parsed (#1421) - Thanks @alamb
-* Support databricks dialect to dialect_from_str (#1416) - Thanks
@milenkovicmalamb
-* Support `DROP|CLEAR|MATERIALIZE PROJECTION` syntax for ClickHouse (#1417) -
Thanks @git-hulk
-* Support postgres `TRUNCATE` syntax (#1406) - Thanks @tobyhede
-* Support `CREATE INDEX` with clause (#1389) - Thanks @lewiszlw
-* Support parsing `CLUSTERED BY` clause for Hive (#1397) - Thanks @git-hulk
-* Support different `USE` statement syntaxes (#1387) - Thanks @kacpermuda
-* Support `ADD PROJECTION` syntax for ClickHouse (#1390) - Thanks @git-hulk
-
-### Changed
-* Implement common traits for OneOrManyWithParens (#1368) - Thanks @gstvg
-* Cleanup parse_statement (#1407) - Thanks @samuelcolvin
-* Allow `DateTimeField::Custom` with `EXTRACT` in Postgres (#1394) - Thanks
@samuelcolvin
-
-
-## [0.50.0] 2024-08-15
-Again, huge props to @iffyio @jmhain and @lovasoa for their help reviewing and
merging PRs 🙏.
-Without them this project would not be possible.
-
-Reminder: are in the process of moving sqlparser to governed as part of the
Apache
-DataFusion project: https://github.com/sqlparser-rs/sqlparser-rs/issues/1294
-
-### Fixed
-* Clippy 1.80 warnings (#1357) - Thanks @lovasoa
-
-### Added
-* Support `STRUCT` and list of structs for DuckDB dialect (#1372) - Thanks
@jayzhan211
-* Support custom lexical precedence in PostgreSQL dialect (#1379) - Thanks
@samuelcolvin
-* Support `FREEZE|UNFREEZE PARTITION` syntax for ClickHouse (#1380) - Thanks
@git-hulk
-* Support scale in `CEIL` and `FLOOR` functions (#1377) - Thanks @seve-martinez
-* Support `CREATE TRIGGER` and `DROP TRIGGER` statements (#1352) - Thanks
@LucaCappelletti94
-* Support `EXTRACT` syntax for snowflake (#1374) - Thanks @seve-martinez
-* Support `ATTACH` / `DETACH PARTITION` for ClickHouse (#1362) - Thanks
@git-hulk
-* Support Dialect level precedence, update Postgres Dialect to match Postgres
(#1360) - Thanks @samuelcolvin
-* Support parsing empty map literal syntax for DuckDB and Generic dialects
(#1361) - Thanks @goldmedal
-* Support `SETTINGS` clause for ClickHouse table-valued functions (#1358) -
Thanks @Jesse-Bakker
-* Support `OPTIMIZE TABLE` statement for ClickHouse (#1359) - Thanks @git-hulk
-* Support `ON CLUSTER` in `ALTER TABLE` for ClickHouse (#1342) - Thanks
@git-hulk
-* Support `GLOBAL` keyword before the join operator (#1353) - Thanks @git-hulk
-* Support postgres String Constants with Unicode Escapes (#1355) - Thanks
@lovasoa
-* Support position with normal function call syntax for Snowflake (#1341) -
Thanks @jmhain
-* Support `TABLE` keyword in `DESC|DESCRIBE|EXPLAIN TABLE` statement (#1351) -
Thanks @git-hulk
-
-### Changed
-* Only require `DESCRIBE TABLE` for Snowflake and ClickHouse dialect (#1386) -
Thanks @ alamb
-* Rename (unreleased) `get_next_precedence_full` to
`get_next_precedence_default` (#1378) - Thanks @samuelcolvin
-* Use local GitHub Action to replace setup-rust-action (#1371) - Thanks
@git-hulk
-* Simplify arrow_cast tests (#1367) - Thanks @alamb
-* Update version of GitHub Actions (#1363) - Thanks @git-hulk
-* Make `Parser::maybe_parse` pub (#1364) - Thanks @Jesse-Bakker
-* Improve comments on 1Dialect` (#1366) - Thanks @alamb
-
-
-## [0.49.0] 2024-07-23
-As always, huge props to @iffyio @jmhain and @lovasoa for their help reviewing
and merging PRs!
-
-We are in the process of moving sqlparser to governed as part of the Apache
-DataFusion project: https://github.com/sqlparser-rs/sqlparser-rs/issues/1294
-
-### Fixed
-* Fix quoted identifier regression edge-case with "from" in SELECT (#1346) -
Thanks @alexander-beedie
-* Fix `AS` query clause should be after the create table options (#1339) -
Thanks @git-hulk
-
-### Added
-
-* Support `MATERIALIZED`/`ALIAS`/`EPHERMERAL` default column options for
ClickHouse (#1348) - Thanks @git-hulk
-* Support `()` as the `GROUP BY` nothing (#1347) - Thanks @git-hulk
-* Support Map literal syntax for DuckDB and Generic (#1344) - Thanks @goldmedal
-* Support subquery expression in `SET` expressions (#1343) - Thanks @iffyio
-* Support `WITH FILL` for ClickHouse (#1330) - Thanks @nickpresta
-* Support `PARTITION BY` for PostgreSQL in `CREATE TABLE` statement (#1338) -
Thanks @git-hulk
-* Support of table function `WITH ORDINALITY` modifier for Postgres (#1337) -
Thanks @git-hulk
-
-
-## [0.48.0] 2024-07-09
-
-Huge shout out to @iffyio @jmhain and @lovasoa for their help reviewing and
merging PRs!
-
-### Fixed
-* Fix CI error message in CI (#1333) - Thanks @alamb
-* Fix typo in sqlparser-derive README (#1310) - Thanks @leoyvens
-* Re-enable trailing commas in DCL (#1318) - Thanks @MohamedAbdeen21
-* Fix a few typos in comment lines (#1316) - Thanks @git-hulk
-* Fix Snowflake `SELECT * wildcard REPLACE ... RENAME` order (#1321) - Thanks
@alexander-beedie
-* Allow semi-colon at the end of UNCACHE statement (#1320) - Thanks
@LorrensP-2158466
-* Return errors, not panic, when integers fail to parse in `AUTO_INCREMENT`
and `TOP` (#1305) - Thanks @eejbyfeldt
-
-### Added
-* Support `OWNER TO` clause in Postgres (#1314) - Thanks @gainings
-* Support `FORMAT` clause for ClickHouse (#1335) - Thanks @git-hulk
-* Support `DROP PROCEDURE` statement (#1324) - Thanks @LorrensP-2158466
-* Support `PREWHERE` condition for ClickHouse dialect (#1328) - Thanks
@git-hulk
-* Support `SETTINGS` pairs for ClickHouse dialect (#1327) - Thanks @git-hulk
-* Support `GROUP BY WITH MODIFIER` for ClickHouse dialect (#1323) - Thanks
@git-hulk
-* Support DuckDB Union datatype (#1322) - Thanks @gstvg
-* Support parametric arguments to `FUNCTION` for ClickHouse dialect (#1315) -
Thanks @git-hulk
-* Support `TO` in `CREATE VIEW` clause for Clickhouse (#1313) - Thanks @Bidaya0
-* Support `UPDATE` statements that contain tuple assignments (#1317) - Thanks
@lovasoa
-* Support `BY NAME quantifier across all set ops (#1309) - Thanks
@alexander-beedie
-* Support SnowFlake exclusive `CREATE TABLE` options (#1233) - Thanks
@balliegojr
-* Support ClickHouse `CREATE TABLE` with primary key and parametrised table
engine (#1289) - Thanks @7phs
-* Support custom operators in Postgres (#1302) - Thanks @lovasoa
-* Support ClickHouse data types (#1285) - Thanks @7phs
-
-### Changed
-* Add stale PR github workflow (#1331) - Thanks @alamb
-* Refine docs (#1326) - Thanks @emilsivervik
-* Improve error messages with additional colons (#1319) - Thanks
@LorrensP-2158466
-* Move Display fmt to struct for `CreateIndex` (#1307) - Thanks
@philipcristiano
-* Enhancing Trailing Comma Option (#1212) - Thanks @MohamedAbdeen21
-* Encapsulate `CreateTable`, `CreateIndex` into specific structs (#1291) -
Thanks @philipcristiano
-
-## [0.47.0] 2024-06-01
-
-### Fixed
-* Re-support Postgres array slice syntax (#1290) - Thanks @jmhain
-* Fix DoubleColon cast skipping AT TIME ZONE #1266 (#1267) - Thanks
@dmitrybugakov
-* Fix for values as table name in Databricks and generic (#1278) - Thanks
@jmhain
-
-### Added
-* Support `ASOF` joins in Snowflake (#1288) - Thanks @jmhain
-* Support `CREATE VIEW` with fields and data types ClickHouse (#1292) -
Thanks @7phs
-* Support view comments for Snowflake (#1287) - Thanks @bombsimon
-* Support dynamic pivot in Snowflake (#1280) - Thanks @jmhain
-* Support `CREATE FUNCTION` for BigQuery, generalize AST (#1253) - Thanks
@iffyio
-* Support expression in `AT TIME ZONE` and fix precedence (#1272) - Thanks
@jmhain
-* Support `IGNORE/RESPECT NULLS` inside function argument list for Databricks
(#1263) - Thanks @jmhain
-* Support `SELECT * EXCEPT` Databricks (#1261) - Thanks @jmhain
-* Support triple quoted strings (#1262) - Thanks @iffyio
-* Support array indexing for duckdb (#1265) - Thanks @JichaoS
-* Support multiple SET variables (#1252) - Thanks @iffyio
-* Support `ANY_VALUE` `HAVING` clause (#1258) in BigQuery - Thanks @jmhain
-* Support keywords as field names in BigQuery struct syntax (#1254) - Thanks
@iffyio
-* Support `GROUP_CONCAT()` in MySQL (#1256) - Thanks @jmhain
-* Support lambda functions in Databricks (#1257) - Thanks @jmhain
-* Add const generic peek_tokens method to parser (#1255) - Thanks @jmhain
-
-
-## [0.46.0] 2024-05-03
-
-### Changed
-* Consolidate representation of function calls, remove
`AggregateExpressionWithFilter`, `ArraySubquery`, `ListAgg` and `ArrayAgg`
(#1247) - Thanks jmhain
-* Extended dialect trait to support numeric prefixed identifiers (#1188) -
Thanks @groobyming
-* Update simple_logger requirement from 4.0 to 5.0 (#1246) - Thanks @dependabot
-* Improve parsing of JSON accesses on Postgres and Snowflake (#1215) - Thanks
@jmhain
-* Encapsulate Insert and Delete into specific structs (#1224) - Thanks
@tisonkun
-* Preserve double colon casts (and simplify cast representations) (#1221) -
Thanks @jmhain
-
-### Fixed
-* Fix redundant brackets in Hive/Snowflake/Redshift (#1229) - Thanks
@yuval-illumex
-
-### Added
-* Support values without parens in Snowflake and DataBricks (#1249) - Thanks
@HiranmayaGundu
-* Support WINDOW clause after QUALIFY when parsing (#1248) - Thanks @iffyio
-* Support `DECLARE` parsing for mssql (#1235) - Thanks @devanbenz
-* Support `?`-based jsonb operators in Postgres (#1242) - THanks @ReppCodes
-* Support Struct datatype parsing for GenericDialect (#1241) - Thanks
@duongcongtoai
-* Support BigQuery window function null treatment (#1239) - Thanks @iffyio
-* Support extend pivot operator - Thanks @iffyio
-* Support Databricks SQL dialect (#1220) - Thanks @jmhain
-* Support for MSSQL CONVERT styles (#1219) - Thanks @iffyio
-* Support window clause using named window in BigQuery (#1237) - Thanks
@iffyio
-* Support for CONNECT BY (#1138) - Thanks @jmhain
-* Support object constants in Snowflake (#1223) - Thanks @jmhain
-* Support BigQuery MERGE syntax (#1217) - Thanks @iffyio
-* Support for MAX for NVARCHAR (#1232) - Thanks @ bombsimon
-* Support fixed size list types (#1231) - @@universalmind303
-* Support Snowflake MATCH_RECOGNIZE syntax (#1222) - Thanks @jmhain
-* Support quoted string backslash escaping (#1177) - Thanks @iffyio
-* Support Modify Column for MySQL dialect (#1216) - Thanks @KKould
-* Support `select * ilike` for snowflake (#1228) - Thanks @HiranmayaGundu
-* Support wildcard replace in duckdb and snowflake syntax (#1226) - Thanks
@HiranmayaGundu
-
-
-
-## [0.45.0] 2024-04-12
-
-### Added
-* Support `DateTimeField` variants: `CUSTOM` and `WEEK(MONDAY)` (#1191) -
Thanks @iffyio
-* Support for arbitrary expr in `MapAccessSyntax` (#1179) - Thanks @iffyio
-* Support unquoted hyphen in table/view declaration for BigQuery (#1178) -
Thanks @iffyio
-* Support `CREATE/DROP SECRET` for duckdb dialect (#1208) - Thanks @JichaoS
-* Support MySQL `UNIQUE` table constraint (#1164) - Thanks @Nikita-str
-* Support tailing commas on Snowflake. (#1205) - Thanks @yassun7010
-* Support `[FIRST | AFTER column_name]` in `ALTER TABLE` for MySQL (#1180) -
Thanks @xring
-* Support inline comment with hash syntax for BigQuery (#1192) - Thanks
@iffyio
-* Support named windows in OVER (window_definition) clause (#1166) - Thanks
@Nikita-str
-* Support PARALLEL ... and for ..ON NULL INPUT ... to CREATE FUNCTION` (#1202)
- Thanks @dimfeld
-* Support DuckDB functions named arguments with assignment operator (#1195) -
Thanks @alamb
-* Support DuckDB struct literal syntax (#1194) - Thanks @gstvg
-* Support `$$` in generic dialect ... (#1185)- Thanks @milenkovicm
-* Support row_alias and col_aliases in `INSERT` statement for MySQL and
Generic dialects (#1136) - Thanks @emin100
-
-### Fixed
-* Fix dollar quoted string tokenizer (#1193) - Thanks @ZacJW
-* Do not allocate in `impl Display` for `DateTimeField` (#1209) - Thanks @alamb
-* Fix parse `COPY INTO` stage names without parens for SnowFlake (#1187) -
Thanks @mobuchowski
-* Solve stack overflow on RecursionLimitExceeded on debug builds (#1171) -
Thanks @Nikita-str
-* Fix parsing of equality binary operator in function argument (#1182) -
Thanks @jmhain
-* Fix some comments (#1184) - Thanks @sunxunle
-
-### Changed
-* Cleanup `CREATE FUNCTION` tests (#1203) - Thanks @alamb
-* Parse `SUBSTRING FROM` syntax in all dialects, reflect change in the AST
(#1173) - Thanks @lovasoa
-* Add identifier quote style to Dialect trait (#1170) - Thanks @backkem
-
-## [0.44.0] 2024-03-02
-
-### Added
-* Support EXPLAIN / DESCR / DESCRIBE [FORMATTED | EXTENDED] (#1156) - Thanks
@jonathanlehtoalamb
-* Support ALTER TABLE ... SET LOCATION (#1154) - Thanks @jonathanlehto
-* Support `ROW FORMAT DELIMITED` in Hive (#1155) - Thanks @jonathanlehto
-* Support `SERDEPROPERTIES` for `CREATE TABLE` with Hive (#1152) - Thanks
@jonathanlehto
-* Support `EXECUTE ... USING` for Postgres (#1153) - Thanks @jonathanlehto
-* Support Postgres style `CREATE FUNCTION` in GenericDialect (#1159) - Thanks
@alamb
-* Support `SET TBLPROPERTIES` (#1151) - Thanks @jonathanlehto
-* Support `UNLOAD` statement (#1150) - Thanks @jonathanlehto
-* Support `MATERIALIZED CTEs` (#1148) - Thanks @ReppCodes
-* Support `DECLARE` syntax for snowflake and bigquery (#1122) - Thanks @iffyio
-* Support `SELECT AS VALUE` and `SELECT AS STRUCT` for BigQuery (#1135) -
Thanks @lustefaniak
-* Support `(+)` outer join syntax (#1145) - Thanks @jmhain
-* Support `INSERT INTO ... SELECT ... RETURNING`(#1132) - Thanks @lovasoa
-* Support DuckDB `INSTALL` and `LOAD` (#1127) - Thanks @universalmind303
-* Support `=` operator in function args (#1128) - Thanks @universalmind303
-* Support `CREATE VIEW IF NOT EXISTS` (#1118) - Thanks @7phs
-* Support `UPDATE FROM` for SQLite (further to #694) (#1117) - Thanks @ggaughan
-* Support optional `DELETE FROM` statement (#1120) - Thanks @iffyio
-* Support MySQL `SHOW STATUS` statement (#1119) - Thanks invm
-
-### Fixed
-* Clean up nightly clippy lints (#1158) - Thanks @alamb
-* Handle escape, unicode, and hex in tokenize_escaped_single_quoted_string
(#1146) - Thanks @JasonLi-cn
-* Fix panic while parsing `REPLACE` (#1140) - THanks @jjbayer
-* Fix clippy warning from rust 1.76 (#1130) - Thanks @alamb
-* Fix release instructions (#1115) - Thanks @alamb
-
-### Changed
-* Add `parse_keyword_with_tokens` for paring keyword and tokens combination
(#1141) - Thanks @viirya
-* Add ParadeDB to list of known users (#1142) - Thanks @philippemnoel
-* Accept JSON_TABLE both as an unquoted table name and a table-valued function
(#1134) - Thanks @lovasoa
-
-
-## [0.43.1] 2024-01-22
-### Changes
-* Fixed CHANGELOG
-
-
-## [0.43.0] 2024-01-22
-* NO CHANGES
-
-## [0.42.0] 2024-01-22
-
-### Added
-* Support for constraint `CHARACTERISTICS` clause (#1099) - Thanks @dimfeld
-* Support for unquoted hyphenated identifiers on bigquery (#1109) - Thanks
@jmhain
-* Support `BigQuery` table and view options (#1061) - Thanks @iffyio
-* Support Postgres operators for the LIKE expression variants (#1096) - Thanks
@gruuya
-* Support "timezone_region" and "timezone_abbr" for `EXTRACT` (and
`DATE_PART`) (#1090) - Thanks @alexander-beedie
-* Support `JSONB` datatype (#1089) - Thanks @alexander-beedie
-* Support PostgreSQL `^@` starts-with operator (#1091) - Thanks
@alexander-beedie
-* Support PostgreSQL Insert table aliases (#1069) (#1084) - Thanks @boydjohnson
-* Support PostgreSQL `CREATE EXTENSION` (#1078) - Thanks @tobyhede
-* Support PostgreSQL `ADD GENERATED` in `ALTER COLUMN` statements (#1079) -
Thanks @tobyhede
-* Support SQLite column definitions with no type (#1075) - Thanks @takluyver
-* Support PostgreSQL `ENABLE` and `DISABLE` on `ALTER TABLE` (#1077) - Thanks
@tobyhede
-* Support MySQL `FLUSH` statement (#1076) - Thanks @emin100
-* Support Mysql `REPLACE` statement and `PRIORITY` clause of `INSERT` (#1072)
- Thanks @emin100
-
-### Fixed
-* Fix `:start` and `:end` json accesses on SnowFlake (#1110) - Thanks @jmhain
-* Fix array_agg wildcard behavior (#1093) - Thanks @ReppCodes
-* Error on dangling `NO` in `CREATE SEQUENCE` options (#1104) - Thanks
@PartiallyTyped
-* Allow string values in `PRAGMA` commands (#1101) - Thanks @invm
-
-### Changed
-* Use `Option<Expr>` for Min and Max vals in Seq Opts, fix alter col seq
display (#1106) - Thanks @PartiallyTyped
-* Replace `AtomicUsize` with Cell<usize> in the recursion counter (#1098) -
Thanks @wzzzzd
-* Add Qrlew as a user in README.md (#1107) - Thanks @ngrislain
-* Add APIs to reuse token buffers in `Tokenizer` (#1094) - Thanks @0rphon
-* Bump version of `sqlparser-derive` to 0.2.2 (#1083) - Thanks @alamb
-
-## [0.41.0] 2023-12-22
-
-### Added
-* Support `DEFERRED`, `IMMEDIATE`, and `EXCLUSIVE` in SQLite's `BEGIN
TRANSACTION` command (#1067) - Thanks @takaebato
-* Support generated columns skipping `GENERATED ALWAYS` keywords (#1058) -
Thanks @takluyver
-* Support `LOCK/UNLOCK TABLES` for MySQL (#1059) - Thanks @zzzdong
-* Support `JSON_TABLE` (#1062) - Thanks @lovasoa
-* Support `CALL` statements (#1063) - Thanks @lovasoa
-
-### Fixed
-* fix rendering of SELECT TOP (#1070) for Snowflake - Thanks jmhain
-
-### Changed
-* Improve documentation formatting (#1068) - Thanks @alamb
-* Replace type_id() by trait method to allow wrapping dialects (#1065) -
Thanks @jjbayer
-* Document that comments aren't preserved for round trip (#1060) - Thanks
@takluyver
-* Update sqlparser-derive to use `syn 2.0` (#1040) - Thanks @serprex
-
-## [0.40.0] 2023-11-27
-
-### Added
-* Add `{pre,post}_visit_query` to `Visitor` (#1044) - Thanks @jmhain
-* Support generated virtual columns with expression (#1051) - Thanks @takluyver
-* Support PostgreSQL `END` (#1035) - Thanks @tobyhede
-* Support `INSERT INTO ... DEFAULT VALUES ...` (#1036) - Thanks @CDThomas
-* Support `RELEASE` and `ROLLBACK TO SAVEPOINT` (#1045) - Thanks @CDThomas
-* Support `CONVERT` expressions (#1048) - Thanks @lovasoa
-* Support `GLOBAL` and `SESSION` parts in `SHOW VARIABLES` for mysql and
generic - Thanks @emin100
-* Support snowflake `PIVOT` on derived table factors (#1027) - Thanks
@lustefaniak
-* Support mssql json and xml extensions (#1043) - Thanks @lovasoa
-* Support for `MAX` as a character length (#1038) - Thanks @lovasoa
-* Support `IN ()` syntax of SQLite (#1028) - Thanks @alamb
-
-### Fixed
-* Fix extra whitespace printed before `ON CONFLICT` (#1037) - Thanks @CDThomas
-
-### Changed
-* Document round trip ability (#1052) - Thanks @alamb
-* Add PRQL to list of users (#1031) - Thanks @vanillajonathan
-
-## [0.39.0] 2023-10-27
-
-### Added
-* Support for `LATERAL FLATTEN` and similar (#1026) - Thanks @lustefaniak
-* Support BigQuery struct, array and bytes , int64, `float64` datatypes
(#1003) - Thanks @iffyio
-* Support numbers as placeholders in Snowflake (e.g. `:1)` (#1001) - Thanks
@yuval-illumex
-* Support date 'key' when using semi structured data (#1023) @yuval-illumex
-* Support IGNORE|RESPECT NULLs clause in window functions (#998) - Thanks
@yuval-illumex
-* Support for single-quoted identifiers (#1021) - Thanks @lovasoa
-* Support multiple PARTITION statements in ALTER TABLE ADD statement (#1011) -
Thanks @bitemyapp
-* Support "with" identifiers surrounded by backticks in GenericDialect (#1010)
- Thanks @bitemyapp
-* Support INSERT IGNORE in MySql and GenericDialect (#1004) - Thanks @emin100
-* Support SQLite `pragma` statement (#969) - Thanks @marhoily
-* Support `position` as a column name (#1022) - Thanks @lustefaniak
-* Support `FILTER` in Functions (for `OVER`) clause (#1007) - Thanks @lovasoa
-* Support `SELECT * EXCEPT/REPLACE` syntax from ClickHouse (#1013) - Thanks
@lustefaniak
-* Support subquery as function arg w/o parens in Snowflake dialect (#996) -
Thanks @jmhain
-* Support `UNION DISTINCT BY NAME` syntax (#997) - Thanks @alexander-beedie
-* Support mysql `RLIKE` and `REGEXP` binary operators (#1017) - Thanks @lovasoa
-* Support bigquery `CAST AS x [STRING|DATE] FORMAT` syntax (#978) - Thanks
@lustefaniak
-* Support Snowflake/BigQuery `TRIM`. (#975) - Thanks @zdenal
-* Support `CREATE [TEMPORARY|TEMP] VIEW [IF NOT EXISTS] `(#993) - Thanks
@gabivlj
-* Support for `CREATE VIEW … WITH NO SCHEMA BINDING` Redshift (#979) - Thanks
@lustefaniak
-* Support `UNPIVOT` and a fix for chained PIVOTs (#983) - @jmhain
-* Support for `LIMIT BY` (#977) - Thanks @lustefaniak
-* Support for mixed BigQuery table name quoting (#971) - Thanks @iffyio
-* Support `DELETE` with `ORDER BY` and `LIMIT` (MySQL) (#992) - Thanks
@ulrichsg
-* Support `EXTRACT` for `DAYOFWEEK`, `DAYOFYEAR`, `ISOWEEK`, `TIME` (#980) -
Thanks @lustefaniak
-* Support `ATTACH DATABASE` (#989) - Thanks @lovasoa
-
-### Fixed
-* Fix handling of `/~%` in Snowflake stage name (#1009) - Thanks @lustefaniak
-* Fix column `COLLATE` not displayed (#1012) - Thanks @lustefaniak
-* Fix for clippy 1.73 (#995) - Thanks @alamb
-
-### Changed
-* Test to ensure `+ - * / %` binary operators work the same in all dialects
(#1025) - Thanks @lustefaniak
-* Improve documentation on Parser::consume_token and friends (#994) - Thanks
@alamb
-* Test that regexp can be used as an identifier in postgres (#1018) - Thanks
@lovasoa
-* Add docstrings for Dialects, update README (#1016) - Thanks @alamb
-* Add JumpWire to users in README (#990) - Thanks @hexedpackets
-* Add tests for clickhouse: `tokenize == as Token::DoubleEq` (#981)- Thanks
@lustefaniak
-
-## [0.38.0] 2023-09-21
-
-### Added
-
-* Support `==`operator for Sqlite (#970) - Thanks @marhoily
-* Support mysql `PARTITION` to table selection (#959) - Thanks @chunshao90
-* Support `UNNEST` as a table factor for PostgreSQL (#968) @hexedpackets
-* Support MySQL `UNIQUE KEY` syntax (#962) - Thanks @artorias1024
-* Support` `GROUP BY ALL` (#964) - @berkaysynnada
-* Support multiple actions in one ALTER TABLE statement (#960) - Thanks
@ForbesLindesay
-* Add `--sqlite param` to CLI (#956) - Thanks @ddol
-
-### Fixed
-* Fix Rust 1.72 clippy lints (#957) - Thanks @alamb
-
-### Changed
-* Add missing token loc in parse err msg (#965) - Thanks @ding-young
-* Change how `ANY` and `ALL` expressions are represented in AST (#963) -
Thanks @SeanTroyUWO
-* Show location info in parse errors (#958) - Thanks @MartinNowak
-* Update release documentation (#954) - Thanks @alamb
-* Break test and coverage test into separate jobs (#949) - Thanks @alamb
-
-
-## [0.37.0] 2023-08-22
-
-### Added
-* Support `FOR SYSTEM_TIME AS OF` table time travel clause support,
`visit_table_factor` to Visitor (#951) - Thanks @gruuya
-* Support MySQL `auto_increment` offset in table definition (#950) - Thanks
@ehoeve
-* Test for mssql table name in square brackets (#952) - Thanks @lovasoa
-* Support additional Postgres `CREATE INDEX` syntax (#943) - Thanks
@ForbesLindesay
-* Support `ALTER ROLE` syntax of PostgreSQL and MS SQL Server (#942) - Thanks
@r4ntix
-* Support table-level comments (#946) - Thanks @ehoeve
-* Support `DROP TEMPORARY TABLE`, MySQL syntax (#916) - Thanks @liadgiladi
-* Support posgres type alias (#933) - Thanks @Kikkon
-
-### Fixed
-* Clarify the value of the special flag (#948) - Thanks @alamb
-* Fix `SUBSTRING` from/to argument construction for mssql (#947) - Thanks
@jmaness
-* Fix: use Rust idiomatic capitalization for newly added DataType enums (#939)
- Thanks @Kikkon
-* Fix `BEGIN TRANSACTION` being serialized as `START TRANSACTION` (#935) -
Thanks @lovasoa
-* Fix parsing of datetime functions without parenthesis (#930) - Thanks
@lovasoa
-
-## [0.36.1] 2023-07-19
-
-### Fixed
-* Fix parsing of identifiers after '%' symbol (#927) - Thanks @alamb
-
-## [0.36.0] 2023-07-19
-
-### Added
-* Support toggling "unescape" mode to retain original escaping (#870) -
Thanks @canalun
-* Support UNION (ALL) BY NAME syntax (#915) - Thanks @parkma99
-* Add doc comment for all operators (#917) - Thanks @izveigor
-* Support `PGOverlap` operator (#912) - Thanks @izveigor
-* Support multi args for unnest (#909) - Thanks @jayzhan211
-* Support `ALTER VIEW`, MySQL syntax (#907) - Thanks @liadgiladi
-* Add DeltaLake keywords (#906) - Thanks @roeap
-
-### Fixed
-* Parse JsonOperators correctly (#913) - Thanks @izveigor
-* Fix dependabot by removing rust-toolchain toml (#922) - Thanks @alamb
-
-### Changed
-* Clean up JSON operator tokenizing code (#923) - Thanks @alamb
-* Upgrade bigdecimal to 0.4.1 (#921) - Thanks @jinlee0
-* Remove most instances of #[cfg(feature(bigdecimal))] in tests (#910) -
Thanks @alamb
-
-## [0.35.0] 2023-06-23
-
-### Added
-* Support `CREATE PROCEDURE` of MSSQL (#900) - Thanks @delsehi
-* Support DuckDB's `CREATE MACRO` statements (#897) - Thanks @MartinNowak
-* Support for `CREATE TYPE (AS)` statements (#888) - Thanks @srijs
-* Support `STRICT` tables of sqlite (#903) - Thanks @parkma99
-
-### Fixed
-* Fixed precedence of unary negation operator with operators: Mul, Div and Mod
(#902) - Thanks @izveigor
-
-### Changed
-* Add `support_group_by_expr` to `Dialect` trait (#896) - Thanks @jdye64
-* Update criterion requirement from `0.4` to `0.5` in `/sqlparser_bench`
(#890) - Thanks @dependabot (!!)
-
-## [0.34.0] 2023-05-19
-
-### Added
-
-* Support named window frames (#881) - Thanks @berkaysynnada, @mustafasrepo,
and @ozankabak
-* Support for `ORDER BY` clauses in aggregate functions (#882) - Thanks
@mustafasrepo
-* Support `DuckDB` dialect (#878) - Thanks @eitsupi
-* Support optional `TABLE` keyword for `TRUNCATE TABLE` (#883) - Thanks
@mobuchowski
-* Support MySQL's `DIV` operator (#876) - Thanks @eitsupi
-* Support Custom operators (#868) - Thanks @max-sixty
-* Add `Parser::parse_multipart_identifier` (#860) - Thanks @Jefffrey
-* Support for multiple expressions, order by in `ARRAY_AGG` (#879) - Thanks
@mustafasrepo
-* Support for query source in `COPY .. TO` statement (#858) - Thanks @aprimadi
-* Support `DISTINCT ON (...)` (#852) - Thanks @aljazerzen
-* Support multiple-table `DELETE` syntax (#855) - Thanks @AviRaboah
-* Support `COPY INTO` in `SnowflakeDialect` (#841) - Thanks @pawel-big-lebowski
-* Support identifiers beginning with digits in MySQL (#856) - Thanks @AviRaboah
-
-### Changed
-* Include license file in published crate (#871) - Thanks @ankane
-* Make `Expr::Interval` its own struct (#872) - Thanks @aprimadi
-* Add dialect_from_str and improve Dialect documentation (#848) - Thanks @alamb
-* Add clickhouse to example (#849) - Thanks @anglinb
-
-### Fixed
-* Fix merge conflict (#885) - Thanks @alamb
-* Fix tiny typo in custom_sql_parser.md (#864) - Thanks @okue
-* Fix logical merge conflict (#865) - Thanks @alamb
-* Test trailing commas (#859) - Thanks @aljazerzen
-
-
-## [0.33.0] 2023-04-10
-
-### Added
-* Support for Mysql Backslash escapes (enabled by default) (#844) - Thanks
@cobyge
-* Support "UPDATE" statement in "WITH" subquery (#842) - Thanks @nicksrandall
-* Support PIVOT table syntax (#836) - Thanks @pawel-big-lebowski
-* Support CREATE/DROP STAGE for Snowflake (#833) - Thanks @pawel-big-lebowski
-* Support Non-Latin characters (#840) - Thanks @mskrzypkows
-* Support PostgreSQL: GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY and
GENERATED - Thanks @sam-mmm
-* Support IF EXISTS in COMMENT statements (#831) - Thanks @pawel-big-lebowski
-* Support snowflake alter table swap with (#825) - Thanks @pawel-big-lebowski
-
-### Changed
-* Move tests from parser.rs to appropriate parse_XX tests (#845) - Thanks
@alamb
-* Correct typos in parser.rs (#838) - Thanks @felixonmars
-* Improve documentation on verified_* methods (#828) - Thanks @alamb
-
-## [0.32.0] 2023-03-6
-
-### Added
-* Support ClickHouse `CREATE TABLE` with `ORDER BY` (#824) - Thanks @ankrgyl
-* Support PostgreSQL exponentiation `^` operator (#813) - Thanks @michael-2956
-* Support `BIGNUMERIC` type in BigQuery (#811) - Thanks @togami2864
-* Support for optional trailing commas (#810) - Thanks @ankrgyl
-
-### Fixed
-* Fix table alias parsing regression by backing out redshift column definition
list (#827) - Thanks @alamb
-* Fix typo in `ReplaceSelectElement` `colum_name` --> `column_name` (#822) -
Thanks @togami2864
-
-## [0.31.0] 2023-03-1
-
-### Added
-* Support raw string literals for BigQuery dialect (#812) - Thanks @togami2864
-* Support `SELECT * REPLACE <Expr> AS <Identifier>` in BigQuery dialect (#798)
- Thanks @togami2864
-* Support byte string literals for BigQuery dialect (#802) - Thanks @togami2864
-* Support columns definition list for system information functions in
RedShift dialect (#769) - Thanks @mskrzypkows
-* Support `TRANSIENT` keyword in Snowflake dialect (#807) - Thanks @mobuchowski
-* Support `JSON` keyword (#799) - Thanks @togami2864
-* Support MySQL Character Set Introducers (#788) - Thanks @mskrzypkows
-
-### Fixed
-* Fix clippy error in ci (#803) - Thanks @togami2864
-* Handle offset in map key in BigQuery dialect (#797) - Thanks @Ziinc
-* Fix a typo (precendence -> precedence) (#794) - Thanks @SARDONYX-sard
-* use post_* visitors for mutable visits (#789) - Thanks @lovasoa
-
-### Changed
-* Add another known user (#787) - Thanks @joocer
-
-## [0.30.0] 2023-01-02
-
-### Added
-* Support `RENAME` for wildcard `SELECTs` (#784) - Thanks @Jefffrey
-* Add a mutable visitor (#782) - Thanks @lovasoa
-
-### Changed
-* Allow parsing of mysql empty row inserts (#783) - Thanks @Jefffrey
-
-### Fixed
-* Fix logical conflict (#785) - Thanks @alamb
-
-## [0.29.0] 2022-12-29
-
-### Highlights
-* Partial source location tracking: see #710
-* Recursion limit to prevent stack overflows: #764
-* AST visitor: #765
-
-### Added
-feat: dollar-quoted strings support (#772) - Thanks @vasilev-alex
-* Add derive based AST visitor (#765) - Thanks @tustvold
-* Support `ALTER INDEX {INDEX_NAME} RENAME TO {NEW_INDEX_NAME}` (#767) -
Thanks @devgony
-* Support `CREATE TABLE ON UPDATE <expr>` Function (#685) - Thanks @CEOJINSUNG
-* Support `CREATE FUNCTION` definition with `$$` (#755)- Thanks @zidaye
-* Add location tracking in the tokenizer and parser (#710) - Thanks @ankrgyl
-* Add configurable recursion limit to parser, to protect against
stackoverflows (#764) - Thanks @alamb
-* Support parsing scientific notation (such as `10e5`) (#768) - Thanks
@Jefffrey
-* Support `DROP FUNCTION` syntax (#752) - Thanks @zidaye
-* Support json operators `@>` `<@`, `@?` and `@@` - Thanks @audunska
-* Support the type key (#750)- Thanks @yuval-illumex
-
-### Changed
-* Improve docs and add examples for Visitor (#778) - Thanks @alamb
-* Add a backlink from sqlparse_derive to sqlparser and publishing instructions
(#779) - Thanks @alamb
-* Document new features, update authors (#776) - Thanks @alamb
-* Improve Readme (#774) - Thanks @alamb
-* Standardize comments on parsing optional keywords (#773) - Thanks @alamb
-* Enable grouping sets parsing for `GenericDialect` (#771) - Thanks @Jefffrey
-* Generalize conflict target (#762) - Thanks @audunska
-* Generalize locking clause (#759) - Thanks @audunska
-* Add negative test for except clause on wildcards (#746)- Thanks @alamb
-* Add `NANOSECOND` keyword (#749)- Thanks @waitingkuo
-
-### Fixed
-* ParserError if nested explain (#781) - Thanks @Jefffrey
-* Fix cargo docs / warnings and add CI check (#777) - Thanks @alamb
-* unnest join constraint with alias parsing for BigQuery dialect (#732)-
Thanks @Ziinc
-
-## [0.28.0] 2022-12-05
-
-### Added
-* Support for `EXCEPT` clause on wildcards (#745) - Thanks @AugustoFKL
-* Support `CREATE FUNCTION` Postgres options (#722) - Thanks @wangrunji0408
-* Support `CREATE TABLE x AS TABLE y` (#704) - Thanks @sarahyurick
-* Support MySQL `ROWS` syntax for `VALUES` (#737) - Thanks @aljazerzen
-* Support `WHERE` condition for `UPDATE ON CONFLICT` (#735) - Thanks @zidaye
-* Support `CLUSTER BY` when creating Materialized View (#736) - Thanks
@yuval-illumex
-* Support nested comments (#726) - Thanks @yang-han
-* Support `USING` method when creating indexes. (#731) - Thanks @step-baby and
@yangjiaxin01
-* Support `SEMI`/`ANTI` `JOIN` syntax (#723) - Thanks @mingmwang
-* Support `EXCLUDE` support for snowflake and generic dialect (#721) - Thanks
@AugustoFKL
-* Support `MATCH AGAINST` (#708) - Thanks @AugustoFKL
-* Support `IF NOT EXISTS` in `ALTER TABLE ADD COLUMN` (#707) - Thanks
@AugustoFKL
-* Support `SET TIME ZONE <value>` (#727) - Thanks @waitingkuo
-* Support `UPDATE ... FROM ( subquery )` (#694) - Thanks @unvalley
-
-### Changed
-* Add `Parser::index()` method to get current parsing index (#728) - Thanks
@neverchanje
-* Add `COMPRESSION` as keyword (#720)- Thanks @AugustoFKL
-* Derive `PartialOrd`, `Ord`, and `Copy` whenever possible (#717) - Thanks
@AugustoFKL
-* Fixed `INTERVAL` parsing logic and precedence (#705) - Thanks @sarahyurick
-* Support updating multiple column names whose names are the same as(#725) -
Thanks @step-baby
-
-### Fixed
-* Clean up some redundant code in parser (#741) - Thanks @alamb
-* Fix logical conflict - Thanks @alamb
-* Cleanup to avoid is_ok() (#740) - Thanks @alamb
-* Cleanup to avoid using unreachable! when parsing semi/anti join (#738) -
Thanks @alamb
-* Add an example to docs to clarify semantic analysis (#739) - Thanks @alamb
-* Add information about parting semantic logic to README.md (#724) - Thanks
@AugustoFKL
-* Logical conflicts - Thanks @alamb
-* Tiny typo in docs (#709) - Thanks @pmcgee69
-
-
-## [0.27.0] 2022-11-11
-
-### Added
-* Support `ON CONFLICT` and `RETURNING` in `UPDATE` statement (#666) - Thanks
@main and @gamife
-* Support `FULLTEXT` option on create table for MySQL and Generic dialects
(#702) - Thanks @AugustoFKL
-* Support `ARRAY_AGG` for Bigquery and Snowflake (#662) - Thanks @SuperBo
-* Support DISTINCT for SetOperator (#689) - Thanks @unvalley
-* Support the ARRAY type of Snowflake (#699) - Thanks @yuval-illumex
-* Support create sequence with options INCREMENT, MINVALUE, MAXVALUE, START
etc. (#681) - Thanks @sam-mmm
-* Support `:` operator for semi-structured data in Snowflake(#693) - Thanks
@yuval-illumex
-* Support ALTER TABLE DROP PRIMARY KEY (#682) - Thanks @ding-young
-* Support `NUMERIC` and `DEC` ANSI data types (#695) - Thanks @AugustoFKL
-* Support modifiers for Custom Datatype (#680) - Thanks @sunng87
-
-### Changed
-* Add precision for TIME, DATETIME, and TIMESTAMP data types (#701) - Thanks
@AugustoFKL
-* add Date keyword (#691) - Thanks @sarahyurick
-* Update simple_logger requirement from 2.1 to 4.0 - Thanks @dependabot
-
-### Fixed
-* Fix broken DataFusion link (#703) - Thanks @jmg-duarte
-* Add MySql, BigQuery to all dialects tests, fixed bugs (#697) - Thanks
@omer-shtivi
-
-
-## [0.26.0] 2022-10-19
-
-### Added
-* Support MySQL table option `{INDEX | KEY}` in CREATE TABLE definiton (#665)
- Thanks @AugustoFKL
-* Support `CREATE [ { TEMPORARY | TEMP } ] SEQUENCE [ IF NOT EXISTS ]
<sequence_name>` (#678) - Thanks @sam-mmm
-* Support `DROP SEQUENCE` statement (#673) - Thanks @sam-mmm
-* Support for ANSI types `CHARACTER LARGE OBJECT[(p)]` and `CHAR LARGE
OBJECT[(p)]` (#671) - Thanks @AugustoFKL
-* Support `[CACHE|UNCACHE] TABLE` (#670) - Thanks @francis-du
-* Support `CEIL(expr TO DateTimeField)` and `FLOOR(expr TO DateTimeField)` -
Thanks @sarahyurick
-* Support all ansii character string types, (#648) - Thanks @AugustoFKL
-
-### Changed
-* Support expressions inside window frames (#655) - Thanks @mustafasrepo and
@ozankabak
-* Support unit on char length units for small character strings (#663) -
Thanks @AugustoFKL
-* Replace booleans on `SET ROLE` with a single enum. (#664) - Thanks
@AugustoFKL
-* Replace `Option`s with enum for `DECIMAL` precision (#654) - Thanks
@AugustoFKL
-
-## [0.25.0] 2022-10-03
-
-### Added
-
-* Support `AUTHORIZATION` clause in `CREATE SCHEMA` statements (#641) - Thanks
@AugustoFKL
-* Support optional precision for `CLOB` and `BLOB` (#639) - Thanks @AugustoFKL
-* Support optional precision in `VARBINARY` and `BINARY` (#637) - Thanks
@AugustoFKL
-
-
-### Changed
-* `TIMESTAMP` and `TIME` parsing preserve zone information (#646) - Thanks
@AugustoFKL
-
-### Fixed
-
-* Correct order of arguments when parsing `LIMIT x,y` , restrict to `MySql`
and `Generic` dialects - Thanks @AugustoFKL
-
-
-## [0.24.0] 2022-09-29
-
-### Added
-
-* Support `MILLENNIUM` (2 Ns) (#633) - Thanks @sarahyurick
-* Support `MEDIUMINT` (#630) - Thanks @AugustoFKL
-* Support `DOUBLE PRECISION` (#629) - Thanks @AugustoFKL
-* Support precision in `CLOB`, `BINARY`, `VARBINARY`, `BLOB` data type (#618)
- Thanks @ding-young
-* Support `CREATE ROLE` and `DROP ROLE` (#598) - Thanks @blx
-* Support full range of sqlite prepared statement placeholders (#604) - Thanks
@lovasoa
-* Support National string literal with lower case `n` (#612) - Thanks
@mskrzypkows
-* Support SHOW FUNCTIONS (#620) - Thanks @joocer
-* Support `set time zone to 'some-timezone'` (#617) - Thanks @waitingkuo
-
-### Changed
-* Move `Value::Interval` to `Expr::Interval` (#609) - Thanks @ding-young
-* Update `criterion` dev-requirement from 0.3 to 0.4 in /sqlparser_bench
(#611) - Thanks @dependabot
-* Box `Query` in `Cte` (#572) - Thanks @MazterQyou
-
-### Other
-* Disambiguate CREATE ROLE ... USER and GROUP (#628) - Thanks @alamb
-* Add test for optional WITH in CREATE ROLE (#627) - Thanks @alamb
-
-## [0.23.0] 2022-09-08
-
-### Added
-* Add support for aggregate expressions with filters (#585) - Thanks @andygrove
-* Support `LOCALTIME` and `LOCALTIMESTAMP` time functions (#592) - Thanks
@MazterQyou
-
-## [0.22.0] 2022-08-26
-
-### Added
-* Support `OVERLAY` expressions (#594) - Thanks @ayushg
-* Support `WITH TIMEZONE` and `WITHOUT TIMEZONE` when parsing `TIMESTAMP`
expressions (#589) - Thanks @waitingkuo
-* Add ability for dialects to override prefix, infix, and statement parsing
(#581) - Thanks @andygrove
-
-## [0.21.0] 2022-08-18
-
-### Added
-* Support `IS [NOT] TRUE`, `IS [NOT] FALSE`, and `IS [NOT] UNKNOWN` - Thanks
(#583) @sarahyurick
-* Support `SIMILAR TO` syntax (#569) - Thanks @ayushdg
-* Support `SHOW COLLATION` (#564) - Thanks @MazterQyou
-* Support `SHOW TABLES` (#563) - Thanks @MazterQyou
-* Support `SET NAMES literal [COLLATE literal]` (#558) - Thanks @ovr
-* Support trailing commas (#557) in `BigQuery` dialect - Thanks @komukomo
-* Support `USE <DB>` (#565) - Thanks @MazterQyou
-* Support `SHOW COLUMNS FROM tbl FROM db` (#562) - Thanks @MazterQyou
-* Support `SHOW VARIABLES` for `MySQL` dialect (#559) - Thanks @ovr and
@vasilev-alex
-
-### Changed
-* Support arbitrary expression in `SET` statement (#574) - Thanks @ovr and
@vasilev-alex
-* Parse LIKE patterns as Expr not Value (#579) - Thanks @andygrove
-* Update Ballista link in README (#576) - Thanks @sanxiyn
-* Parse `TRIM` from with optional expr and `FROM` expr (#573) - Thanks
@ayushdg
-* Support PostgreSQL array subquery constructor (#566) - Thanks @MazterQyou
-* Clarify contribution licensing (#570) - Thanks @alamb
-* Update for new clippy ints (#571) - Thanks @alamb
-* Change `Like` and `ILike` to `Expr` variants, allow escape char (#569) -
Thanks @ayushdg
-* Parse special keywords as functions (`current_user`, `user`, etc) (#561) -
Thanks @ovr
-* Support expressions in `LIMIT`/`OFFSET` (#567) - Thanks @MazterQyou
-
-## [0.20.0] 2022-08-05
-
-### Added
-* Support custom `OPERATOR` postgres syntax (#548) - Thanks @iskakaushik
-* Support `SAFE_CAST` for BigQuery (#552) - Thanks @togami2864
-
-### Changed
-* Added SECURITY.md (#546) - Thanks @JamieSlome
-* Allow `>>` and `<<` binary operators in Generic dialect (#553) - Thanks @ovr
-* Allow `NestedJoin` with an alias (#551) - Thanks @waitingkuo
-
-## [0.19.0] 2022-07-28
-
-### Added
-
-* Support `ON CLUSTER` for `CREATE TABLE` statement (ClickHouse DDL) (#527) -
Thanks @andyrichardson
-* Support empty `ARRAY` literals (#532) - Thanks @bitemyapp
-* Support `AT TIME ZONE` clause (#539) - Thanks @bitemyapp
-* Support `USING` clause and table aliases in `DELETE` (#541) - Thanks
@mobuchowski
-* Support `SHOW CREATE VIEW` statement (#536) - Thanks @mrob95
-* Support `CLONE` clause in `CREATE TABLE` statements (#542) - Thanks
@mobuchowski
-* Support `WITH OFFSET Alias` in table references (#528) - Thanks @sivchari
-* Support double quoted (`"`) literal strings: (#530) - Thanks @komukomo
-* Support `ON UPDATE` clause on column definitions in `CREATE TABLE`
statements (#522) - Thanks @frolovdev
-
-
-### Changed:
-
-* `Box`ed `Query` body to save stack space (#540) - Thanks @5tan
-* Distinguish between `INT` and `INTEGER` types (#525) - Thanks @frolovdev
-* Parse `WHERE NOT EXISTS` as `Expr::Exists` rather than `Expr::UnaryOp` for
consistency (#523) - Thanks @frolovdev
-* Support `Expr` instead of `String` for argument to `INTERVAL` (#517) -
Thanks @togami2864
-
-### Fixed:
-
-* Report characters instead of bytes in error messages (#529) - Thanks
@michael-2956
-
-
-## [0.18.0] 2022-06-06
-
-### Added
-
-* Support `CLOSE` (cursors) (#515) - Thanks @ovr
-* Support `DECLARE` (cursors) (#509) - Thanks @ovr
-* Support `FETCH` (cursors) (#510) - Thanks @ovr
-* Support `DATETIME` keyword (#512) - Thanks @komukomo
-* Support `UNNEST` as a table factor (#493) - Thanks @sivchari
-* Support `CREATE FUNCTION` (hive flavor) (#496) - Thanks @mobuchowski
-* Support placeholders (`$` or `?`) in `LIMIT` clause (#494) - Thanks
@step-baby
-* Support escaped string literals (PostgreSQL) (#502) - Thanks @ovr
-* Support `IS TRUE` and `IS FALSE` (#499) - Thanks @ovr
-* Support `DISCARD [ALL | PLANS | SEQUENCES | TEMPORARY | TEMP]` (#500) -
Thanks @gandronchik
-* Support `array<..>` HIVE data types (#491) - Thanks @mobuchowski
-* Support `SET` values that begin with `-` #495 - Thanks @mobuchowski
-* Support unicode whitespace (#482) - Thanks @alexsatori
-* Support `BigQuery` dialect (#490) - Thanks @komukomo
-
-### Changed:
-* Add docs for MapAccess (#489) - Thanks @alamb
-* Rename `ArrayIndex::indexs` to `ArrayIndex::indexes` (#492) - Thanks @alamb
-
-### Fixed:
-* Fix escaping of trailing quote in quoted identifiers (#505) - Thanks
@razzolini-qpq
-* Fix parsing of `COLLATE` after parentheses in expressions (#507) - Thanks
@razzolini-qpq
-* Distinguish tables and nullary functions in `FROM` (#506) - Thanks
@razzolini-qpq
-* Fix `MERGE INTO` semicolon handling (#508) - Thanks @mskrzypkows
-
-## [0.17.0] 2022-05-09
-
-### Added
-
-* Support `#` as first character in field name for `RedShift` dialect (#485) -
Thanks @yuval-illumex
-* Support for postgres composite types (#466) - Thanks @poonai
-* Support `TABLE` keyword with SELECT INTO (#487) - Thanks @MazterQyou
-* Support `ANY`/`ALL` operators (#477) - Thanks @ovr
-* Support `ArrayIndex` in `GenericDialect` (#480) - Thanks @ovr
-* Support `Redshift` dialect, handle square brackets properly (#471) - Thanks
@mskrzypkows
-* Support `KILL` statement (#479) - Thanks @ovr
-* Support `QUALIFY` clause on `SELECT` for `Snowflake` dialect (#465) - Thanks
@mobuchowski
-* Support `POSITION(x IN y)` function syntax (#463) @yuval-illumex
-* Support `global`,`local`, `on commit` for `create temporary table` (#456) -
Thanks @gandronchik
-* Support `NVARCHAR` data type (#462) - Thanks @yuval-illumex
-* Support for postgres json operators `->`, `->>`, `#>`, and `#>>` (#458) -
Thanks @poonai
-* Support `SET ROLE` statement (#455) - Thanks @slhmy
-
-### Changed:
-* Improve docstrings for `KILL` statement (#481) - Thanks @alamb
-* Add negative tests for `POSITION` (#469) - Thanks @alamb
-* Add negative tests for `IN` parsing (#468) - Thanks @alamb
-* Suppport table names (as well as subqueries) as source in `MERGE` statements
(#483) - Thanks @mskrzypkows
-
-
-### Fixed:
-* `INTO` keyword is optional for `INSERT`, `MERGE` (#473) - Thanks
@mobuchowski
-* Support `IS TRUE` and `IS FALSE` expressions in boolean filter (#474) -
Thanks @yuval-illumex
-* Support fully qualified object names in `SET VARIABLE` (#484) - Thanks
mobuchowski
-
-## [0.16.0] 2022-04-03
-
-### Added
-
-* Support `WEEK` keyword in `EXTRACT` (#436) - Thanks @Ted-Jiang
-* Support `MERGE` statement (#430) - Thanks @mobuchowski
-* Support `SAVEPOINT` statement (#438) - Thanks @poonai
-* Support `TO` clause in `COPY` (#441) - Thanks @matthewmturner
-* Support `CREATE DATABASE` statement (#451) - Thanks @matthewmturner
-* Support `FROM` clause in `UPDATE` statement (#450) - Thanks @slhmy
-* Support additional `COPY` options (#446) - Thanks @wangrunji0408
-
-### Fixed:
-* Bug in array / map access parsing (#433) - Thanks @monadbobo
-
-## [0.15.0] 2022-03-07
-
-### Added
-
-* Support for ClickHouse array types (e.g. [1,2,3]) (#429) - Thanks @monadbobo
-* Support for `unsigned tinyint`, `unsigned int`, `unsigned smallint` and
`unsigned bigint` datatypes (#428) - Thanks @watarukura
-* Support additional keywords for `EXTRACT` (#427) - Thanks @mobuchowski
-* Support IN UNNEST(expression) (#426) - Thanks @komukomo
-* Support COLLATION keywork on CREATE TABLE (#424) - Thanks @watarukura
-* Support FOR UPDATE/FOR SHARE clause (#418) - Thanks @gamife
-* Support prepared statement placeholder arg `?` and `$` (#420) - Thanks
@gamife
-* Support array expressions such as `ARRAY[1,2]` , `foo[1]` and `INT[][]`
(#419) - Thanks @gamife
-
-### Changed:
-* remove Travis CI (#421) - Thanks @efx
-
-### Fixed:
-* Allow `array` to be used as a function name again (#432) - @alamb
-* Update docstring reference to `Query` (#423) - Thanks @max-sixty
-
-## [0.14.0] 2022-02-09
-
-### Added
-* Support `CURRENT_TIMESTAMP`, `CURRENT_TIME`, and `CURRENT_DATE` (#391) -
Thanks @yuval-illumex
-* SUPPORT `SUPER` keyword (#387) - Thanks @flaneur2020
-* Support differing orders of `OFFSET` `LIMIT` as well as `LIMIT` `OFFSET`
(#413) - Thanks @yuval-illumex
-* Support for `FROM <filename>`, `DELIMITER`, and `CSV HEADER` options for
`COPY` command (#409) - Thanks @poonai
-* Support `CHARSET` and `ENGINE` clauses on `CREATE TABLE` for mysql (#392) -
Thanks @antialize
-* Support `DROP CONSTRAINT [ IF EXISTS ] <name> [ CASCADE ]` (#396) - Thanks
@tvallotton
-* Support parsing tuples and add `Expr::Tuple` (#414) - @alamb
-* Support MySQL style `LIMIT X, Y` (#415) - @alamb
-* Support `SESSION TRANSACTION` and `TRANSACTION SNAPSHOT`. (#379) - Thanks
@poonai
-* Support `ALTER COLUMN` and `RENAME CONSTRAINT` (#381) - Thanks @zhamlin
-* Support for Map access, add ClickHouse dialect (#382) - Thanks @monadbobo
-
-### Changed
-* Restrict where wildcard (`*`) can appear, add to `FunctionArgExpr` remove
`Expr::[Qualified]Wildcard`, (#378) - Thanks @panarch
-* Update simple_logger requirement from 1.9 to 2.1 (#403)
-* export all methods of parser (#397) - Thanks @neverchanje!
-* Clarify maintenance status on README (#416) - @alamb
-
-### Fixed
-* Fix new clippy errors (#412) - @alamb
-* Fix panic with `GRANT/REVOKE` in `CONNECT`, `CREATE`, `EXECUTE` or
`TEMPORARY` - Thanks @evgenyx00
-* Handle double quotes inside quoted identifiers correctly (#411) - Thanks
@Marwes
-* Handle mysql backslash escaping (#373) - Thanks @vasilev-alex
-
-## [0.13.0] 2021-12-10
-
-### Added
-* Add ALTER TABLE CHANGE COLUMN, extend the UPDATE statement with ON clause
(#375) - Thanks @0xA537FD!
-* Add support for GROUPIING SETS, ROLLUP and CUBE - Thanks @Jimexist!
-* Add basic support for GRANT and REVOKE (#365) - Thanks @blx!
-
-### Changed
-* Use Rust 2021 edition (#368) - Thanks @Jimexist!
-
-### Fixed
-* Fix clippy errors (#367, #374) - Thanks @Jimexist!
-
-
-## [0.12.0] 2021-10-14
-
-### Added
-* Add support for [NOT] IS DISTINCT FROM (#306) - @Dandandan
-
-### Changed
-* Move the keywords module - Thanks @koushiro!
-
-
-## [0.11.0] 2021-09-24
-
-### Added
-* Support minimum display width for integer data types (#337) Thanks
@vasilev-alex!
-* Add logical XOR operator (#357) - Thanks @xzmrdltl!
-* Support DESCRIBE table_name (#340) - Thanks @ovr!
-* Support SHOW CREATE TABLE|EVENT|FUNCTION (#338) - Thanks @ovr!
-* Add referential actions to TableConstraint foreign key (#306) - Thanks
@joshwd36!
-
-### Changed
-* Enable map access for numbers, multiple nesting levels (#356) - Thanks
@Igosuki!
-* Rename Token::Mult to Token::Mul (#353) - Thanks @koushiro!
-* Use derive(Default) for HiveFormat (#348) - Thanks @koushiro!
-* Improve tokenizer error (#347) - Thanks @koushiro!
-* Eliminate redundant string copy in Tokenizer (#343) - Thanks @koushiro!
-* Update bigdecimal requirement from 0.2 to 0.3 dependencies (#341)
-* Support parsing hexadecimal literals that start with `0x` (#324) - Thanks
@TheSchemm!
-
-
-## [0.10.0] 2021-08-23
-
-### Added
-* Support for `no_std` (#332) - Thanks @koushiro!
-* Postgres regular expression operators (`~`, `~*`, `!~`, `!~*`) (#328) -
Thanks @b41sh!
-* tinyint (#320) - Thanks @sundy-li
-* ILIKE (#300) - Thanks @maxcountryman!
-* TRIM syntax (#331, #334) - Thanks ever0de
-
-
-### Fixed
-* Return error instead of panic (#316) - Thanks @BohuTANG!
-
-### Changed
-- Rename `Modulus` to `Modulo` (#335) - Thanks @RGRAVITY817!
-- Update links to reflect repository move to `sqlparser-rs` GitHub org (#333)
- Thanks @andygrove
-- Add default value for `WindowFrame` (#313) - Thanks @Jimexist!
-
-## [0.9.0] 2021-03-21
-
-### Added
-* Add support for `TRY_CAST` syntax (#299) - Thanks @seddonm1!
-
-## [0.8.0] 2021-02-20
-
-### Added
-* Introduce Hive QL dialect `HiveDialect` and syntax (#235) - Thanks @hntd187!
-* Add `SUBSTRING(col [FROM <expr>] [FOR <expr>])` syntax (#293)
-* Support parsing floats without leading digits `.01` (#294)
-* Support parsing multiple show variables (#290) - Thanks @francis-du!
-* Support SQLite `INSERT OR [..]` syntax (#281) - Thanks @zhangli-pear!
-
-## [0.7.0] 2020-12-28
-
-### Changed
-- Change the MySQL dialect to support `` `identifiers` `` quoted with
backticks instead of the standard `"double-quoted"` identifiers (#247) - thanks
@mashuai!
-- Update bigdecimal requirement from 0.1 to 0.2 (#268)
-
-### Added
-- Enable dialect-specific behaviours in the parser (`dialect_of!()`) (#254) -
thanks @eyalleshem!
-- Support named arguments in function invocations (`ARG_NAME => val`) (#250) -
thanks @eyalleshem!
-- Support `TABLE()` functions in `FROM` (#253) - thanks @eyalleshem!
-- Support Snowflake's single-line comments starting with '#' or '//' (#264) -
thanks @eyalleshem!
-- Support PostgreSQL `PREPARE`, `EXECUTE`, and `DEALLOCATE` (#243) - thanks
@silathdiir!
-- Support PostgreSQL math operators (#267) - thanks @alex-dukhno!
-- Add SQLite dialect (#248) - thanks @mashuai!
-- Add Snowflake dialect (#259) - thanks @eyalleshem!
-- Support for Recursive CTEs - thanks @rhanqtl!
-- Support `FROM (table_name) alias` syntax - thanks @eyalleshem!
-- Support for `EXPLAIN [ANALYZE] VERBOSE` - thanks @ovr!
-- Support `ANALYZE TABLE`
-- DDL:
- - Support `OR REPLACE` in `CREATE VIEW`/`TABLE` (#239) - thanks
@Dandandan!
- - Support specifying `ASC`/`DESC` in index columns (#249) - thanks
@mashuai!
- - Support SQLite `AUTOINCREMENT` and MySQL `AUTO_INCREMENT` column option
in `CREATE TABLE` (#234) - thanks @mashuai!
- - Support PostgreSQL `IF NOT EXISTS` for `CREATE SCHEMA` (#276) - thanks
@alex-dukhno!
-
-### Fixed
-- Fix a typo in `JSONFILE` serialization, introduced in 0.3.1 (#237)
-- Change `CREATE INDEX` serialization to not end with a semicolon, introduced
in 0.5.1 (#245)
-- Don't fail parsing `ALTER TABLE ADD COLUMN` ending with a semicolon,
introduced in 0.5.1 (#246) - thanks @mashuai
-
-## [0.6.1] - 2020-07-20
-
-### Added
-- Support BigQuery `ASSERT` statement (#226)
-
-## [0.6.0] - 2020-07-20
-
-### Added
-- Support SQLite's `CREATE TABLE (...) WITHOUT ROWID` (#208) - thanks @mashuai!
-- Support SQLite's `CREATE VIRTUAL TABLE` (#209) - thanks @mashuai!
-
-## [0.5.1] - 2020-06-26
-This release should have been called `0.6`, as it introduces multiple
incompatible changes to the API. If you don't want to upgrade yet, you can
revert to the previous version by changing your `Cargo.toml` to:
-
- sqlparser = "= 0.5.0"
-
-
-### 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!
-- Add line and column number to TokenizerError (#194) - thanks @Dandandan!
-- Use Token::EOF instead of Option<Token> (#195)
-- Make the units keyword following `INTERVAL '...'` optional (#184) - thanks
@maxcountryman!
-- Generalize `DATE`/`TIME`/`TIMESTAMP` literals representation in the AST
(`TypedString { data_type, value }`) and allow `DATE` and other keywords to be
used as identifiers when not followed by a string (#187) - thanks
@maxcountryman!
-- Output DataType capitalized (`fmt::Display`) (#202) - thanks @Dandandan!
-
-### Added
-- Support MSSQL `TOP (<N>) [ PERCENT ] [ WITH TIES ]` (#150) - thanks
@alexkyllo!
-- Support MySQL `LIMIT row_count OFFSET offset` (not followed by `ROW` or
`ROWS`) and remember which variant was parsed (#158) - thanks @mjibson!
-- Support PostgreSQL `CREATE TABLE IF NOT EXISTS table_name` (#163) - thanks
@alex-dukhno!
-- Support basic forms of `CREATE INDEX` and `DROP INDEX` (#167) - thanks
@mashuai!
-- Support `ON { UPDATE | DELETE } { RESTRICT | CASCADE | SET NULL | NO ACTION
| SET DEFAULT }` in `FOREIGN KEY` constraints (#170) - thanks @c7hm4r!
-- 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!
-- Add serde support to AST structs and enums (#196) - thanks @panarch!
-- Support `ALTER TABLE ADD COLUMN`, `RENAME COLUMN`, and `RENAME TO` (#203) -
thanks @mashuai!
-- Support `ALTER TABLE DROP COLUMN` (#148) - thanks @ivanceras!
-- Support `CREATE TABLE ... AS ...` (#206) - thanks @Dandandan!
-
-### Fixed
-- Report an error for unterminated string literals (#165)
-- Make file format (`STORED AS`) case insensitive (#200) and don't allow
quoting it (#201) - thanks @Dandandan!
-
-## [0.5.0] - 2019-10-10
-
-### Changed
-- Replace the `Value::Long(u64)` and `Value::Double(f64)` variants with
`Value::Number(String)` to avoid losing precision when parsing decimal literals
(#130) - thanks @benesch!
-- `--features bigdecimal` can be enabled to work with
`Value::Number(BigDecimal)` instead, at the cost of an additional dependency.
-
-### Added
-- Support MySQL `SHOW COLUMNS`, `SET <variable>=<value>`, and `SHOW
<variable>` statements (#135) - thanks @quodlibetor and @benesch!
-
-### Fixed
-- Don't fail to parse `START TRANSACTION` followed by a semicolon (#139) -
thanks @gaffneyk!
-
-
-## [0.4.0] - 2019-07-02
-This release brings us closer to SQL-92 support, mainly thanks to the
improvements contributed back from @MaterializeInc's fork and other work by
@benesch.
-
-### Changed
-- Remove "SQL" from type and enum variant names, `SQLType` -> `DataType`,
remove "sql" prefix from module names (#105, #122)
-- Rename `ASTNode` -> `Expr` (#119)
-- Improve consistency of binary/unary op nodes (#112):
- - `ASTNode::SQLBinaryExpr` is now `Expr::BinaryOp` and `ASTNode::SQLUnary`
is `Expr::UnaryOp`;
- - The `op: SQLOperator` field is now either a `BinaryOperator` or an
`UnaryOperator`.
-- Change the representation of JOINs to match the standard (#109):
`SQLSelect`'s `relation` and `joins` are replaced with `from:
Vec<TableWithJoins>`. Before this change `FROM foo NATURAL JOIN bar, baz` was
represented as "foo" as the `relation` followed by two joins (`Inner(Natural)`
and `Implicit`); now it's two `TableWithJoins` (`foo NATURAL JOIN bar` and
`baz`).
-- Extract a `SQLFunction` struct (#89)
-- Replace `Option<Vec<T>>` with `Vec<T>` in the AST structs (#73)
-- Change `Value::Long()` to be unsigned, use u64 consistently (#65)
-
-### Added
-- Infra:
- - Implement `fmt::Display` on AST nodes (#124) - thanks @vemoo!
- - Implement `Hash` (#88) and `Eq` (#123) on all AST nodes
- - Implement `std::error::Error` for `ParserError` (#72)
- - Handle Windows line-breaks (#54)
-- Expressions:
- - Support `INTERVAL` literals (#103)
- - Support `DATE` / `TIME` / `TIMESTAMP` literals (#99)
- - Support `EXTRACT` (#96)
- - Support `X'hex value'` literals (#95)
- - Support `EXISTS` subqueries (#90)
- - Support nested expressions in `BETWEEN` (#80)
- - Support `COUNT(DISTINCT x)` and similar (#77)
- - Support `CASE operand WHEN expected_value THEN ..` and table-valued
functions (#59)
- - Support analytic (window) functions (`OVER` clause) (#50)
-- Queries / DML:
- - Support nested joins (#100) and derived tables with set operations (#111)
- - Support `UPDATE` statements (#97)
- - Support `INSERT INTO foo SELECT * FROM bar` and `FROM VALUES (...)` (#91)
- - Support `SELECT ALL` (#76)
- - Add `FETCH` and `OFFSET` support, and `LATERAL` (#69) - thanks
@thomas-jeepe!
- - Support `COLLATE`, optional column list in CTEs (#64)
-- DDL/TCL:
- - Support `START/SET/COMMIT/ROLLBACK TRANSACTION` (#106) - thanks
@SamuelMarks!
- - Parse column constraints in any order (#93)
- - Parse `DECIMAL` and `DEC` aliases for `NUMERIC` type (#92)
- - Support `DROP [TABLE|VIEW]` (#75)
- - Support arbitrary `WITH` options for `CREATE [TABLE|VIEW]` (#74)
- - Support constraints in `CREATE TABLE` (#65)
-- Add basic MSSQL dialect (#61) and some MSSQL-specific features:
- - `CROSS`/`OUTER APPLY` (#120)
- - MSSQL identifier and alias parsing rules (#66)
- - `WITH` hints (#59)
-
-### Fixed
-- Report an error for `SELECT * FROM a OUTER JOIN b` instead of parsing
`OUTER` as an alias (#118)
-- Fix the precedence of `NOT LIKE` (#82) and unary `NOT` (#107)
-- Do not panic when `NOT` is not followed by an expected keyword (#71)
-successfully instead of returning a parse error - thanks @ivanceras! (#67) -
and similar fixes for queries with no `FROM` (#116)
-- Fix issues with `ALTER TABLE ADD CONSTRAINT` parsing (#65)
-- Serialize the "not equals" operator as `<>` instead of `!=` (#64)
-- Remove dependencies on `uuid` (#59) and `chrono` (#61)
-- Make `SELECT` query with `LIMIT` clause but no `WHERE` parse - Fix incorrect
behavior of `ASTNode::SQLQualifiedWildcard::to_string()` (returned `foo*`
instead of `foo.*`) - thanks @thomas-jeepe! (#52)
-
-## [0.3.1] - 2019-04-20
-### Added
-- Extended `SQLStatement::SQLCreateTable` to support Hive's EXTERNAL TABLES
(`CREATE EXTERNAL TABLE .. STORED AS .. LOCATION '..'`) - thanks @zhzy0077!
(#46)
-- Parse `SELECT DISTINCT` to `SQLSelect::distinct` (#49)
-
-## [0.3.0] - 2019-04-03
-### Changed
-This release includes major changes to the AST structs to add a number of
features, as described in #37 and #43. In particular:
-- `ASTNode` variants that represent statements were extracted from `ASTNode`
into a separate `SQLStatement` enum;
- - `Parser::parse_sql` now returns a `Vec` of parsed statements.
- - `ASTNode` now represents an expression (renamed to `Expr` in 0.4.0)
-- The query representation (formerly `ASTNode::SQLSelect`) became more
complicated to support:
- - `WITH` and `UNION`/`EXCEPT`/`INTERSECT` (via `SQLQuery`, `Cte`, and
`SQLSetExpr`),
- - aliases and qualified wildcards in `SELECT` (via `SQLSelectItem`),
- - and aliases in `FROM`/`JOIN` (via `TableFactor`).
-- A new `SQLObjectName` struct is used instead of `String` or
`ASTNode::SQLCompoundIdentifier` - for objects like tables, custom types, etc.
-- Added support for "delimited identifiers" and made keywords context-specific
(thus accepting them as valid identifiers in most contexts) - **this caused a
regression in parsing `SELECT .. FROM .. LIMIT ..` (#67), fixed in 0.4.0**
-
-### Added
-Other than the changes listed above, some less intrusive additions include:
-- Support `CREATE [MATERIALIZED] VIEW` statement
-- Support `IN`, `BETWEEN`, unary +/- in epressions
-- Support `CHAR` data type and `NUMERIC` not followed by `(p,s)`.
-- Support national string literals (`N'...'`)
-
-## [0.2.4] - 2019-03-08
-Same as 0.2.2.
-
-## [0.2.3] - 2019-03-08 [YANKED]
-
-## [0.2.2] - 2019-03-08
-### Changed
-- Removed `Value::String`, `Value::DoubleQuotedString`, and `Token::String`,
making
- - `'...'` parse as a string literal (`Value::SingleQuotedString`), and
- - `"..."` fail to parse until version 0.3.0 (#36)
-
-## [0.2.1] - 2019-01-13
-We don't have a changelog for the changes made in 2018, but thanks to
@crw5996, @cswinter, @fredrikroos, @ivanceras, @nickolay, @virattara for their
contributions in the early stages of the project!
+technically be breaking and thus will result in a `0.(N+1)` version.
-## [0.1.0] - 2018-09-03
-Initial release
+- Unreleased: Check https://github.com/sqlparser-rs/sqlparser-rs/commits/main
for undocumented changes.
+- `0.51.0` and earlier: [changelog/0.51.0-pre.md](changelog/0.51.0-pre.md)
\ No newline at end of file
diff --git a/CHANGELOG.md b/changelog/0.51.0-pre.md
similarity index 98%
copy from CHANGELOG.md
copy to changelog/0.51.0-pre.md
index 07142602..18c7aefb 100644
--- a/CHANGELOG.md
+++ b/changelog/0.51.0-pre.md
@@ -17,18 +17,6 @@
under the License.
-->
-# Changelog
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a
Changelog](https://keepachangelog.com/en/1.0.0/), and this project aims to
adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-Given that the parser produces a typed AST, any changes to the AST will
-technically be breaking and thus will result in a `0.(N+1)` version. We
document
-changes that break via addition as "Added".
-
-## [Unreleased]
-Check https://github.com/sqlparser-rs/sqlparser-rs/commits/main for
undocumented changes.
-
## [0.51.0] 2024-09-11
As always, huge props to @iffyio @jmhain and @lovasoa for their help reviewing
and merging PRs 🙏.
@@ -62,7 +50,7 @@ DataFusion project:
https://github.com/sqlparser-rs/sqlparser-rs/issues/1294
## [0.50.0] 2024-08-15
Again, huge props to @iffyio @jmhain and @lovasoa for their help reviewing and
merging PRs 🙏.
-Without them this project would not be possible.
+Without them this project would not be possible.
Reminder: are in the process of moving sqlparser to governed as part of the
Apache
DataFusion project: https://github.com/sqlparser-rs/sqlparser-rs/issues/1294
@@ -182,7 +170,7 @@ Huge shout out to @iffyio @jmhain and @lovasoa for their
help reviewing and merg
* Support lambda functions in Databricks (#1257) - Thanks @jmhain
* Add const generic peek_tokens method to parser (#1255) - Thanks @jmhain
-
+
## [0.46.0] 2024-05-03
### Changed
@@ -1151,7 +1139,7 @@ This release brings us closer to SQL-92 support, mainly
thanks to the improvemen
- Report an error for `SELECT * FROM a OUTER JOIN b` instead of parsing
`OUTER` as an alias (#118)
- Fix the precedence of `NOT LIKE` (#82) and unary `NOT` (#107)
- Do not panic when `NOT` is not followed by an expected keyword (#71)
-successfully instead of returning a parse error - thanks @ivanceras! (#67) -
and similar fixes for queries with no `FROM` (#116)
+ successfully instead of returning a parse error - thanks @ivanceras! (#67) -
and similar fixes for queries with no `FROM` (#116)
- Fix issues with `ALTER TABLE ADD CONSTRAINT` parsing (#65)
- Serialize the "not equals" operator as `<>` instead of `!=` (#64)
- Remove dependencies on `uuid` (#59) and `chrono` (#61)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]