github JSQLParser/JSqlParser jsqlparser-5.4

3 hours ago

What's Changed

Changes and new Features

  • feat: support distinctrow keyword by @EmilyOng in #2238
  • Exasol: IMPORT/EXPORT by @ssteinhauser in #2256
  • Add pluginRepositories to pom.xml by @davyboyhayes in #2284
  • Fix[2283] - Fix broken ParserKeywordsUtilsTest by @davyboyhayes in #2286
  • Fix[2288] - Support parenthesed expressions within Between by @davyboyhayes in #2289
  • Fix[2290] - Fix overeager lambda function parsing by @davyboyhayes in #2293
  • support opengauss "on duplicate key update nothing" grammar by @zhangconan in #2303
  • feat(parser): allow COLLATE in ORDER BY clauses (issue #2245) by @ldaIas in #2277
  • Fix[2306] - Adds support for Trino UDF by @davyboyhayes in #2307
  • Fix[2312] - Fixes issue with array in function declaration by @davyboyhayes in #2313
  • Added new features to support the complete delete using syntax of pg database, such as subqueries, etc. by @zhangconan in #2316
  • [feat] Support for LOCK-Statements by @ANeumann82 in #2321
  • [feat] Support for FOR READ ONLY/FOR FETCH ONLY by @ANeumann82 in #2325
  • [feat/refactor] AllColumns and AllTableColumns-Support for JSON_OBJECT by @ANeumann82 in #2323
  • Update README.md by @hayssams in #2331
  • feat: add PostgreSQL Row Level Security (RLS) support by @eyalge-gong in #2345
  • [fix] Enable qualified table name for DROP INDEX command by @tonhuisman in #2344
  • [fix] Add 'K_DATA' to KeywordOrIdentifier to allow usages of 'data' as an identifier by @willneedham93 in #2340
  • Support PostgreSQL-specific [CREATE SEQUENCE name START n ...] by @mjog in #2348
  • refactor: deprecate Join.getRightItem() and remove duplicate call by @zhezzz in #2370
  • Add support for JOIN FETCH by @dengliming in #2375
  • Add support for ClickHouse MATERIALIZED column in CREATE TABLE by @dengliming in #2377
  • Add support for ClickHouse PREWHERE clause by @dengliming in #2378
  • [feat] Support for the legacy Postgres named parameter by @bigdream96 in #2374
  • Add support for insert as row_alias by @dengliming in #2383
  • Fix ALTER TABLE with a USING INDEX clause by @dengliming in #2384
  • Add support clickhouse GLOBAL ANY/ALL JOIN syntax variants by @dengliming in #2385
  • Fix oracle outer join case with nvl/coalesce by @dengliming in #2386
  • Add support for multiple Trino JSON functions by @davyboyhayes in #2382
  • Fix alter table index descending by @dengliming in #2387
  • Add support MySQL SPATIAL KEY by @dengliming in #2388
  • Fix broken maven central svg url by @dengliming in #2389
  • Add support SELECT SAMPLE 0.1/OFFSET and CREATE TABLE SAMPLE BY by @dengliming in #2390
  • Add support MySQL named UNIQUE index in ALTER TABLE by @dengliming in #2391
  • fix: support SQL Server ORDER BY ... FOR XML PATH parsing in subqueries by @dengliming in #2392
  • fix: support ClickHouse parametric aggregate calls by @dengliming in #2393
  • feat: add support for Oracle INSERT ALL/FIRST with WHEN branches by @dengliming in #2394
  • fix(clickhouse): support SELECT ... SETTINGS by @dengliming in #2395
  • feat: support EXPLAIN for DML and simplify ExplainStatement by @dengliming in #2396
  • feat: support PostgreSQL 18 RETURNING OLD/NEW by @dengliming in #2398
  • fix(parser): resolve grammar LOOKAHEAD conflicts by @dengliming in #2399
  • Add support CREATE SEQUENCE AS data type by @dengliming in #2400
  • Add support parse SEARCH BREADTH/DEPTH FIRST in recursive CTEs by @dengliming in #2402
  • fix: restore GENERATED ALWAYS AS IDENTITY parsing by @dengliming in #2397
  • Fix nested PostgreSQL composite field access after cast by @dengliming in #2404
  • Add support MySQL functional index key parts in ALTER/CREATE INDEX by @dengliming in #2405
  • fix(parser): support KEY-prefixed expressions like KEY chain.entity by @dengliming in #2409
  • Fix dollar-quoted CREATE FUNCTION statement splitting by @dengliming in #2410
  • fix(parser): parse mysql fulltext AGAINST concat expression by @dengliming in #2413
  • test: add regression for ALTER TABLE MODIFY COLUMN CHARACTER SET by @dengliming in #2415
  • Add support MySQL SELECT INTO OUTFILE/DUMPFILE by @dengliming in #2418
  • fix(parser): pass modifier to ExceptOp/MinusOp constructors (#2419) by @queelius in #2420
  • [feat] Support for JSON_TABLE by @ANeumann82 in #2328
  • fix: split CCJSqlParserTokenManager static initializers to avoid 64KB… by @hayssams in #2425
  • Enhance FOR UPDATE support by @rrobetti in #2426
  • [Fix] #2443 - NPE In TableNamesFinder with AnalyticExpression by @davyboyhayes in #2444
  • use Locale.ROOT for case-insensitive keyword normalisation by @dxbjavid in #2437
  • Add support PostgreSQL ROWS FROM table functions by @dengliming in #2416
  • fix: add 'K_TYPE' to KeywordOrIdentifier to allow 'type' as a column name by @minleejae in #2448
  • fix: support nested parametric data types as CAST target by @fudianchn in #2451
  • fix: accept VISIBLE/INVISIBLE index and column attributes in CREATE TABLE and CREATE INDEX by @aparajon in #2449
  • fix: allow arbitrary column aliases in LATERAL VIEW by @fudianchn in #2452
  • fix: stop 0x hex literal from swallowing trailing whitespace (#2435) by @fudianchn in #2450
  • feat: support MERGE ... WHEN NOT MATCHED BY TARGET / BY SOURCE (#2421) by @fudianchn in #2453
  • fix: support ClickHouse tuple positional access by @jianjindream in #2454
  • feat: add support for the XMLTABLE table function by @fudianchn in #2458
  • fix: allow UNIQUE INDEX in CREATE TABLE by @fudianchn in #2457
  • fix(parser): keep parenthesized multi-param lambda as first function arg by @ivanclarksoft in #2455
  • fix: support PostgreSQL GROUPS window frames by @jianjindream in #2460
  • fix: model interval qualifier as a structured property by @fudianchn in #2456
  • fix: support SQL Server CREATE INDEX INCLUDE columns by @jianjindream in #2462
  • fix: support PostgreSQL composite row expansion (function()).* by @fudianchn in #2463
  • fix: allow scalar subquery as LIMIT row count (#2359) by @fudianchn in #2464
  • fix: support ClickHouse C-style ternary operator (? :) (#2436) by @fudianchn in #2466
  • fix: support ClickHouse ORDER BY WITH FILL and INTERPOLATE (#2467) by @fudianchn in #2469
  • fix: allow GROUPS as identifier by making it a non-reserved keyword (#2473) by @fudianchn in #2474
  • feat: support SQL Server OPTION query hints (#161) by @fudianchn in #2472
  • feat: support CREATE DATABASE (#2070) by @fudianchn in #2471
  • fix: do not treat a named parameter ':' as the ternary else separator (#2475) by @fudianchn in #2476
  • fix: treat a positional parameter '?' as a valid end of the ternary then-branch by @fudianchn in #2477
  • fix: reject illegal MERGE WHEN NOT MATCHED clause pairings (#2480) by @fudianchn in #2481
  • fix: complete TablesNamesFinder traversal for piped queries, DML side clauses and analytic functions (#2478) by @fudianchn in #2479
  • feat(parser): add support for ClickHouse [LEFT] ARRAY JOIN syntax by @watashi-00 in #2482
  • fix: keep all clauses when deparsing SELECT without FROM (#2483) by @fudianchn in #2484
  • Separate JSON operators with spaces so #> deparses correctly by @dngr2 in #2487
  • feat: complete SQL Server OPTION query hint support by @fudianchn in #2486
  • feat: parse BigQuery JSON string literals as implicit casts by @hayssams in #2488
  • fix: support Oracle inline constraint states in CREATE TABLE by @dengliming in #2491
  • avoid quadratic backtracking when parsing bracketed server names by @dxbjavid in #2489
  • feat(parser): support MySQL PROCEDURE ANALYSE clause by @dengliming in #2492
  • fix: support character set introduced string literals by @dengliming in #2493
  • fix(parser): support IF EXISTS in ALTER TABLE MODIFY COLUMN by @dengliming in #2494
  • feat(parser): support DuckDB MAP literals and PIVOT queries by @dengliming in #2496
  • avoid quadratic backtracking in the oracle hint comment pattern by @dxbjavid in #2495
  • fix(parser): support Oracle USING INDEX TABLESPACE in ALTER TABLE ADD CONSTRAINT by @dengliming in #2498
  • fix(parser): support CHARACTER SET in CAST CHAR types by @dengliming in #2497
  • fix(parser): support leading CONTENT/DOCUMENT keyword in XMLPARSE by @dengliming in #2501
  • fix(parser): support MySQL index options and prefix-length key parts in index DDL by @minleejae in #2505
  • fix(parser): support PostgreSQL # binary operator (bitwise XOR / geometric intersection) by @fudianchn in #2507
  • fix(parser): support CAST to an array type for MySQL multi-valued indexes by @minleejae in #2506
  • fix(parser): parse qualified columns in GROUP BY by @jianjindream in #2504
  • feat(parser): support MySQL # line comments behind allowHashLineComments by @fudianchn in #2508
  • feat(parser): turn on the dialect's lexer feature preset in withDialect by @fudianchn in #2511
  • feat(parser): support double quoted string literals behind allowDoubleQuotedStrings by @fudianchn in #2513
  • feat(parser): concatenate adjacent string literals behind adjacentStringLiterals by @fudianchn in #2514
  • feat(parser): add BIGQUERY, DATABRICKS and SNOWFLAKE dialect presets by @fudianchn in #2515
  • fix: collect tables from all SELECT and DML trailing clauses in TablesNamesFinder by @fudianchn in #2517
  • fix: prevent bare partition columns from inheriting the previous item's value by @fudianchn in #2518
  • fix: memoize long-chain predicate walks behind a size threshold by @fudianchn in #2520
  • Add structured MySQL CREATE TABLE partition parsing by @minleejae in #2521
  • Support PostgreSQL CREATE INDEX header variants by @minleejae in #2527
  • Support MySQL CHECK constraint enforcement by @minleejae in #2528
  • fix(parser): allow VERSION in ALTER column clauses by @minleejae in #2530
  • fix(parser): model ALTER COLUMN nullability actions by @minleejae in #2529
  • feat(parser): add column data type fragment parser by @minleejae in #2531
  • fix(parser): model PostgreSQL declarative partitions by @minleejae in #2535
  • fix(parser): model PostgreSQL CREATE INDEX clauses by @minleejae in #2536
  • test: fail the build when TablesNamesFinder misses a visitor dispatch method by @fudianchn in #2538
  • feat(parser): model ColDataType precision and scale as structured properties by @minleejae in #2539
  • fix(parser): distinguish MySQL constraint and index names by @minleejae in #2534
  • fix(parser): preserve unique index comments in ALTER TABLE by @minleejae in #2533
  • fix(parser): model MySQL column type modifiers by @minleejae in #2537
  • Model MySQL ALTER TABLE partition operations by @minleejae in #2540
  • Support structured MySQL table definitions by @minleejae in #2541
  • Model MySQL ANALYZE TABLE statements by @minleejae in #2542
  • Support MySQL ALTER TABLE rename variants by @minleejae in #2543
  • Model MySQL CREATE SCHEMA options by @minleejae in #2544
  • Model MySQL DROP object lists by @minleejae in #2545
  • Model MySQL CREATE USER statements by @minleejae in #2546
  • Model MySQL CREATE EVENT and ALTER EVENT by @minleejae in #2547
  • Model MySQL CREATE TRIGGER statements by @minleejae in #2548
  • feat(parser): enhance PostgreSQL CREATE POLICY support by @minleejae in #2549
  • feat(parser): parse navigation chains after array subscripts by @fudianchn in #2550
  • fix(parser): parse INSERT ON CONFLICT after a join's trailing ON by @fudianchn in #2551
  • feat(parser): model PostgreSQL schema DDL clauses by @minleejae in #2552
  • fix(parser): parse stacked NOT prefixes as nested NotExpression (#1170) by @fudianchn in #2556
  • build: pin file.encoding so the Maven build works on Windows by @knutwannheden in #2565
  • feat(parser): model PostgreSQL type domain and extension DDL by @minleejae in #2553
  • Support PostgreSQL parenthesized EXPLAIN options by @minleejae in #2558
  • Support Redshift materialized view BACKUP clauses by @minleejae in #2557
  • Support SQL Server typed XML schema collections by @minleejae in #2559
  • Support Oracle XMLSERIALIZE CONTENT and DOCUMENT forms by @minleejae in #2560
  • Support SQL Server ALTER TABLE ADD DEFAULT constraints by @minleejae in #2561
  • fix(parser): parse Oracle outer join operator (+) on BETWEEN operands (#672) by @fudianchn in #2564
  • Support structured PostgreSQL publication and subscription DDL by @minleejae in #2554
  • Support structured PostgreSQL role, privilege and trigger DDL by @minleejae in #2555
  • fix(parser): parse COMMENT ON ... IS NULL as comment removal (#2562) by @sundongkim-dev in #2563
  • Fix DISTINCT traversal and share optional select-item visits by @minleejae in #2577
  • Analyse analytic and conversion functions with complete window traversal by @minleejae in #2579
  • Validate data-modifying CTEs through statement validators by @minleejae in #2578
  • Fix parseStatements failure propagation and executor cleanup by @minleejae in #2568
  • Support SQL Server table variables through shared table references by @minleejae in #2581
  • Preserve EXEC bind arguments and support OUTPUT parameters by @minleejae in #2580
  • Support PostgreSQL conflict index elements, OVERRIDING USER and MERGE RETURNING by @minleejae in #2569
  • Complete MySQL index options and share CREATE INDEX rendering by @minleejae in #2567
  • Support ksqlDB window grace periods and EMIT FINAL by @minleejae in #2571
  • Support PostgreSQL tagged dollar strings and preserve literal bodies by @minleejae in #2572
  • Support Informix trailing constraint names and share constraint rendering by @minleejae in #2570
  • Support SQL Server clustering on primary key and unique constraints by @minleejae in #2582
  • Support recursive CTE CYCLE clauses and share recursive clause rendering by @minleejae in #2566
  • Support MySQL SELECT INTO user variables and share INTO rendering by @minleejae in #2583
  • Support dialect-specific CREATE INDEX definitions by @minleejae in #2586
  • Support Oracle anonymous blocks and implicit procedure calls by @minleejae in #2592
  • Align empty input handling for statement parsing by @minleejae in #2594
  • Support Doris distribution hints and share JOIN rendering by @minleejae in #2584
  • Resolve shadowed contextual keyword and data-type token warnings by @minleejae in #2597
  • Classify ODBC timestamp interval arguments as time units by @minleejae in #2596
  • Support opt-in legacy MySQL GROUP BY ordering by @minleejae in #2595
  • Support CockroachDB ALTER PRIMARY KEY with structured hash options by @minleejae in #2585
  • Structure SQL Server routine operations and table return types by @minleejae in #2593
  • fix(parser): parse Oracle outer join operator (+) after LIKE / SIMILAR TO operands (#2598) by @fudianchn in #2600
  • Support Teradata UPDATE FROM before SET with shared clause rendering by @minleejae in #2587
  • Split PostgreSQL hash operators from adjacent identifiers by @minleejae in #2588
  • Accept SQL Server CREATE TABLE trailing commas with shared element parsing by @minleejae in #2603
  • Support PostgreSQL DO wrappers with preserved routine body literals by @minleejae in #2589
  • Support SQL Server XML methods on subquery results by @minleejae in #2590
  • fix(parser): preserve Oracle PRIOR position on all condition expressions (#2601) by @fudianchn in #2602
  • Support SQL Server INSERT BULK declarations by @minleejae in #2591
  • Support SQL Server boolean SET options with shared statement rendering by @minleejae in #2604
  • Support SQL Server SET IDENTITY_INSERT with a structured table target by @minleejae in #2605
  • fix: keep CREATE TABLE option tokens in sync with typed options by @minleejae in #2606
  • fix: preserve structured column options when editing specifications by @minleejae in #2608
  • fix: share expression-aware table constraint rendering by @minleejae in #2609
  • feat: preserve ALTER COLUMN default expressions in the AST by @minleejae in #2611
  • fix: traverse and deparse structured table partitions by @minleejae in #2610
  • refactor: share PostgreSQL routine argument grammar by @minleejae in #2613
  • fix: recognise set operation quantifiers written in any case by @knutwannheden in #2614
  • fix: preserve ordered table elements through legacy list edits by @minleejae in #2607
  • feat: reuse table constraint grammar for PostgreSQL ALTER ADD by @minleejae in #2612
  • fix: span a binary condition's node from its left operand by @knutwannheden in #2615
  • feat: preserve column default expressions in table definitions by @minleejae in #2616
  • Support SQL large-object names through shared column type parsing by @minleejae in #2617
  • Visit pipe expressions through shared deparser paths by @minleejae in #2618
  • Support structured XMLFOREST arguments with aliases by @minleejae in #2619
  • Preserve ASOF joins through shared join rendering by @minleejae in #2621
  • Structure FOR PORTION intervals in UPDATE and DELETE by @minleejae in #2622
  • Validate every UPDATE assignment through shared UpdateSet traversal by @minleejae in #2623
  • Render DML RETURNING expressions through shared visitor handling by @minleejae in #2624
  • Reuse common JOIN traversal when discovering UPDATE tables by @minleejae in #2625
  • Share parser execution and preserve cancellation signals by @minleejae in #2626
  • Protect shared dialect presets from external mutation by @minleejae in #2627
  • Keep ALTER key accessors connected to structured index state by @minleejae in #2628
  • Fix benchmark configuration and isolated parser class loading by @minleejae in #2629
  • Render DML source clauses through shared visitor paths by @minleejae in #2630
  • Clarify PostgreSQL DO support and verify the reported block by @minleejae in #2633

New Contributors

Full Changelog: jsqlparser-5.3...jsqlparser-5.4

Don't miss a new JSqlParser release

NewReleases is sending notifications on new releases.