Commit 41b6fce
JSQLParser 5.0 (#1778)
* 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>1 parent 3314edf commit 41b6fce
File tree
204 files changed
+9912
-8836
lines changed- .github/workflows
- src
- main
- java/net/sf/jsqlparser
- expression
- operators/relational
- parser
- feature
- schema
- statement
- alter
- create
- table
- view
- delete
- execute
- insert
- merge
- replace
- select
- show
- update
- upsert
- util
- deparser
- validation
- validator
- jjtree/net/sf/jsqlparser/parser
- resources/rr
- site/sphinx
- _static
- test
- java/net/sf/jsqlparser
- expression
- mysql
- operators/relational
- parser
- feature
- statement
- builder
- create
- insert
- replace
- select
- update
- upsert
- values
- test
- util
- deparser
- validation/validator
- resources/net/sf/jsqlparser/statement/select/oracle-tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
204 files changed
+9912
-8836
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| |||
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
| 32 | + | |
| 33 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
30 | 29 | | |
31 | 30 | | |
32 | 31 | | |
33 | | - | |
34 | | - | |
35 | | - | |
| 32 | + | |
36 | 33 | | |
37 | | - | |
38 | | - | |
| 34 | + | |
39 | 35 | | |
40 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
41 | 41 | | |
42 | | - | |
43 | | - | |
44 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
45 | 50 | | |
46 | 51 | | |
47 | 52 | | |
| |||
0 commit comments