Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Fixes #1684: Support CREATE MATERIALIZED VIEW with AUTO REFRESH Support parsing create view statements in Redshift with AUTO REFRESH option. * Reduce cyclomatic complexity in CreateView.toString Extract adding the force option into a dedicated method resulting in the cyclomatic complexity reduction of the CreateView.toString method. * Enhanced Keywords Add Keywords and document, which keywords are allowed for what purpose * Fix incorrect tests * Define Reserved Keywords explicitly Derive All Keywords from Grammar directly Generate production for Object Names (semi-) automatically Add parametrized Keyword Tests * Fix test resources * Adjust Gradle to JUnit 5 Parallel Test execution Gradle Caching Explicitly request for latest JavaCC 7.0.10 * Do not mark SpeedTest for concurrent execution * Remove unused imports * Adjust Gradle to JUnit 5 Parallel Test execution Gradle Caching Explicitly request for latest JavaCC 7.0.10 * Do not mark SpeedTest for concurrent execution * Remove unused imports * Sphinx Documentation Update the MANTICORE Sphinx Theme, but ignore it in GIT Add the content to the Sphinx sites Add a Gradle function to derive Stable and Snapshot version from GIT Tags Add a Gradle GIT change task Add a Gradle sphinx task Add a special Test case for illustrating the use of JSQLParser * doc: request for `Conventional Commit` messages * feat: make important Classes Serializable Implement Serializable for persisting via ObjectOutputStream * chore: Make Serializable * doc: Better integration of the RR diagrams - apply neutral Sphinx theme - insert the RR diagrams into the sphinx sources - better documentation on Gradle dependencies - link GitHub repository * Merge * feat: Oracle Alternative Quoting - add support for Oracle Alternative Quoting e.g. `q'(...)'` - fixes #1718 - add a Logo and FavIcon to the Website - document recent changes on Quoting/Escaping - add an example on building SQL from Java - rework the README.md, promote the Website - add Spotless Formatter, using Google Java Style (with Tab=4 Spaces) * style: Appease PMD/Codacy * doc: fix the issue template - fix the issue template - fix the -SNAPSHOT version number * Update issue templates * Update issue templates * feat: Support more Statement Separators - `GO` - Slash `/` - Two empty lines * feat: FETCH uses EXPRESSION - `FETCH` uses `EXPRESSION` instead of SimpleJDBCParameter only - Visit/Accept `FETCH` `EXPRESSION` instead of `append` to String - Visit/Accept `OFFSET` `EXPRESSION` instead of `append` to String - Gradle: remove obsolete/incompatible `jvmArgs` from Test() * style: apply Spotless * test: commit missing test * feat: Lateral View Implement Lateral View according to https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-lateral-view.html#syntax Add proper tests Fixes #1777 Fixes #239 Fixes #1723 * feat: Oracle `HAVING` before `GROUP BY` Basic support for Oracle's `HAVING` before `GROUP BY` option. It will be parsed without any special consideration for the order. Special Oracle Test groupby07.sql gets parsed, but fails when the deparser reorders the clauses. Fixes #1774 * feat: Multi-Part Names for Variables and Parameters Fixes #1771 Fixes #1768 * feat: ClickHouse `Select...` ``FINAL` modifier Fixes #1774 BREAKING-CHANGE: introduces reserved keyword `FINAL` * feat: Test if a JOIN is an INNER JOIN according to the SQL:2016 An `INNER JOIN` is a qualified `JOIN` with the `INNER` qualifier or without any `LEFT` or `RIGHT` qualifier. Fixes #1775 * feat: Switch off contradicting `JOIN` qualifiers, when setting a qualifier * feat: implement SQL:2016 Convert() and Trim() - Fixes #868 - Fixes #1767 - Fixes Special Oracle Test `function03.sql` * feat: ClickHouse `LIMIT ... BY ...` clause - LimitDeparser accepts ExpressionVisitor - `SELECT` can have optional `LIMIT ... BY ...` clause - Fixes #1436 * test: add specific tests for closed issues * test: add specific tests for closed issues * refactor: remove `SelectExpressionItem` in favor of `SelectItem` BREAKING-CHANGE: `SelectExpressionItem` removed * doc: Update examples * build: Add missing import * doc: Update the README.md * fix: assign Enum case insensitive Fixes #1779 * fix: assign Enum case insensitive Remove redundant `DateTime` enum Fixes #1779 * Revert "fix: assign Enum case insensitive" This reverts commit 86d0ace. * feat: Consolidate the `ExpressionList`, removing many redundant List alike Classes and Productions - `ExpressionList` extends a `List<Expression>` directly and implements `Expression` - `ExpressionList` has no Brackets - introduce `ParenthesedExpressionList` which extends `ExpressionList` and has Brackets - refactor `MultiExpressionList` to extend `List<ExpressionList>` - replace any occurrence of `List<Expression>` with `ExpressionList` and remove lots of redundant Productions - `RowConstructor` extends `ExpressionList` - remove redundant `ValueExpressionList` (it was just an `ExpressionList` - get rid of any `useBrackets` flags - consolidate the `Cast` Functions - use `ExpressionListDeparser` as much as possible BREAKING-CHANGE: All `List<Expression>` and `List<Column>` related methods have changed. No `useBrackets` flags, instead use `ParenthesedExpressionList` when brackets are needed. * fix: Remove tests for `()`, since `ParenthesedExpressionList` will catch those too * refactor: UpdateSets for `Update` and `InsertConflictTarget` - remove redundant code - add license headers - register `function06.sql` success * build: Increase TimeOut for the GitHub CI * style: Appease Codacy * style: Checkstyle * refactor: Remove `ItemsList`, `MultiExpressionList`, `Replace` Since we have proper `ExpressionList` implementing `Expression` we can narrow down the API: - remove `ItemsList`, `ItemsListVisitor`, `ItemsListValidator` in favor of `ExpressionList` - remove `MultiExpressionList` in favor of `ExpressionList` - refactor `NamedExpressionList` so it extends `ExpressionList` and uses `ExpressionListDeparser` - simplify `InExpression` and `AnyComparisionExpression` BREAKING-CHANGE: many Classes and Methods removed * style: Appease Codacy * style: Rework all the ENUMs - assign Value only when really needed - implement `from()` method for getting the case-insensitive Enum * doc: Better Sphinx Tabs Addresses issue #1784 item 2 * doc: RR chart colors cater for Dark Mode Addresses issue #1784 item 3 * refactor: remove SimpleFunction Remove the production `SimpleFunction` Clean-up `InternalFunction` * build: improve Gradle Build - fix Version/Snapshot - add XML Doclet (for generating API Website via XSLT later) - fix the publishing task and add GitHub package * refactor: `Insert` uses `ExpressionList` and `UpdateSet` * test: Disable API Sanitation for the moment * style: Appease Checkstyle * style: Appease PMD * fix: find the correct position when field belongs to an internal class * style: replace all List<Expression> with ExpressionList<> and enforce policy via Acceptance Test - refactor `Merge`, use `ExpressionList`, `UpdateSet` and Visitor Pattern - refactor `Upsert`, use `ExpressionList`, `UpdateSet` and Visitor Pattern - refactor `Set` Statement - refactor `Limit`, `Pivot`, `Unpivot` ** Breaking Changes ** Getters/Setters of `Merge`, `Upsert`, `Set` have changed * refactor: generify `SelectItem` and remove `FunctionItem` and `ExpressionListItem` - generify `SelectItem<T extends Expression>` - replace `FunctionItem` with `SelectItem<Function>` - replace `ExpressionListItem` with `SelectItem<ExpressionList>` - appease PMD/Codacy ** Breaking Changes ** Getters/Setters of `Pivot`, `UnPivot`, `PivotXML` have changed * fix: Java Version 8 * feat: JdbcNamedParameter allows "&" (instead of ":") - fixes #1785 * feat: access Elements of Array Columns - Example `update utilisateur set listes[0] = 1` - fixes #1083 * feat: `MEMBER OF` condition as shown at https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html#operator_member-of - fixes #1631 * style: appease PMD/Codacy * style: appease PMD/Codacy * test: add unit test for issue #1778 * feat: Write API documentation to the WebSite via XMLDoclet * Update sphinx.yml * build: Sphinx build fixes * build: Sphinx build fixes * build: Sphinx build fixes * build: improve the GIT Snapshot detection * fix: issue #1791 - Allow `START` keyword as table `CreateParameter` * fix: issue #1789 - allow `CREATE TABLE ...` column parameter with Postgres`nextval('public.actor_actor_id_seq'::regclass)` * fix: issue #1789 - allow `CREATE TABLE ...` column parameter with Postgres`nextval('public.actor_actor_id_seq'::regclass)` * refactor: simplify production `CreateParameter()` * refactor: SHOW statement, supporting any RDBMS specific implementation - returns any RDBMS specific implementation as `UnsupportedStatement` - fixes #1702 * refactor: RETURNING clause - supports Oracle's `RETURN ... INTO ...` - fixes #1780 - fixes #686 - Special Oracle tests `insert11.sql` and `insert12.sql` * refactor: CREATE and ALTER productions - avoid LOOKAHEADs - simplify the SimpleStatement() production - use UnsupportedStatements() for any RDBMS specific syntax - fixes #1515 - fixes #1453 * fix: Complex Parsing Approach - optionally provide a global Executor, instead spawning one for each parse - run into Complex Parsing only, when Complex Parsing was allowed - provide a Logger - fixes #1792 * style: Quieten the logger * style: Cosmetic improvements * feat: chaining JSON Expressions - supports chains like '{"obj":{"field": "value"}}'::JSON -> 'obj'::TEXT ->> 'field'::TEXT - fixes #1792 * style: remove unused imports * refact: Statements extends List<Statement> * build: try to work around the Maven/JDK8 issue on GitHub * feat: parse CREATE TRIGGER as UnsupportedStatement - fixes #1090 * feat: functions blocks, parenthesed JSON Expressions - fixes #1792, the very complex example - fixes #1477 * feat: functions blocks, parenthesed JSON Expressions - fixes #1792, the very complex example - fixes #1477 - cosmetics * feat: Quoted Identifiers can contain double-quotes (PostgreSQL) - `SELECT "test""column""name"` - fixes #1335 * build: improve Upload task * doc: Website improvements - Show Release vs. SNAPSHOT - FURO theme - fix inline tab appearance --------- Co-authored-by: zaza <tzarna@gmail.com>
- Loading branch information