JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern
Full Changelog: https://github.com/JSQLParser/JSqlParser/compare/jsqlparser-4.8...jsqlparser-4.9
REFRESH MATERIALIZED VIEW
by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1911
create view
for MySQL and MariaDb by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1913
index type
before ON
by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1918
COMMENT
for ALTER ADD
by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1919
RENAME INDEX
for MySQL, RENAME CONSTRAINT
for PostgreSQL by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1920
TABLE STATEMENT
by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1921
FOR SHARE
by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1922
=
by @jxnu-liguobin in https://github.com/JSQLParser/JSqlParser/pull/1936
Full Changelog: https://github.com/JSQLParser/JSqlParser/compare/jsqlparser-4.7...jsqlparser-4.8
This is an API breaking release! Please see the migration guide: https://jsqlparser.github.io/JSqlParser/migration.html Detailed Change Log: https://jsqlparser.github.io/JSqlParser/changelog.html
'\\''
by @manticore-projects in https://github.com/JSQLParser/JSqlParser/pull/1813
Full Changelog: https://github.com/JSQLParser/JSqlParser/compare/jsqlparser-4.6...jsqlparser-4.7
Full Changelog: https://github.com/JSQLParser/JSqlParser/compare/jsqlparser-4.5...jsqlparser-4.6
... ALTER COLUMN ... DROP DEFAULT
INSERT
supports SetOperations
(e. g. INSERT INTO ... SELECT ... FROM ... UNION SELECT ... FROM ...
), those SetOperations
are used both for SELECT
and VALUES
clauses (API change) in order to simplify the Grammar(WITH ... SELECT ...)
statements within brackets are now supportedNATURAL { INNER | LEFT | RIGHT } JOIN
supportGROUPING SETS
ANALYZE mytable
INSERT INTO ... ON CONFLICT ... DO ...
statementsCCJSqlParserUtil.parse(sqlStr, parser -> parser.withTimeOut(60000));
Extract( field FROM source)
where field
is a String instead of a KeywordDROP column IF EXISTS
... ALTER COLUMN ... DROP DEFAULT
by @manticore-projects in https://github.com/JSQLParser/JSqlParser/pull/1532
SELECT ...
without a FROM
clause, making SELECT 1, 2
and SELECT *
parsable statements (before those failed)UPDATE
sets (using multiple SubQuery
or ValueList
or Single Values, in combination)CASE
expressions with complex expression argumentsJOIN
with multiple trailing ON
Expressions (JOIN ... JOIN ... ON ... ON ...
)CONNECT_BY_ROOT
OperatorIF ... ELSE ...
Statement Control Flows.ALTER TABLE ...
statement (e.g. ALTER TABLE ... MOVE TABLESPACE ...
)ALTER SYSTEM ...
statementFunc( param1 => arg1, ...
JdbcParameter
or JdbcNamedParameter
for MySQL FullTextSearchCast
into Row
ConstructorRENAME ... TO ...
statementPURGE
statementJSON_OBJECT()
, JSON_ARRAY()
, JSON_OBJECTAGG()
, JSON_ARRAYAGG()
CURRENT DATE
in addition to CURRENT_DATE
(without underscore)WITH
CTEsSELECT * FROM (((((( mytable ))))))