You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datafusion.apache.org by al...@apache.org on 2024/11/06 21:34:02 UTC
(datafusion-sqlparser-rs) tag v0.52.0-rc2 created (now 6b491c65)
This is an automated email from the ASF dual-hosted git repository.
alamb pushed a change to tag v0.52.0-rc2
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
at 6b491c65 (commit)
This tag includes the following new commits:
new f3a62b64 Move CHANGELOG content
new 79401e03 remove future file
new fad1f2ca Add Apache License to more files
new 6b491c65 Update version, add scripts and instructions for Apache Releases
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org
(datafusion-sqlparser-rs) 04/04: Update version, add scripts and instructions for Apache Releases
Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to tag v0.52.0-rc2
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
commit 6b491c659ab8a350ee333f489251c7ce446af729
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Mon Oct 21 15:10:40 2024 -0400
Update version, add scripts and instructions for Apache Releases
Tweak release script
---
.github/workflows/rust.yml | 35 ------
.gitignore | 1 +
CHANGELOG.md | 1 +
Cargo.toml | 14 +--
changelog/0.52.0.md | 100 ++++++++++++++++++
dev/release/README.md | 181 ++++++++++++++++++++++++++++++++
dev/release/check-rat-report.py | 59 +++++++++++
dev/release/create-tarball.sh | 135 ++++++++++++++++++++++++
dev/release/generate-changelog.py | 164 +++++++++++++++++++++++++++++
dev/release/rat_exclude_files.txt | 6 ++
dev/release/release-tarball.sh | 74 +++++++++++++
dev/release/run-rat.sh | 43 ++++++++
dev/release/verify-release-candidate.sh | 152 +++++++++++++++++++++++++++
docs/releasing.md | 81 --------------
14 files changed, 920 insertions(+), 126 deletions(-)
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 253d8ab2..2502abe9 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -85,38 +85,3 @@ jobs:
use-tool-cache: true
- name: Test
run: cargo test --all-features
-
- test-coverage:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Setup Rust Toolchain
- uses: ./.github/actions/setup-builder
- with:
- rust-version: stable
- - name: Install Tarpaulin
- uses: actions-rs/install@v0.1
- with:
- crate: cargo-tarpaulin
- version: 0.14.2
- use-tool-cache: true
- - name: Coverage
- run: cargo tarpaulin -o Lcov --output-dir ./coverage
- - name: Coveralls
- uses: coverallsapp/github-action@master
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
-
- publish-crate:
- if: startsWith(github.ref, 'refs/tags/v0')
- runs-on: ubuntu-latest
- needs: [test]
- steps:
- - uses: actions/checkout@v4
- - name: Setup Rust Toolchain
- uses: ./.github/actions/setup-builder
- - name: Publish
- shell: bash
- run: |
- cargo publish --token ${{ secrets.CRATES_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 4c6821d4..f705d0b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
/target/
/sqlparser_bench/target/
/derive/target/
+dev/dist
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here http://doc.crates.io/guide.html#cargotoml-vs-cargolock
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e047515a..7354588b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,4 +25,5 @@ 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.
- Unreleased: Check https://github.com/sqlparser-rs/sqlparser-rs/commits/main for undocumented changes.
+- `0.52.0`: [changelog/0.52.0.md](changelog/0.52.0.md)
- `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/Cargo.toml b/Cargo.toml
index 99546465..18b246e0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -18,12 +18,12 @@
[package]
name = "sqlparser"
description = "Extensible SQL Lexer and Parser with support for ANSI SQL:2011"
-version = "0.51.0"
-authors = ["Andy Grove <an...@gmail.com>"]
-homepage = "https://github.com/sqlparser-rs/sqlparser-rs"
+version = "0.52.0"
+authors = ["Apache DataFusion <de...@datafusion.apache.org>"]
+homepage = "https://github.com/apache/datafusion-sqlparser-rs"
documentation = "https://docs.rs/sqlparser/"
keywords = ["ansi", "sql", "lexer", "parser"]
-repository = "https://github.com/sqlparser-rs/sqlparser-rs"
+repository = "https://github.com/apache/datafusion-sqlparser-rs"
license = "Apache-2.0"
include = [
"src/**/*.rs",
@@ -58,12 +58,6 @@ simple_logger = "5.0"
matches = "0.1"
pretty_assertions = "1"
-[package.metadata.release]
-# Instruct `cargo release` to not run `cargo publish` locally:
-# https://github.com/sunng87/cargo-release/blob/master/docs/reference.md#config-fields
-# See docs/releasing.md for details.
-publish = false
-
[package.metadata.docs.rs]
# Document these features on docs.rs
features = ["serde", "visitor"]
diff --git a/changelog/0.52.0.md b/changelog/0.52.0.md
new file mode 100644
index 00000000..d27fbdb1
--- /dev/null
+++ b/changelog/0.52.0.md
@@ -0,0 +1,100 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# sqlparser-rs 0.52.0 Changelog
+
+This release consists of 43 commits from 20 contributors. See credits at the end of this changelog for more information.
+
+**Implemented enhancements:**
+
+- feat: support explain options [#1426](https://github.com/apache/datafusion-sqlparser-rs/pull/1426) (kysshsy)
+- feat: adding Display implementation to DELETE and INSERT [#1427](https://github.com/apache/datafusion-sqlparser-rs/pull/1427) (seve-martinez)
+
+**Fixed bugs:**
+
+- fix: `maybe_parse` preventing parser from erroring on recursion limit [#1464](https://github.com/apache/datafusion-sqlparser-rs/pull/1464) (tomershaniii)
+
+**Other:**
+
+- Fix parsing of negative values [#1419](https://github.com/apache/datafusion-sqlparser-rs/pull/1419) (agscpp)
+- Allow to use ON CLUSTER cluster_name in TRUNCATE syntax [#1428](https://github.com/apache/datafusion-sqlparser-rs/pull/1428) (git-hulk)
+- chore: remove redundant punctuation [#1434](https://github.com/apache/datafusion-sqlparser-rs/pull/1434) (Fischer0522)
+- MS SQL Server: add support for IDENTITY column option [#1432](https://github.com/apache/datafusion-sqlparser-rs/pull/1432) (7phs)
+- Update to ASF header / add when missing [#1437](https://github.com/apache/datafusion-sqlparser-rs/pull/1437) (alamb)
+- Some small optimizations [#1424](https://github.com/apache/datafusion-sqlparser-rs/pull/1424) (exrok)
+- Fix `codestyle` CI check [#1438](https://github.com/apache/datafusion-sqlparser-rs/pull/1438) (alamb)
+- Implements CREATE POLICY syntax for PostgreSQL [#1440](https://github.com/apache/datafusion-sqlparser-rs/pull/1440) (git-hulk)
+- make `parse_expr_with_alias` public [#1444](https://github.com/apache/datafusion-sqlparser-rs/pull/1444) (Eason0729)
+- Implements DROP POLICY syntax for PostgreSQL [#1445](https://github.com/apache/datafusion-sqlparser-rs/pull/1445) (git-hulk)
+- Support `DROP DATABASE` [#1443](https://github.com/apache/datafusion-sqlparser-rs/pull/1443) (linhr)
+- Implements ALTER POLICY syntax for PostgreSQL [#1446](https://github.com/apache/datafusion-sqlparser-rs/pull/1446) (git-hulk)
+- Add a note discouraging new use of `dialect_of` macro [#1448](https://github.com/apache/datafusion-sqlparser-rs/pull/1448) (alamb)
+- Expand handling of `LIMIT 1, 2` handling to include sqlite [#1447](https://github.com/apache/datafusion-sqlparser-rs/pull/1447) (joshuawarner32)
+- Fix always uses CommentDef::WithoutEq while parsing the inline comment [#1453](https://github.com/apache/datafusion-sqlparser-rs/pull/1453) (git-hulk)
+- Add support for the LIKE ANY and ILIKE ANY pattern-matching condition [#1456](https://github.com/apache/datafusion-sqlparser-rs/pull/1456) (yoavcloud)
+- added ability to parse extension to parse_comment inside postgres dialect [#1451](https://github.com/apache/datafusion-sqlparser-rs/pull/1451) (MaxwellKnight)
+- Snowflake: support of views column comment [#1441](https://github.com/apache/datafusion-sqlparser-rs/pull/1441) (7phs)
+- Add SQLite "ON CONFLICT" column option in CREATE TABLE statements [#1442](https://github.com/apache/datafusion-sqlparser-rs/pull/1442) (nucccc)
+- Add support for ASC and DESC in CREATE TABLE column constraints for SQLite. [#1462](https://github.com/apache/datafusion-sqlparser-rs/pull/1462) (caldwell)
+- Add support of `EXPLAIN QUERY PLAN` syntax for SQLite dialect [#1458](https://github.com/apache/datafusion-sqlparser-rs/pull/1458) (git-hulk)
+- Add "DROP TYPE" support. [#1461](https://github.com/apache/datafusion-sqlparser-rs/pull/1461) (caldwell)
+- chore: Add asf.yaml [#1463](https://github.com/apache/datafusion-sqlparser-rs/pull/1463) (Xuanwo)
+- Add support for quantified comparison predicates (ALL/ANY/SOME) [#1459](https://github.com/apache/datafusion-sqlparser-rs/pull/1459) (yoavcloud)
+- MySQL dialect: Add support for hash comments [#1466](https://github.com/apache/datafusion-sqlparser-rs/pull/1466) (hansott)
+- Fix #1469 (SET ROLE regression) [#1474](https://github.com/apache/datafusion-sqlparser-rs/pull/1474) (lovasoa)
+- Add support for parsing MsSql alias with equals [#1467](https://github.com/apache/datafusion-sqlparser-rs/pull/1467) (yoavcloud)
+- Snowflake: support for extended column options in `CREATE TABLE` [#1454](https://github.com/apache/datafusion-sqlparser-rs/pull/1454) (7phs)
+- MsSQL TRY_CONVERT [#1477](https://github.com/apache/datafusion-sqlparser-rs/pull/1477) (yoavcloud)
+- Add PostgreSQL specfic "CREATE TYPE t AS ENUM (...)" support. [#1460](https://github.com/apache/datafusion-sqlparser-rs/pull/1460) (caldwell)
+- Fix build [#1483](https://github.com/apache/datafusion-sqlparser-rs/pull/1483) (yoavcloud)
+- Fix complex blocks warning when running clippy [#1488](https://github.com/apache/datafusion-sqlparser-rs/pull/1488) (git-hulk)
+- Add support for SHOW DATABASES/SCHEMAS/TABLES/VIEWS in Hive [#1487](https://github.com/apache/datafusion-sqlparser-rs/pull/1487) (yoavcloud)
+- Fix typo in `Dialect::supports_eq_alias_assigment` [#1478](https://github.com/apache/datafusion-sqlparser-rs/pull/1478) (alamb)
+- Add support for PostgreSQL `LISTEN/NOTIFY` syntax [#1485](https://github.com/apache/datafusion-sqlparser-rs/pull/1485) (wugeer)
+- Add support for TOP before ALL/DISTINCT [#1495](https://github.com/apache/datafusion-sqlparser-rs/pull/1495) (yoavcloud)
+
+## Credits
+
+Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor.
+
+```
+ 8 Andrew Lamb
+ 7 Yoav Cohen
+ 7 hulk
+ 3 Aleksei Piianin
+ 3 David Caldwell
+ 1 Agaev Guseyn
+ 1 Eason
+ 1 Fischer
+ 1 Hans Ott
+ 1 Heran Lin
+ 1 Joshua Warner
+ 1 Maxwell Knight
+ 1 Ophir LOJKINE
+ 1 Seve Martinez
+ 1 Siyuan Huang
+ 1 Thomas Dagenais
+ 1 Xuanwo
+ 1 nucccc
+ 1 tomershaniii
+ 1 wugeer
+```
+
+Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release.
+
diff --git a/dev/release/README.md b/dev/release/README.md
new file mode 100644
index 00000000..588e083b
--- /dev/null
+++ b/dev/release/README.md
@@ -0,0 +1,181 @@
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+
+## Process Overview
+
+As part of the Apache governance model, official releases consist of signed
+source tarballs approved by the DataFusion PMC.
+
+We then use the code in the approved artifacts to release to crates.io.
+
+### Change Log
+
+We maintain a `CHANGELOG.md` so our users know what has been changed between releases.
+
+You will need a GitHub Personal Access Token for the following steps. Follow
+[these instructions](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
+to generate one if you do not already have one.
+
+The changelog is generated using a Python script which needs `PyGitHub`, installed using pip:
+
+```shell
+pip3 install PyGitHub
+```
+
+To generate the changelog, set the `GITHUB_TOKEN` environment variable to a valid token and then run the script
+providing two commit ids or tags followed by the version number of the release being created. The following
+example generates a change log of all changes between the first commit and the current HEAD revision.
+
+```shell
+export GITHUB_TOKEN=<your-token-here>
+python ./dev/release/generate-changelog.py v0.51.0 HEAD 0.52.0 > changelog/0.52.0.md
+```
+
+This script creates a changelog from GitHub PRs based on the labels associated with them as well as looking for
+titles starting with `feat:`, `fix:`, or `docs:`.
+
+Add an entry to CHANGELOG.md for the new version
+
+## Prepare release commits and PR
+
+### Update Version
+
+Checkout the main commit to be released
+
+```shell
+git fetch apache
+git checkout apache/main
+```
+
+Manually update the version in the root `Cargo.toml` to the release version (e.g. `0.52.0`).
+
+Lastly commit the version change:
+
+```shell
+git commit -a -m 'Update version'
+```
+
+## Prepare release candidate artifacts
+
+After the PR gets merged, you are ready to create release artifacts from the
+merged commit.
+
+(Note you need to be a committer to run these scripts as they upload to the apache svn distribution servers)
+
+### Pick a Release Candidate (RC) number
+
+Pick numbers in sequential order, with `0` for `rc0`, `1` for `rc1`, etc.
+
+### Create git tag for the release:
+
+While the official release artifacts are signed tarballs and zip files, we also
+tag the commit it was created for convenience and code archaeology.
+
+Using a string such as `v0.52.0` as the `<version>`, create and push the tag by running these commands:
+
+For example to tag version `0.52.0`
+
+```shell
+git fetch apache
+git tag v0.52.0-rc1 apache/main
+# push tag to Github remote
+git push apache v0.52.0-rc1
+```
+
+### Create, sign, and upload artifacts
+
+Run `create-tarball.sh` with the `<version>` tag and `<rc>` and you found in previous steps:
+
+```shell
+GITHUB_TOKEN=<TOKEN> ./dev/release/create-tarball.sh 0.52.0 1
+```
+
+The `create-tarball.sh` script
+
+1. creates and uploads all release candidate artifacts to the [datafusion
+ dev](https://dist.apache.org/repos/dist/dev/datafusion) location on the
+ apache distribution svn server
+
+2. provide you an email template to
+ send to dev@datafusion.apache.org for release voting.
+
+### Vote on Release Candidate artifacts
+
+Send the email output from the script to dev@datafusion.apache.org.
+
+For the release to become "official" it needs at least three PMC members to vote +1 on it.
+
+### Verifying Release Candidates
+
+The `dev/release/verify-release-candidate.sh` is a script in this repository that can assist in the verification process. Run it like:
+
+```shell
+./dev/release/verify-release-candidate.sh 0.52.0 1
+```
+
+#### If the release is not approved
+
+If the release is not approved, fix whatever the problem is, merge changelog
+changes into main if there is any and try again with the next RC number.
+
+## Finalize the release
+
+NOTE: steps in this section can only be done by PMC members.
+
+### After the release is approved
+
+Move artifacts to the release location in SVN, using the `release-tarball.sh` script:
+
+```shell
+./dev/release/release-tarball.sh 0.52.0 1
+```
+
+Congratulations! The release is now official!
+
+### Publish on Crates.io
+
+Only approved releases of the tarball should be published to
+crates.io, in order to conform to Apache Software Foundation
+governance standards.
+
+A DataFusion committer can publish this crate after an official project release has
+been made to crates.io using the following instructions.
+
+Follow [these
+instructions](https://doc.rust-lang.org/cargo/reference/publishing.html) to
+create an account and login to crates.io before asking to be added as an owner
+to the sqlparser DataFusion crates.
+
+Download and unpack the official release tarball
+
+Verify that the Cargo.toml in the tarball contains the correct version
+(e.g. `version = "0.52.0"`) and then publish the crates by running the following commands
+
+```shell
+(cd sqlparser && cargo publish)
+```
+
+If necessary, also publish the `sqlparser_derive` crate:
+
+crates.io homepage: https://crates.io/crates/sqlparser_derive
+
+```shell
+(cd derive && cargo publish
+```
diff --git a/dev/release/check-rat-report.py b/dev/release/check-rat-report.py
new file mode 100644
index 00000000..e30d72bd
--- /dev/null
+++ b/dev/release/check-rat-report.py
@@ -0,0 +1,59 @@
+#!/usr/bin/python
+##############################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+##############################################################################
+import fnmatch
+import re
+import sys
+import xml.etree.ElementTree as ET
+
+if len(sys.argv) != 3:
+ sys.stderr.write("Usage: %s exclude_globs.lst rat_report.xml\n" %
+ sys.argv[0])
+ sys.exit(1)
+
+exclude_globs_filename = sys.argv[1]
+xml_filename = sys.argv[2]
+
+globs = [line.strip() for line in open(exclude_globs_filename, "r")]
+
+tree = ET.parse(xml_filename)
+root = tree.getroot()
+resources = root.findall('resource')
+
+all_ok = True
+for r in resources:
+ approvals = r.findall('license-approval')
+ if not approvals or approvals[0].attrib['name'] == 'true':
+ continue
+ clean_name = re.sub('^[^/]+/', '', r.attrib['name'])
+ excluded = False
+ for g in globs:
+ if fnmatch.fnmatch(clean_name, g):
+ excluded = True
+ break
+ if not excluded:
+ sys.stdout.write("NOT APPROVED: %s (%s): %s\n" % (
+ clean_name, r.attrib['name'], approvals[0].attrib['name']))
+ all_ok = False
+
+if not all_ok:
+ sys.exit(1)
+
+print('OK')
+sys.exit(0)
diff --git a/dev/release/create-tarball.sh b/dev/release/create-tarball.sh
new file mode 100755
index 00000000..4cb17cd3
--- /dev/null
+++ b/dev/release/create-tarball.sh
@@ -0,0 +1,135 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Adapted from https://github.com/apache/datafusion/tree/master/dev/release/create-tarball.sh
+
+# This script creates a signed tarball in
+# dev/dist/apache-datafusion-sqlparser-rs-<version>-rc.tar.gz and uploads it to
+# the "dev" area of the dist.apache.datafusion repository and prepares an
+# email for sending to the dev@datafusion.apache.org list for a formal
+# vote.
+#
+# See release/README.md for full release instructions
+#
+# Requirements:
+#
+# 1. gpg setup for signing and have uploaded your public
+# signature to https://pgp.mit.edu/
+#
+# 2. Logged into the apache svn server with the appropriate
+# credentials
+#
+# 3. Install the requests python package
+#
+#
+# Based in part on 02-source.sh from apache/arrow
+#
+
+set -e
+
+SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+SOURCE_TOP_DIR="$(cd "${SOURCE_DIR}/../../" && pwd)"
+
+if [ "$#" -ne 2 ]; then
+ echo "Usage: $0 <version> <rc>"
+ echo "ex. $0 0.52.0 2"
+ exit
+fi
+
+if [[ -z "${GITHUB_TOKEN}" ]]; then
+ echo "Please set personal github token through GITHUB_TOKEN environment variable"
+ exit
+fi
+
+version=$1
+rc=$2
+tag="v${version}-rc${rc}"
+
+echo "Attempting to create ${tarball} from tag ${tag}"
+release_hash=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 ${tag})
+
+release=apache-datafusion-sqlparser-rs-${version}
+distdir=${SOURCE_TOP_DIR}/dev/dist/${release}-rc${rc}
+tarname=${release}.tar.gz
+tarball=${distdir}/${tarname}
+url="https://dist.apache.org/repos/dist/dev/datafusion/${release}-rc${rc}"
+
+if [ -z "$release_hash" ]; then
+ echo "Cannot continue: unknown git tag: ${tag}"
+fi
+
+echo "Draft email for dev@datafusion.apache.org mailing list"
+echo ""
+echo "---------------------------------------------------------"
+cat <<MAIL
+To: dev@datafusion.apache.org
+Subject: [VOTE] Release Apache DataFusion sqlparser-rs ${version} RC${rc}
+Hi,
+
+I would like to propose a release of Apache DataFusion sqlparser-rs version ${version}.
+
+This release candidate is based on commit: ${release_hash} [1]
+The proposed release tarball and signatures are hosted at [2].
+The changelog is located at [3].
+
+Please download, verify checksums and signatures, run the unit tests, and vote
+on the release. The vote will be open for at least 72 hours.
+
+Only votes from PMC members are binding, but all members of the community are
+encouraged to test the release and vote with "(non-binding)".
+
+The standard verification procedure is documented at https://github.com/apache/datafusion-sqlparser-rs/blob/main/dev/release/README.md#verifying-release-candidates.
+
+[ ] +1 Release this as Apache DataFusion sqlparser-rs ${version}
+[ ] +0
+[ ] -1 Do not release this as Apache DataFusion sqlparser-rs ${version} because...
+
+Here is my vote:
+
++1
+
+[1]: https://github.com/apache/datafusion-sqlparser-rs/tree/${release_hash}
+[2]: ${url}
+[3]: https://github.com/apache/datafusion-sqlparser-rs/blob/${release_hash}/CHANGELOG.md
+MAIL
+echo "---------------------------------------------------------"
+
+
+# create <tarball> containing the files in git at $release_hash
+# the files in the tarball are prefixed with {version} (e.g. 4.0.1)
+mkdir -p ${distdir}
+(cd "${SOURCE_TOP_DIR}" && git archive ${release_hash} --prefix ${release}/ | gzip > ${tarball})
+
+echo "Running rat license checker on ${tarball}"
+${SOURCE_DIR}/run-rat.sh ${tarball}
+
+echo "Signing tarball and creating checksums"
+gpg --armor --output ${tarball}.asc --detach-sig ${tarball}
+# create signing with relative path of tarball
+# so that they can be verified with a command such as
+# shasum --check apache-datafusion-sqlparser-rs-0.52.0-rc1.tar.gz.sha512
+(cd ${distdir} && shasum -a 256 ${tarname}) > ${tarball}.sha256
+(cd ${distdir} && shasum -a 512 ${tarname}) > ${tarball}.sha512
+
+
+echo "Uploading to sqlparser-rs dist/dev to ${url}"
+svn co --depth=empty https://dist.apache.org/repos/dist/dev/datafusion ${SOURCE_TOP_DIR}/dev/dist
+svn add ${distdir}
+svn ci -m "Apache DataFusion ${version} ${rc}" ${distdir}
diff --git a/dev/release/generate-changelog.py b/dev/release/generate-changelog.py
new file mode 100755
index 00000000..52fd2e54
--- /dev/null
+++ b/dev/release/generate-changelog.py
@@ -0,0 +1,164 @@
+#!/usr/bin/env python
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import argparse
+import sys
+from github import Github
+import os
+import re
+import subprocess
+
+def print_pulls(repo_name, title, pulls):
+ if len(pulls) > 0:
+ print("**{}:**".format(title))
+ print()
+ for (pull, commit) in pulls:
+ url = "https://github.com/{}/pull/{}".format(repo_name, pull.number)
+ print("- {} [#{}]({}) ({})".format(pull.title, pull.number, url, commit.author.login))
+ print()
+
+
+def generate_changelog(repo, repo_name, tag1, tag2, version):
+
+ # get a list of commits between two tags
+ print(f"Fetching list of commits between {tag1} and {tag2}", file=sys.stderr)
+ comparison = repo.compare(tag1, tag2)
+
+ # get the pull requests for these commits
+ print("Fetching pull requests", file=sys.stderr)
+ unique_pulls = []
+ all_pulls = []
+ for commit in comparison.commits:
+ pulls = commit.get_pulls()
+ for pull in pulls:
+ # there can be multiple commits per PR if squash merge is not being used and
+ # in this case we should get all the author names, but for now just pick one
+ if pull.number not in unique_pulls:
+ unique_pulls.append(pull.number)
+ all_pulls.append((pull, commit))
+
+ # we split the pulls into categories
+ breaking = []
+ bugs = []
+ docs = []
+ enhancements = []
+ performance = []
+ other = []
+
+ # categorize the pull requests based on GitHub labels
+ print("Categorizing pull requests", file=sys.stderr)
+ for (pull, commit) in all_pulls:
+
+ # see if PR title uses Conventional Commits
+ cc_type = ''
+ cc_scope = ''
+ cc_breaking = ''
+ parts = re.findall(r'^([a-z]+)(\([a-z]+\))?(!)?:', pull.title)
+ if len(parts) == 1:
+ parts_tuple = parts[0]
+ cc_type = parts_tuple[0] # fix, feat, docs, chore
+ cc_scope = parts_tuple[1] # component within project
+ cc_breaking = parts_tuple[2] == '!'
+
+ labels = [label.name for label in pull.labels]
+ if 'api change' in labels or cc_breaking:
+ breaking.append((pull, commit))
+ elif 'bug' in labels or cc_type == 'fix':
+ bugs.append((pull, commit))
+ elif 'performance' in labels or cc_type == 'perf':
+ performance.append((pull, commit))
+ elif 'enhancement' in labels or cc_type == 'feat':
+ enhancements.append((pull, commit))
+ elif 'documentation' in labels or cc_type == 'docs' or cc_type == 'doc':
+ docs.append((pull, commit))
+ else:
+ other.append((pull, commit))
+
+ # produce the changelog content
+ print("Generating changelog content", file=sys.stderr)
+
+ # ASF header
+ print("""<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->\n""")
+
+ print(f"# sqlparser-rs {version} Changelog\n")
+
+ # get the number of commits
+ commit_count = subprocess.check_output(f"git log --pretty=oneline {tag1}..{tag2} | wc -l", shell=True, text=True).strip()
+
+ # get number of contributors
+ contributor_count = subprocess.check_output(f"git shortlog -sn {tag1}..{tag2} | wc -l", shell=True, text=True).strip()
+
+ print(f"This release consists of {commit_count} commits from {contributor_count} contributors. "
+ f"See credits at the end of this changelog for more information.\n")
+
+ print_pulls(repo_name, "Breaking changes", breaking)
+ print_pulls(repo_name, "Performance related", performance)
+ print_pulls(repo_name, "Implemented enhancements", enhancements)
+ print_pulls(repo_name, "Fixed bugs", bugs)
+ print_pulls(repo_name, "Documentation updates", docs)
+ print_pulls(repo_name, "Other", other)
+
+ # show code contributions
+ credits = subprocess.check_output(f"git shortlog -sn {tag1}..{tag2}", shell=True, text=True).rstrip()
+
+ print("## Credits\n")
+ print("Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) "
+ "per contributor.\n")
+ print("```")
+ print(credits)
+ print("```\n")
+
+ print("Thank you also to everyone who contributed in other ways such as filing issues, reviewing "
+ "PRs, and providing feedback on this release.\n")
+
+def cli(args=None):
+ """Process command line arguments."""
+ if not args:
+ args = sys.argv[1:]
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("tag1", help="The previous commit or tag (e.g. 0.1.0)")
+ parser.add_argument("tag2", help="The current commit or tag (e.g. HEAD)")
+ parser.add_argument("version", help="The version number to include in the changelog")
+ args = parser.parse_args()
+
+ token = os.getenv("GITHUB_TOKEN")
+ project = "apache/datafusion-sqlparser-rs"
+
+ g = Github(token)
+ repo = g.get_repo(project)
+ generate_changelog(repo, project, args.tag1, args.tag2, args.version)
+
+if __name__ == "__main__":
+ cli()
\ No newline at end of file
diff --git a/dev/release/rat_exclude_files.txt b/dev/release/rat_exclude_files.txt
new file mode 100644
index 00000000..a567eda9
--- /dev/null
+++ b/dev/release/rat_exclude_files.txt
@@ -0,0 +1,6 @@
+# Files to exclude from the Apache Rat (license) check
+.gitignore
+.tool-versions
+dev/release/rat_exclude_files.txt
+fuzz/.gitignore
+
diff --git a/dev/release/release-tarball.sh b/dev/release/release-tarball.sh
new file mode 100755
index 00000000..e59b2776
--- /dev/null
+++ b/dev/release/release-tarball.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Adapted from https://github.com/apache/arrow-rs/tree/master/dev/release/release-tarball.sh
+
+# This script copies a tarball from the "dev" area of the
+# dist.apache.datafusion repository to the "release" area
+#
+# This script should only be run after the release has been approved
+# by the Apache DataFusion PMC committee.
+#
+# See release/README.md for full release instructions
+#
+# Based in part on post-01-upload.sh from apache/arrow
+
+
+set -e
+set -u
+
+if [ "$#" -ne 2 ]; then
+ echo "Usage: $0 <version> <rc-num>"
+ echo "ex. $0 0.52.0 2"
+ exit
+fi
+
+version=$1
+rc=$2
+
+tmp_dir=tmp-apache-datafusion-dist
+
+echo "Recreate temporary directory: ${tmp_dir}"
+rm -rf ${tmp_dir}
+mkdir -p ${tmp_dir}
+
+echo "Clone dev dist repository"
+svn \
+ co \
+ https://dist.apache.org/repos/dist/dev/datafusion/apache-datafusion-sqlparser-rs-${version}-rc${rc} \
+ ${tmp_dir}/dev
+
+echo "Clone release dist repository"
+svn co https://dist.apache.org/repos/dist/release/datafusion ${tmp_dir}/release
+
+echo "Copy ${version}-rc${rc} to release working copy"
+release_version=datafusion-sqlparser-rs-${version}
+mkdir -p ${tmp_dir}/release/${release_version}
+cp -r ${tmp_dir}/dev/* ${tmp_dir}/release/${release_version}/
+svn add ${tmp_dir}/release/${release_version}
+
+echo "Commit release"
+svn ci -m "Apache DataFusion sqlparser-rs ${version}" ${tmp_dir}/release
+
+echo "Clean up"
+rm -rf ${tmp_dir}
+
+echo "Success! The release is available here:"
+echo " https://dist.apache.org/repos/dist/release/datafusion/${release_version}"
diff --git a/dev/release/run-rat.sh b/dev/release/run-rat.sh
new file mode 100755
index 00000000..94fa55fb
--- /dev/null
+++ b/dev/release/run-rat.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+RAT_VERSION=0.13
+
+# download apache rat
+if [ ! -f apache-rat-${RAT_VERSION}.jar ]; then
+ curl -s https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${RAT_VERSION}/apache-rat-${RAT_VERSION}.jar > apache-rat-${RAT_VERSION}.jar
+fi
+
+RAT="java -jar apache-rat-${RAT_VERSION}.jar -x "
+
+RELEASE_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
+
+# generate the rat report
+$RAT $1 > rat.txt
+python $RELEASE_DIR/check-rat-report.py $RELEASE_DIR/rat_exclude_files.txt rat.txt > filtered_rat.txt
+cat filtered_rat.txt
+UNAPPROVED=`cat filtered_rat.txt | grep "NOT APPROVED" | wc -l`
+
+if [ "0" -eq "${UNAPPROVED}" ]; then
+ echo "No unapproved licenses"
+else
+ echo "${UNAPPROVED} unapproved licences. Check rat report: rat.txt"
+ exit 1
+fi
diff --git a/dev/release/verify-release-candidate.sh b/dev/release/verify-release-candidate.sh
new file mode 100755
index 00000000..9ff7e17b
--- /dev/null
+++ b/dev/release/verify-release-candidate.sh
@@ -0,0 +1,152 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+case $# in
+ 2) VERSION="$1"
+ RC_NUMBER="$2"
+ ;;
+ *) echo "Usage: $0 X.Y.Z RC_NUMBER"
+ exit 1
+ ;;
+esac
+
+set -e
+set -x
+set -o pipefail
+
+SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
+ARROW_DIR="$(dirname $(dirname ${SOURCE_DIR}))"
+ARROW_DIST_URL='https://dist.apache.org/repos/dist/dev/datafusion'
+
+download_dist_file() {
+ curl \
+ --silent \
+ --show-error \
+ --fail \
+ --location \
+ --remote-name $ARROW_DIST_URL/$1
+}
+
+download_rc_file() {
+ download_dist_file apache-datafusion-sqlparser-rs-${VERSION}-rc${RC_NUMBER}/$1
+}
+
+import_gpg_keys() {
+ download_dist_file KEYS
+ gpg --import KEYS
+}
+
+if type shasum >/dev/null 2>&1; then
+ sha256_verify="shasum -a 256 -c"
+ sha512_verify="shasum -a 512 -c"
+else
+ sha256_verify="sha256sum -c"
+ sha512_verify="sha512sum -c"
+fi
+
+fetch_archive() {
+ local dist_name=$1
+ download_rc_file ${dist_name}.tar.gz
+ download_rc_file ${dist_name}.tar.gz.asc
+ download_rc_file ${dist_name}.tar.gz.sha256
+ download_rc_file ${dist_name}.tar.gz.sha512
+ verify_dir_artifact_signatures
+}
+
+verify_dir_artifact_signatures() {
+ # verify the signature and the checksums of each artifact
+ find . -name '*.asc' | while read sigfile; do
+ artifact=${sigfile/.asc/}
+ gpg --verify $sigfile $artifact || exit 1
+
+ # go into the directory because the checksum files contain only the
+ # basename of the artifact
+ pushd $(dirname $artifact)
+ base_artifact=$(basename $artifact)
+ ${sha256_verify} $base_artifact.sha256 || exit 1
+ ${sha512_verify} $base_artifact.sha512 || exit 1
+ popd
+ done
+}
+
+setup_tempdir() {
+ cleanup() {
+ if [ "${TEST_SUCCESS}" = "yes" ]; then
+ rm -fr "${ARROW_TMPDIR}"
+ else
+ echo "Failed to verify release candidate. See ${ARROW_TMPDIR} for details."
+ fi
+ }
+
+ if [ -z "${ARROW_TMPDIR}" ]; then
+ # clean up automatically if ARROW_TMPDIR is not defined
+ ARROW_TMPDIR=$(mktemp -d -t "$1.XXXXX")
+ trap cleanup EXIT
+ else
+ # don't clean up automatically
+ mkdir -p "${ARROW_TMPDIR}"
+ fi
+}
+
+test_source_distribution() {
+ # install rust toolchain in a similar fashion like test-miniconda
+ export RUSTUP_HOME=$PWD/test-rustup
+ export CARGO_HOME=$PWD/test-rustup
+
+ curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path
+
+ export PATH=$RUSTUP_HOME/bin:$PATH
+ source $RUSTUP_HOME/env
+
+ # build and test rust
+
+ # raises on any formatting errors
+ rustup component add rustfmt --toolchain stable
+ cargo fmt --all -- --check
+
+ cargo build
+ cargo test --all-features
+
+ if ( find -iname 'Cargo.toml' | xargs grep SNAPSHOT ); then
+ echo "Cargo.toml version should not contain SNAPSHOT for releases"
+ exit 1
+ fi
+
+ # Check that publish works
+ cargo publish --dry-run
+}
+
+TEST_SUCCESS=no
+
+setup_tempdir "datafusion-sqlparser-rs-${VERSION}"
+echo "Working in sandbox ${ARROW_TMPDIR}"
+cd ${ARROW_TMPDIR}
+
+dist_name="apache-datafusion-sqlparser-rs-${VERSION}"
+import_gpg_keys
+fetch_archive ${dist_name}
+tar xf ${dist_name}.tar.gz
+pushd ${dist_name}
+ test_source_distribution
+popd
+
+TEST_SUCCESS=yes
+echo 'Release candidate looks good!'
+exit 0
diff --git a/docs/releasing.md b/docs/releasing.md
deleted file mode 100644
index c1b85a20..00000000
--- a/docs/releasing.md
+++ /dev/null
@@ -1,81 +0,0 @@
-<!---
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-# Releasing
-
-## Prerequisites
-Publishing to crates.io has been automated via GitHub Actions, so you will only
-need push access to the [sqlparser-rs GitHub repository](https://github.com/sqlparser-rs/sqlparser-rs)
-in order to publish a release.
-
-We use the [`cargo release`](https://github.com/sunng87/cargo-release)
-subcommand to ensure correct versioning. Install via:
-
-```
-$ cargo install cargo-release
-```
-
-## Process
-
-1. **Before releasing** ensure `CHANGELOG.md` is updated appropriately and that
- you have a clean checkout of the `main` branch of the sqlparser repository:
- ```
- $ git fetch && git status
- On branch main
- Your branch is up to date with 'origin/main'.
-
- nothing to commit, working tree clean
- ```
- * If you have the time, check that the examples in the README are up to date.
-
-2. Using `cargo-release` we can publish a new release like so:
-
- ```
- $ cargo release minor --push-remote origin
- ```
-
- After verifying, you can rerun with `--execute` if all looks good.
- You can add `--no-push` to stop before actually publishing the release.
-
- `cargo release` will then:
-
- * Bump the minor part of the version in `Cargo.toml` (e.g. `0.7.1-alpha.0`
- -> `0.8.0`. You can use `patch` instead of `minor`, as appropriate).
- * Create a new tag (e.g. `v0.8.0`) locally
- * Push the new tag to the specified remote (`origin` in the above
- example), which will trigger a publishing process to crates.io as part of
- the [corresponding GitHub Action](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/.github/workflows/rust.yml).
-
- Note that credentials for authoring in this way are securely stored in
- the (GitHub) repo secrets as `CRATE_TOKEN`.
-
-4. Check that the new version of the crate is available on crates.io:
- https://crates.io/crates/sqlparser
-
-
-## `sqlparser_derive` crate
-
-Currently this crate is manually published via `cargo publish`.
-
-crates.io homepage: https://crates.io/crates/sqlparser_derive
-
-```shell
-cd derive
-cargo publish
-```
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org
(datafusion-sqlparser-rs) 03/04: Add Apache License to more files
Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to tag v0.52.0-rc2
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
commit fad1f2ca62ec2536c2d470e13c013f2007097ab1
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Wed Nov 6 15:58:55 2024 -0500
Add Apache License to more files
---
.github/dependabot.yml | 17 +++++++++++++++++
.github/workflows/rust.yml | 17 +++++++++++++++++
README.md | 19 +++++++++++++++++++
tests/queries/tpch/1.sql | 18 ++++++++++++++++++
tests/queries/tpch/10.sql | 17 +++++++++++++++++
tests/queries/tpch/11.sql | 17 +++++++++++++++++
tests/queries/tpch/12.sql | 17 +++++++++++++++++
tests/queries/tpch/13.sql | 17 +++++++++++++++++
tests/queries/tpch/14.sql | 17 +++++++++++++++++
tests/queries/tpch/15.sql | 17 +++++++++++++++++
tests/queries/tpch/16.sql | 17 +++++++++++++++++
tests/queries/tpch/17.sql | 17 +++++++++++++++++
tests/queries/tpch/18.sql | 17 +++++++++++++++++
tests/queries/tpch/19.sql | 17 +++++++++++++++++
tests/queries/tpch/2.sql | 18 +++++++++++++++++-
tests/queries/tpch/20.sql | 17 +++++++++++++++++
tests/queries/tpch/21.sql | 17 +++++++++++++++++
tests/queries/tpch/22.sql | 17 +++++++++++++++++
tests/queries/tpch/3.sql | 17 +++++++++++++++++
tests/queries/tpch/4.sql | 17 +++++++++++++++++
tests/queries/tpch/5.sql | 17 +++++++++++++++++
tests/queries/tpch/6.sql | 19 ++++++++++++++++++-
tests/queries/tpch/7.sql | 17 +++++++++++++++++
tests/queries/tpch/8.sql | 17 +++++++++++++++++
tests/queries/tpch/9.sql | 17 +++++++++++++++++
25 files changed, 429 insertions(+), 2 deletions(-)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index a73d1dc4..7d2903d2 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,3 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
version: 2
updates:
- package-ecosystem: cargo
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 4aab9cee..253d8ab2 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -1,3 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
name: Rust
on: [push, pull_request]
diff --git a/README.md b/README.md
index 3226b954..934d9d06 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,22 @@
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
# Extensible SQL Lexer and Parser for Rust
[](https://opensource.org/licenses/Apache-2.0)
diff --git a/tests/queries/tpch/1.sql b/tests/queries/tpch/1.sql
index ae44c94d..89232181 100644
--- a/tests/queries/tpch/1.sql
+++ b/tests/queries/tpch/1.sql
@@ -1,3 +1,21 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+
select
l_returnflag,
l_linestatus,
diff --git a/tests/queries/tpch/10.sql b/tests/queries/tpch/10.sql
index a8de1299..06f6256b 100644
--- a/tests/queries/tpch/10.sql
+++ b/tests/queries/tpch/10.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/11.sql b/tests/queries/tpch/11.sql
index f9cf254b..6115eb59 100644
--- a/tests/queries/tpch/11.sql
+++ b/tests/queries/tpch/11.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/12.sql b/tests/queries/tpch/12.sql
index ca9c494e..0ffdb666 100644
--- a/tests/queries/tpch/12.sql
+++ b/tests/queries/tpch/12.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/13.sql b/tests/queries/tpch/13.sql
index 32b0ebeb..64572aba 100644
--- a/tests/queries/tpch/13.sql
+++ b/tests/queries/tpch/13.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/14.sql b/tests/queries/tpch/14.sql
index 74f9643e..abe7f2ea 100644
--- a/tests/queries/tpch/14.sql
+++ b/tests/queries/tpch/14.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/15.sql b/tests/queries/tpch/15.sql
index 8b3b8c1e..16646fb6 100644
--- a/tests/queries/tpch/15.sql
+++ b/tests/queries/tpch/15.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
create view revenue0 (supplier_no, total_revenue) as
diff --git a/tests/queries/tpch/16.sql b/tests/queries/tpch/16.sql
index a0412fcb..e7e48979 100644
--- a/tests/queries/tpch/16.sql
+++ b/tests/queries/tpch/16.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/17.sql b/tests/queries/tpch/17.sql
index d59bc18a..d895fb27 100644
--- a/tests/queries/tpch/17.sql
+++ b/tests/queries/tpch/17.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/18.sql b/tests/queries/tpch/18.sql
index e07956fe..54b8b85d 100644
--- a/tests/queries/tpch/18.sql
+++ b/tests/queries/tpch/18.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/19.sql b/tests/queries/tpch/19.sql
index 908e0829..1aca7432 100644
--- a/tests/queries/tpch/19.sql
+++ b/tests/queries/tpch/19.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/2.sql b/tests/queries/tpch/2.sql
index f04c1d49..9426b91d 100644
--- a/tests/queries/tpch/2.sql
+++ b/tests/queries/tpch/2.sql
@@ -1,5 +1,21 @@
--- using default substitutions
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+-- using default substitutions
select
s_acctbal,
diff --git a/tests/queries/tpch/20.sql b/tests/queries/tpch/20.sql
index 7aaabc2d..6f06dcb7 100644
--- a/tests/queries/tpch/20.sql
+++ b/tests/queries/tpch/20.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/21.sql b/tests/queries/tpch/21.sql
index 5a287f9a..58879495 100644
--- a/tests/queries/tpch/21.sql
+++ b/tests/queries/tpch/21.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/22.sql b/tests/queries/tpch/22.sql
index 1fc8523a..2a7f45e9 100644
--- a/tests/queries/tpch/22.sql
+++ b/tests/queries/tpch/22.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/3.sql b/tests/queries/tpch/3.sql
index 710aac52..df50cf76 100644
--- a/tests/queries/tpch/3.sql
+++ b/tests/queries/tpch/3.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/4.sql b/tests/queries/tpch/4.sql
index e5adb934..e4a84f79 100644
--- a/tests/queries/tpch/4.sql
+++ b/tests/queries/tpch/4.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/5.sql b/tests/queries/tpch/5.sql
index ea376576..9b92b30e 100644
--- a/tests/queries/tpch/5.sql
+++ b/tests/queries/tpch/5.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/6.sql b/tests/queries/tpch/6.sql
index 949b7b16..709fd201 100644
--- a/tests/queries/tpch/6.sql
+++ b/tests/queries/tpch/6.sql
@@ -1,5 +1,22 @@
--- using default substitutions
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
+-- using default substitutions
select
sum(l_extendedprice * l_discount) as revenue
diff --git a/tests/queries/tpch/7.sql b/tests/queries/tpch/7.sql
index 85dd8f9c..1379dbb4 100644
--- a/tests/queries/tpch/7.sql
+++ b/tests/queries/tpch/7.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/8.sql b/tests/queries/tpch/8.sql
index e6e4d30b..22ae8b90 100644
--- a/tests/queries/tpch/8.sql
+++ b/tests/queries/tpch/8.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
diff --git a/tests/queries/tpch/9.sql b/tests/queries/tpch/9.sql
index f9eaf65e..fa957b05 100644
--- a/tests/queries/tpch/9.sql
+++ b/tests/queries/tpch/9.sql
@@ -1,3 +1,20 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License. You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing,
+-- software distributed under the License is distributed on an
+-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-- KIND, either express or implied. See the License for the
+-- specific language governing permissions and limitations
+-- under the License.
+
-- using default substitutions
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org
(datafusion-sqlparser-rs) 01/04: Move CHANGELOG content
Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to tag v0.52.0-rc2
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
commit f3a62b6496470e4739fd2b0b5bb73a19c0cbe238
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Wed Nov 6 16:07:40 2024 -0500
Move CHANGELOG content
---
CHANGELOG.md | 1180 +------------------------------
CHANGELOG.md => changelog/0.51.0-pre.md | 18 +-
changelog/0.52.0.md | 100 +++
3 files changed, 107 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)
diff --git a/changelog/0.52.0.md b/changelog/0.52.0.md
new file mode 100644
index 00000000..d27fbdb1
--- /dev/null
+++ b/changelog/0.52.0.md
@@ -0,0 +1,100 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# sqlparser-rs 0.52.0 Changelog
+
+This release consists of 43 commits from 20 contributors. See credits at the end of this changelog for more information.
+
+**Implemented enhancements:**
+
+- feat: support explain options [#1426](https://github.com/apache/datafusion-sqlparser-rs/pull/1426) (kysshsy)
+- feat: adding Display implementation to DELETE and INSERT [#1427](https://github.com/apache/datafusion-sqlparser-rs/pull/1427) (seve-martinez)
+
+**Fixed bugs:**
+
+- fix: `maybe_parse` preventing parser from erroring on recursion limit [#1464](https://github.com/apache/datafusion-sqlparser-rs/pull/1464) (tomershaniii)
+
+**Other:**
+
+- Fix parsing of negative values [#1419](https://github.com/apache/datafusion-sqlparser-rs/pull/1419) (agscpp)
+- Allow to use ON CLUSTER cluster_name in TRUNCATE syntax [#1428](https://github.com/apache/datafusion-sqlparser-rs/pull/1428) (git-hulk)
+- chore: remove redundant punctuation [#1434](https://github.com/apache/datafusion-sqlparser-rs/pull/1434) (Fischer0522)
+- MS SQL Server: add support for IDENTITY column option [#1432](https://github.com/apache/datafusion-sqlparser-rs/pull/1432) (7phs)
+- Update to ASF header / add when missing [#1437](https://github.com/apache/datafusion-sqlparser-rs/pull/1437) (alamb)
+- Some small optimizations [#1424](https://github.com/apache/datafusion-sqlparser-rs/pull/1424) (exrok)
+- Fix `codestyle` CI check [#1438](https://github.com/apache/datafusion-sqlparser-rs/pull/1438) (alamb)
+- Implements CREATE POLICY syntax for PostgreSQL [#1440](https://github.com/apache/datafusion-sqlparser-rs/pull/1440) (git-hulk)
+- make `parse_expr_with_alias` public [#1444](https://github.com/apache/datafusion-sqlparser-rs/pull/1444) (Eason0729)
+- Implements DROP POLICY syntax for PostgreSQL [#1445](https://github.com/apache/datafusion-sqlparser-rs/pull/1445) (git-hulk)
+- Support `DROP DATABASE` [#1443](https://github.com/apache/datafusion-sqlparser-rs/pull/1443) (linhr)
+- Implements ALTER POLICY syntax for PostgreSQL [#1446](https://github.com/apache/datafusion-sqlparser-rs/pull/1446) (git-hulk)
+- Add a note discouraging new use of `dialect_of` macro [#1448](https://github.com/apache/datafusion-sqlparser-rs/pull/1448) (alamb)
+- Expand handling of `LIMIT 1, 2` handling to include sqlite [#1447](https://github.com/apache/datafusion-sqlparser-rs/pull/1447) (joshuawarner32)
+- Fix always uses CommentDef::WithoutEq while parsing the inline comment [#1453](https://github.com/apache/datafusion-sqlparser-rs/pull/1453) (git-hulk)
+- Add support for the LIKE ANY and ILIKE ANY pattern-matching condition [#1456](https://github.com/apache/datafusion-sqlparser-rs/pull/1456) (yoavcloud)
+- added ability to parse extension to parse_comment inside postgres dialect [#1451](https://github.com/apache/datafusion-sqlparser-rs/pull/1451) (MaxwellKnight)
+- Snowflake: support of views column comment [#1441](https://github.com/apache/datafusion-sqlparser-rs/pull/1441) (7phs)
+- Add SQLite "ON CONFLICT" column option in CREATE TABLE statements [#1442](https://github.com/apache/datafusion-sqlparser-rs/pull/1442) (nucccc)
+- Add support for ASC and DESC in CREATE TABLE column constraints for SQLite. [#1462](https://github.com/apache/datafusion-sqlparser-rs/pull/1462) (caldwell)
+- Add support of `EXPLAIN QUERY PLAN` syntax for SQLite dialect [#1458](https://github.com/apache/datafusion-sqlparser-rs/pull/1458) (git-hulk)
+- Add "DROP TYPE" support. [#1461](https://github.com/apache/datafusion-sqlparser-rs/pull/1461) (caldwell)
+- chore: Add asf.yaml [#1463](https://github.com/apache/datafusion-sqlparser-rs/pull/1463) (Xuanwo)
+- Add support for quantified comparison predicates (ALL/ANY/SOME) [#1459](https://github.com/apache/datafusion-sqlparser-rs/pull/1459) (yoavcloud)
+- MySQL dialect: Add support for hash comments [#1466](https://github.com/apache/datafusion-sqlparser-rs/pull/1466) (hansott)
+- Fix #1469 (SET ROLE regression) [#1474](https://github.com/apache/datafusion-sqlparser-rs/pull/1474) (lovasoa)
+- Add support for parsing MsSql alias with equals [#1467](https://github.com/apache/datafusion-sqlparser-rs/pull/1467) (yoavcloud)
+- Snowflake: support for extended column options in `CREATE TABLE` [#1454](https://github.com/apache/datafusion-sqlparser-rs/pull/1454) (7phs)
+- MsSQL TRY_CONVERT [#1477](https://github.com/apache/datafusion-sqlparser-rs/pull/1477) (yoavcloud)
+- Add PostgreSQL specfic "CREATE TYPE t AS ENUM (...)" support. [#1460](https://github.com/apache/datafusion-sqlparser-rs/pull/1460) (caldwell)
+- Fix build [#1483](https://github.com/apache/datafusion-sqlparser-rs/pull/1483) (yoavcloud)
+- Fix complex blocks warning when running clippy [#1488](https://github.com/apache/datafusion-sqlparser-rs/pull/1488) (git-hulk)
+- Add support for SHOW DATABASES/SCHEMAS/TABLES/VIEWS in Hive [#1487](https://github.com/apache/datafusion-sqlparser-rs/pull/1487) (yoavcloud)
+- Fix typo in `Dialect::supports_eq_alias_assigment` [#1478](https://github.com/apache/datafusion-sqlparser-rs/pull/1478) (alamb)
+- Add support for PostgreSQL `LISTEN/NOTIFY` syntax [#1485](https://github.com/apache/datafusion-sqlparser-rs/pull/1485) (wugeer)
+- Add support for TOP before ALL/DISTINCT [#1495](https://github.com/apache/datafusion-sqlparser-rs/pull/1495) (yoavcloud)
+
+## Credits
+
+Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor.
+
+```
+ 8 Andrew Lamb
+ 7 Yoav Cohen
+ 7 hulk
+ 3 Aleksei Piianin
+ 3 David Caldwell
+ 1 Agaev Guseyn
+ 1 Eason
+ 1 Fischer
+ 1 Hans Ott
+ 1 Heran Lin
+ 1 Joshua Warner
+ 1 Maxwell Knight
+ 1 Ophir LOJKINE
+ 1 Seve Martinez
+ 1 Siyuan Huang
+ 1 Thomas Dagenais
+ 1 Xuanwo
+ 1 nucccc
+ 1 tomershaniii
+ 1 wugeer
+```
+
+Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release.
+
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org
(datafusion-sqlparser-rs) 02/04: remove future file
Posted by al...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to tag v0.52.0-rc2
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git
commit 79401e03a0c0975c32cd87f6a2f3e9a5638aeb42
Author: Andrew Lamb <an...@nerdnetworks.org>
AuthorDate: Wed Nov 6 16:09:39 2024 -0500
remove future file
---
changelog/0.52.0.md | 100 ----------------------------------------------------
1 file changed, 100 deletions(-)
diff --git a/changelog/0.52.0.md b/changelog/0.52.0.md
deleted file mode 100644
index d27fbdb1..00000000
--- a/changelog/0.52.0.md
+++ /dev/null
@@ -1,100 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# sqlparser-rs 0.52.0 Changelog
-
-This release consists of 43 commits from 20 contributors. See credits at the end of this changelog for more information.
-
-**Implemented enhancements:**
-
-- feat: support explain options [#1426](https://github.com/apache/datafusion-sqlparser-rs/pull/1426) (kysshsy)
-- feat: adding Display implementation to DELETE and INSERT [#1427](https://github.com/apache/datafusion-sqlparser-rs/pull/1427) (seve-martinez)
-
-**Fixed bugs:**
-
-- fix: `maybe_parse` preventing parser from erroring on recursion limit [#1464](https://github.com/apache/datafusion-sqlparser-rs/pull/1464) (tomershaniii)
-
-**Other:**
-
-- Fix parsing of negative values [#1419](https://github.com/apache/datafusion-sqlparser-rs/pull/1419) (agscpp)
-- Allow to use ON CLUSTER cluster_name in TRUNCATE syntax [#1428](https://github.com/apache/datafusion-sqlparser-rs/pull/1428) (git-hulk)
-- chore: remove redundant punctuation [#1434](https://github.com/apache/datafusion-sqlparser-rs/pull/1434) (Fischer0522)
-- MS SQL Server: add support for IDENTITY column option [#1432](https://github.com/apache/datafusion-sqlparser-rs/pull/1432) (7phs)
-- Update to ASF header / add when missing [#1437](https://github.com/apache/datafusion-sqlparser-rs/pull/1437) (alamb)
-- Some small optimizations [#1424](https://github.com/apache/datafusion-sqlparser-rs/pull/1424) (exrok)
-- Fix `codestyle` CI check [#1438](https://github.com/apache/datafusion-sqlparser-rs/pull/1438) (alamb)
-- Implements CREATE POLICY syntax for PostgreSQL [#1440](https://github.com/apache/datafusion-sqlparser-rs/pull/1440) (git-hulk)
-- make `parse_expr_with_alias` public [#1444](https://github.com/apache/datafusion-sqlparser-rs/pull/1444) (Eason0729)
-- Implements DROP POLICY syntax for PostgreSQL [#1445](https://github.com/apache/datafusion-sqlparser-rs/pull/1445) (git-hulk)
-- Support `DROP DATABASE` [#1443](https://github.com/apache/datafusion-sqlparser-rs/pull/1443) (linhr)
-- Implements ALTER POLICY syntax for PostgreSQL [#1446](https://github.com/apache/datafusion-sqlparser-rs/pull/1446) (git-hulk)
-- Add a note discouraging new use of `dialect_of` macro [#1448](https://github.com/apache/datafusion-sqlparser-rs/pull/1448) (alamb)
-- Expand handling of `LIMIT 1, 2` handling to include sqlite [#1447](https://github.com/apache/datafusion-sqlparser-rs/pull/1447) (joshuawarner32)
-- Fix always uses CommentDef::WithoutEq while parsing the inline comment [#1453](https://github.com/apache/datafusion-sqlparser-rs/pull/1453) (git-hulk)
-- Add support for the LIKE ANY and ILIKE ANY pattern-matching condition [#1456](https://github.com/apache/datafusion-sqlparser-rs/pull/1456) (yoavcloud)
-- added ability to parse extension to parse_comment inside postgres dialect [#1451](https://github.com/apache/datafusion-sqlparser-rs/pull/1451) (MaxwellKnight)
-- Snowflake: support of views column comment [#1441](https://github.com/apache/datafusion-sqlparser-rs/pull/1441) (7phs)
-- Add SQLite "ON CONFLICT" column option in CREATE TABLE statements [#1442](https://github.com/apache/datafusion-sqlparser-rs/pull/1442) (nucccc)
-- Add support for ASC and DESC in CREATE TABLE column constraints for SQLite. [#1462](https://github.com/apache/datafusion-sqlparser-rs/pull/1462) (caldwell)
-- Add support of `EXPLAIN QUERY PLAN` syntax for SQLite dialect [#1458](https://github.com/apache/datafusion-sqlparser-rs/pull/1458) (git-hulk)
-- Add "DROP TYPE" support. [#1461](https://github.com/apache/datafusion-sqlparser-rs/pull/1461) (caldwell)
-- chore: Add asf.yaml [#1463](https://github.com/apache/datafusion-sqlparser-rs/pull/1463) (Xuanwo)
-- Add support for quantified comparison predicates (ALL/ANY/SOME) [#1459](https://github.com/apache/datafusion-sqlparser-rs/pull/1459) (yoavcloud)
-- MySQL dialect: Add support for hash comments [#1466](https://github.com/apache/datafusion-sqlparser-rs/pull/1466) (hansott)
-- Fix #1469 (SET ROLE regression) [#1474](https://github.com/apache/datafusion-sqlparser-rs/pull/1474) (lovasoa)
-- Add support for parsing MsSql alias with equals [#1467](https://github.com/apache/datafusion-sqlparser-rs/pull/1467) (yoavcloud)
-- Snowflake: support for extended column options in `CREATE TABLE` [#1454](https://github.com/apache/datafusion-sqlparser-rs/pull/1454) (7phs)
-- MsSQL TRY_CONVERT [#1477](https://github.com/apache/datafusion-sqlparser-rs/pull/1477) (yoavcloud)
-- Add PostgreSQL specfic "CREATE TYPE t AS ENUM (...)" support. [#1460](https://github.com/apache/datafusion-sqlparser-rs/pull/1460) (caldwell)
-- Fix build [#1483](https://github.com/apache/datafusion-sqlparser-rs/pull/1483) (yoavcloud)
-- Fix complex blocks warning when running clippy [#1488](https://github.com/apache/datafusion-sqlparser-rs/pull/1488) (git-hulk)
-- Add support for SHOW DATABASES/SCHEMAS/TABLES/VIEWS in Hive [#1487](https://github.com/apache/datafusion-sqlparser-rs/pull/1487) (yoavcloud)
-- Fix typo in `Dialect::supports_eq_alias_assigment` [#1478](https://github.com/apache/datafusion-sqlparser-rs/pull/1478) (alamb)
-- Add support for PostgreSQL `LISTEN/NOTIFY` syntax [#1485](https://github.com/apache/datafusion-sqlparser-rs/pull/1485) (wugeer)
-- Add support for TOP before ALL/DISTINCT [#1495](https://github.com/apache/datafusion-sqlparser-rs/pull/1495) (yoavcloud)
-
-## Credits
-
-Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor.
-
-```
- 8 Andrew Lamb
- 7 Yoav Cohen
- 7 hulk
- 3 Aleksei Piianin
- 3 David Caldwell
- 1 Agaev Guseyn
- 1 Eason
- 1 Fischer
- 1 Hans Ott
- 1 Heran Lin
- 1 Joshua Warner
- 1 Maxwell Knight
- 1 Ophir LOJKINE
- 1 Seve Martinez
- 1 Siyuan Huang
- 1 Thomas Dagenais
- 1 Xuanwo
- 1 nucccc
- 1 tomershaniii
- 1 wugeer
-```
-
-Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release.
-
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datafusion.apache.org
For additional commands, e-mail: commits-help@datafusion.apache.org