v1.63.0
page.frameLocator() and frame.frameLocator() called without a selector search in any frame of the subtree, so you no longer need to locate the iframe first:
// Finds the button in any frame on the page.
page.frameLocator().getByRole(AriaRole.BUTTON).click();
The rest of the locator resolves inside a single frame, just like a regular locator, and an error is thrown when it matches elements in several frames.
New locator.visible() returns a locator that matches only visible elements. It is the recommended replacement for the :visible CSS pseudo-class:
page.locator("button").visible().click();
New ariaSnapshots and screenSnapshots options of tracing.start() capture an aria snapshot and a screenshot of the page on every action:
context.tracing().start(new Tracing.StartOptions()
.setSnapshots(true)
.setAriaSnapshots(true)
.setScreenSnapshots(true));
With aria and screen snapshots recorded, the new Display Aria mode in the trace viewer shows the action screenshot side by side with the aria snapshot, and hovering an aria node highlights it on the screenshot.
The public API is now annotated with JSpecify nullability annotations. The com.microsoft.playwright, com.microsoft.playwright.options and com.microsoft.playwright.assertions packages are @NullMarked, and values that can be absent are marked @Nullable, so null-checking tools such as NullAway, as well as Kotlin code, can catch missing null checks at compile time.
httpCredentialsnow also accepts a list of credentials. The first entry matching the request origin is used, and entries without an origin match any request.- New option
opfsincludes the origin private file system in the storage state, so it can be persisted and restored into later contexts. - New events page.onDialogClosed() and browserContext.onDialogClosed() are emitted when a JavaScript dialog is accepted, dismissed or closed by the user.
mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install --no-remove"keeps the browsers of other Playwright installations instead of removing them.mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="codegen --http-credentials"records against pages behind HTTP authentication.
⚠️ Ubuntu 20.04 is not supported anymore.- 🐧 On Linux arm64, Playwright now downloads the Chrome for Testing build of Chromium, the same build used on all other platforms.
- Chromium 153.0.8010.12
- Mozilla Firefox 155.0
- WebKit 26.6
This version was also tested against the following stable channels:
- Google Chrome 153
- Microsoft Edge 153
Byte Buddy 1.18.14
- Avoid exposure of the agent argument on the command line of the process that is spawned for an external attachment.
- Avoid the resolution of symbolic links when the Gradle plugin deletes a folder recursively.
- Limit the nesting depth that is accepted when parsing a generic type signature to avoid an exhaustion of the stack for a malformed class file.
- Sign all deployed files using sigstore, in addition to the existing GPG signature.
- Validate entry names when the Android plugin retains a file to avoid the propagation of path traversals.
jsqlparser-5.4
- feat: support distinctrow keyword by @EmilyOng in https://github.com/JSQLParser/JSqlParser/pull/2238
- Exasol: IMPORT/EXPORT by @ssteinhauser in https://github.com/JSQLParser/JSqlParser/pull/2256
- Add pluginRepositories to pom.xml by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2284
- Fix[2283] - Fix broken ParserKeywordsUtilsTest by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2286
- Fix[2288] - Support parenthesed expressions within Between by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2289
- Fix[2290] - Fix overeager lambda function parsing by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2293
- support opengauss "on duplicate key update nothing" grammar by @zhangconan in https://github.com/JSQLParser/JSqlParser/pull/2303
- feat(parser): allow COLLATE in ORDER BY clauses (issue #2245) by @ldaIas in https://github.com/JSQLParser/JSqlParser/pull/2277
- Fix[2306] - Adds support for Trino UDF by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2307
- Fix[2312] - Fixes issue with array in function declaration by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2313
- Added new features to support the complete delete using syntax of pg database, such as subqueries, etc. by @zhangconan in https://github.com/JSQLParser/JSqlParser/pull/2316
- [feat] Support for LOCK-Statements by @ANeumann82 in https://github.com/JSQLParser/JSqlParser/pull/2321
- [feat] Support for FOR READ ONLY/FOR FETCH ONLY by @ANeumann82 in https://github.com/JSQLParser/JSqlParser/pull/2325
- [feat/refactor] AllColumns and AllTableColumns-Support for JSON_OBJECT by @ANeumann82 in https://github.com/JSQLParser/JSqlParser/pull/2323
- Update README.md by @hayssams in https://github.com/JSQLParser/JSqlParser/pull/2331
- feat: add PostgreSQL Row Level Security (RLS) support by @eyalge-gong in https://github.com/JSQLParser/JSqlParser/pull/2345
- [fix] Enable qualified table name for DROP INDEX command by @tonhuisman in https://github.com/JSQLParser/JSqlParser/pull/2344
- [fix] Add 'K_DATA' to KeywordOrIdentifier to allow usages of 'data' as an identifier by @willneedham93 in https://github.com/JSQLParser/JSqlParser/pull/2340
- Support PostgreSQL-specific [CREATE SEQUENCE name START n ...] by @mjog in https://github.com/JSQLParser/JSqlParser/pull/2348
- refactor: deprecate Join.getRightItem() and remove duplicate call by @zhezzz in https://github.com/JSQLParser/JSqlParser/pull/2370
- Add support for JOIN FETCH by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2375
- Add support for ClickHouse MATERIALIZED column in CREATE TABLE by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2377
- Add support for ClickHouse PREWHERE clause by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2378
- [feat] Support for the legacy Postgres named parameter by @bigdream96 in https://github.com/JSQLParser/JSqlParser/pull/2374
- Add support for insert as row_alias by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2383
- Fix ALTER TABLE with a USING INDEX clause by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2384
- Add support clickhouse GLOBAL ANY/ALL JOIN syntax variants by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2385
- Fix oracle outer join case with nvl/coalesce by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2386
- Add support for multiple Trino JSON functions by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2382
- Fix alter table index descending by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2387
- Add support MySQL SPATIAL KEY by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2388
- Fix broken maven central svg url by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2389
- Add support SELECT SAMPLE 0.1/OFFSET and CREATE TABLE SAMPLE BY by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2390
- Add support MySQL named UNIQUE index in ALTER TABLE by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2391
- fix: support SQL Server ORDER BY ... FOR XML PATH parsing in subqueries by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2392
- fix: support ClickHouse parametric aggregate calls by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2393
- feat: add support for Oracle INSERT ALL/FIRST with WHEN branches by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2394
- fix(clickhouse): support SELECT ... SETTINGS by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2395
- feat: support EXPLAIN for DML and simplify ExplainStatement by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2396
- feat: support PostgreSQL 18 RETURNING OLD/NEW by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2398
- fix(parser): resolve grammar LOOKAHEAD conflicts by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2399
- Add support CREATE SEQUENCE AS data type by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2400
- Add support parse SEARCH BREADTH/DEPTH FIRST in recursive CTEs by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2402
- fix: restore GENERATED ALWAYS AS IDENTITY parsing by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2397
- Fix nested PostgreSQL composite field access after cast by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2404
- Add support MySQL functional index key parts in ALTER/CREATE INDEX by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2405
- fix(parser): support KEY-prefixed expressions like KEY chain.entity by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2409
- Fix dollar-quoted CREATE FUNCTION statement splitting by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2410
- fix(parser): parse mysql fulltext AGAINST concat expression by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2413
- test: add regression for ALTER TABLE MODIFY COLUMN CHARACTER SET by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2415
- Add support MySQL SELECT INTO OUTFILE/DUMPFILE by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2418
- fix(parser): pass modifier to ExceptOp/MinusOp constructors (#2419) by @queelius in https://github.com/JSQLParser/JSqlParser/pull/2420
- [feat] Support for JSON_TABLE by @ANeumann82 in https://github.com/JSQLParser/JSqlParser/pull/2328
- fix: split CCJSqlParserTokenManager static initializers to avoid 64KB… by @hayssams in https://github.com/JSQLParser/JSqlParser/pull/2425
- Enhance FOR UPDATE support by @rrobetti in https://github.com/JSQLParser/JSqlParser/pull/2426
- [Fix] #2443 - NPE In TableNamesFinder with AnalyticExpression by @davyboyhayes in https://github.com/JSQLParser/JSqlParser/pull/2444
- use Locale.ROOT for case-insensitive keyword normalisation by @dxbjavid in https://github.com/JSQLParser/JSqlParser/pull/2437
- Add support PostgreSQL ROWS FROM table functions by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2416
- fix: add 'K_TYPE' to KeywordOrIdentifier to allow 'type' as a column name by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2448
- fix: support nested parametric data types as CAST target by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2451
- fix: accept VISIBLE/INVISIBLE index and column attributes in CREATE TABLE and CREATE INDEX by @aparajon in https://github.com/JSQLParser/JSqlParser/pull/2449
- fix: allow arbitrary column aliases in LATERAL VIEW by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2452
- fix: stop 0x hex literal from swallowing trailing whitespace (#2435) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2450
- feat: support MERGE ... WHEN NOT MATCHED BY TARGET / BY SOURCE (#2421) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2453
- fix: support ClickHouse tuple positional access by @jianjindream in https://github.com/JSQLParser/JSqlParser/pull/2454
- feat: add support for the XMLTABLE table function by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2458
- fix: allow UNIQUE INDEX in CREATE TABLE by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2457
- fix(parser): keep parenthesized multi-param lambda as first function arg by @ivanclarksoft in https://github.com/JSQLParser/JSqlParser/pull/2455
- fix: support PostgreSQL GROUPS window frames by @jianjindream in https://github.com/JSQLParser/JSqlParser/pull/2460
- fix: model interval qualifier as a structured property by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2456
- fix: support SQL Server CREATE INDEX INCLUDE columns by @jianjindream in https://github.com/JSQLParser/JSqlParser/pull/2462
- fix: support PostgreSQL composite row expansion (function()).* by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2463
- fix: allow scalar subquery as LIMIT row count (#2359) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2464
- fix: support ClickHouse C-style ternary operator (? :) (#2436) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2466
- fix: support ClickHouse ORDER BY WITH FILL and INTERPOLATE (#2467) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2469
- fix: allow GROUPS as identifier by making it a non-reserved keyword (#2473) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2474
- feat: support SQL Server OPTION query hints (#161) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2472
- feat: support CREATE DATABASE (#2070) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2471
- fix: do not treat a named parameter ':' as the ternary else separator (#2475) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2476
- fix: treat a positional parameter '?' as a valid end of the ternary then-branch by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2477
- fix: reject illegal MERGE WHEN NOT MATCHED clause pairings (#2480) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2481
- fix: complete TablesNamesFinder traversal for piped queries, DML side clauses and analytic functions (#2478) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2479
- feat(parser): add support for ClickHouse [LEFT] ARRAY JOIN syntax by @watashi-00 in https://github.com/JSQLParser/JSqlParser/pull/2482
- fix: keep all clauses when deparsing SELECT without FROM (#2483) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2484
- Separate JSON operators with spaces so #> deparses correctly by @dngr2 in https://github.com/JSQLParser/JSqlParser/pull/2487
- feat: complete SQL Server OPTION query hint support by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2486
- feat: parse BigQuery JSON string literals as implicit casts by @hayssams in https://github.com/JSQLParser/JSqlParser/pull/2488
- fix: support Oracle inline constraint states in CREATE TABLE by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2491
- avoid quadratic backtracking when parsing bracketed server names by @dxbjavid in https://github.com/JSQLParser/JSqlParser/pull/2489
- feat(parser): support MySQL PROCEDURE ANALYSE clause by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2492
- fix: support character set introduced string literals by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2493
- fix(parser): support IF EXISTS in ALTER TABLE MODIFY COLUMN by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2494
- feat(parser): support DuckDB MAP literals and PIVOT queries by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2496
- avoid quadratic backtracking in the oracle hint comment pattern by @dxbjavid in https://github.com/JSQLParser/JSqlParser/pull/2495
- fix(parser): support Oracle USING INDEX TABLESPACE in ALTER TABLE ADD CONSTRAINT by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2498
- fix(parser): support CHARACTER SET in CAST CHAR types by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2497
- fix(parser): support leading CONTENT/DOCUMENT keyword in XMLPARSE by @dengliming in https://github.com/JSQLParser/JSqlParser/pull/2501
- fix(parser): support MySQL index options and prefix-length key parts in index DDL by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2505
- fix(parser): support PostgreSQL # binary operator (bitwise XOR / geometric intersection) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2507
- fix(parser): support CAST to an array type for MySQL multi-valued indexes by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2506
- fix(parser): parse qualified columns in GROUP BY by @jianjindream in https://github.com/JSQLParser/JSqlParser/pull/2504
- feat(parser): support MySQL # line comments behind allowHashLineComments by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2508
- feat(parser): turn on the dialect's lexer feature preset in withDialect by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2511
- feat(parser): support double quoted string literals behind allowDoubleQuotedStrings by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2513
- feat(parser): concatenate adjacent string literals behind adjacentStringLiterals by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2514
- feat(parser): add BIGQUERY, DATABRICKS and SNOWFLAKE dialect presets by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2515
- fix: collect tables from all SELECT and DML trailing clauses in TablesNamesFinder by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2517
- fix: prevent bare partition columns from inheriting the previous item's value by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2518
- fix: memoize long-chain predicate walks behind a size threshold by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2520
- Add structured MySQL CREATE TABLE partition parsing by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2521
- Support PostgreSQL CREATE INDEX header variants by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2527
- Support MySQL CHECK constraint enforcement by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2528
- fix(parser): allow VERSION in ALTER column clauses by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2530
- fix(parser): model ALTER COLUMN nullability actions by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2529
- feat(parser): add column data type fragment parser by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2531
- fix(parser): model PostgreSQL declarative partitions by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2535
- fix(parser): model PostgreSQL CREATE INDEX clauses by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2536
- test: fail the build when TablesNamesFinder misses a visitor dispatch method by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2538
- feat(parser): model ColDataType precision and scale as structured properties by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2539
- fix(parser): distinguish MySQL constraint and index names by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2534
- fix(parser): preserve unique index comments in ALTER TABLE by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2533
- fix(parser): model MySQL column type modifiers by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2537
- Model MySQL ALTER TABLE partition operations by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2540
- Support structured MySQL table definitions by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2541
- Model MySQL ANALYZE TABLE statements by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2542
- Support MySQL ALTER TABLE rename variants by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2543
- Model MySQL CREATE SCHEMA options by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2544
- Model MySQL DROP object lists by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2545
- Model MySQL CREATE USER statements by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2546
- Model MySQL CREATE EVENT and ALTER EVENT by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2547
- Model MySQL CREATE TRIGGER statements by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2548
- feat(parser): enhance PostgreSQL CREATE POLICY support by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2549
- feat(parser): parse navigation chains after array subscripts by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2550
- fix(parser): parse INSERT ON CONFLICT after a join's trailing ON by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2551
- feat(parser): model PostgreSQL schema DDL clauses by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2552
- fix(parser): parse stacked NOT prefixes as nested NotExpression (#1170) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2556
- build: pin file.encoding so the Maven build works on Windows by @knutwannheden in https://github.com/JSQLParser/JSqlParser/pull/2565
- feat(parser): model PostgreSQL type domain and extension DDL by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2553
- Support PostgreSQL parenthesized EXPLAIN options by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2558
- Support Redshift materialized view BACKUP clauses by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2557
- Support SQL Server typed XML schema collections by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2559
- Support Oracle XMLSERIALIZE CONTENT and DOCUMENT forms by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2560
- Support SQL Server ALTER TABLE ADD DEFAULT constraints by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2561
- fix(parser): parse Oracle outer join operator (+) on BETWEEN operands (#672) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2564
- Support structured PostgreSQL publication and subscription DDL by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2554
- Support structured PostgreSQL role, privilege and trigger DDL by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2555
- fix(parser): parse COMMENT ON ... IS NULL as comment removal (#2562) by @sundongkim-dev in https://github.com/JSQLParser/JSqlParser/pull/2563
- Fix DISTINCT traversal and share optional select-item visits by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2577
- Analyse analytic and conversion functions with complete window traversal by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2579
- Validate data-modifying CTEs through statement validators by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2578
- Fix parseStatements failure propagation and executor cleanup by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2568
- Support SQL Server table variables through shared table references by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2581
- Preserve EXEC bind arguments and support OUTPUT parameters by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2580
- Support PostgreSQL conflict index elements, OVERRIDING USER and MERGE RETURNING by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2569
- Complete MySQL index options and share CREATE INDEX rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2567
- Support ksqlDB window grace periods and EMIT FINAL by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2571
- Support PostgreSQL tagged dollar strings and preserve literal bodies by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2572
- Support Informix trailing constraint names and share constraint rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2570
- Support SQL Server clustering on primary key and unique constraints by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2582
- Support recursive CTE CYCLE clauses and share recursive clause rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2566
- Support MySQL SELECT INTO user variables and share INTO rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2583
- Support dialect-specific CREATE INDEX definitions by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2586
- Support Oracle anonymous blocks and implicit procedure calls by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2592
- Align empty input handling for statement parsing by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2594
- Support Doris distribution hints and share JOIN rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2584
- Resolve shadowed contextual keyword and data-type token warnings by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2597
- Classify ODBC timestamp interval arguments as time units by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2596
- Support opt-in legacy MySQL GROUP BY ordering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2595
- Support CockroachDB ALTER PRIMARY KEY with structured hash options by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2585
- Structure SQL Server routine operations and table return types by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2593
- fix(parser): parse Oracle outer join operator (+) after LIKE / SIMILAR TO operands (#2598) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2600
- Support Teradata UPDATE FROM before SET with shared clause rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2587
- Split PostgreSQL hash operators from adjacent identifiers by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2588
- Accept SQL Server CREATE TABLE trailing commas with shared element parsing by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2603
- Support PostgreSQL DO wrappers with preserved routine body literals by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2589
- Support SQL Server XML methods on subquery results by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2590
- fix(parser): preserve Oracle PRIOR position on all condition expressions (#2601) by @fudianchn in https://github.com/JSQLParser/JSqlParser/pull/2602
- Support SQL Server INSERT BULK declarations by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2591
- Support SQL Server boolean SET options with shared statement rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2604
- Support SQL Server SET IDENTITY_INSERT with a structured table target by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2605
- fix: keep CREATE TABLE option tokens in sync with typed options by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2606
- fix: preserve structured column options when editing specifications by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2608
- fix: share expression-aware table constraint rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2609
- feat: preserve ALTER COLUMN default expressions in the AST by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2611
- fix: traverse and deparse structured table partitions by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2610
- refactor: share PostgreSQL routine argument grammar by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2613
- fix: recognise set operation quantifiers written in any case by @knutwannheden in https://github.com/JSQLParser/JSqlParser/pull/2614
- fix: preserve ordered table elements through legacy list edits by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2607
- feat: reuse table constraint grammar for PostgreSQL ALTER ADD by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2612
- fix: span a binary condition's node from its left operand by @knutwannheden in https://github.com/JSQLParser/JSqlParser/pull/2615
- feat: preserve column default expressions in table definitions by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2616
- Support SQL large-object names through shared column type parsing by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2617
- Visit pipe expressions through shared deparser paths by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2618
- Support structured XMLFOREST arguments with aliases by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2619
- Preserve ASOF joins through shared join rendering by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2621
- Structure FOR PORTION intervals in UPDATE and DELETE by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2622
- Validate every UPDATE assignment through shared UpdateSet traversal by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2623
- Render DML RETURNING expressions through shared visitor handling by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2624
- Reuse common JOIN traversal when discovering UPDATE tables by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2625
- Share parser execution and preserve cancellation signals by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2626
- Protect shared dialect presets from external mutation by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2627
- Keep ALTER key accessors connected to structured index state by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2628
- Fix benchmark configuration and isolated parser class loading by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2629
- Render DML source clauses through shared visitor paths by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2630
- Clarify PostgreSQL DO support and verify the reported block by @minleejae in https://github.com/JSQLParser/JSqlParser/pull/2633
- @zhangconan made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2303
- @ldaIas made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2277
- @ANeumann82 made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2321
- @hayssams made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2331
- @eyalge-gong made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2345
- @tonhuisman made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2344
- @willneedham93 made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2340
- @mjog made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2348
- @zhezzz made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2370
- @bigdream96 made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2374
- @queelius made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2420
- @rrobetti made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2426
- @dxbjavid made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2437
- @fudianchn made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2451
- @aparajon made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2449
- @jianjindream made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2454
- @ivanclarksoft made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2455
- @watashi-00 made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2482
- @dngr2 made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2487
- @knutwannheden made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2565
- @sundongkim-dev made their first contribution in https://github.com/JSQLParser/JSqlParser/pull/2563
Full Changelog: https://github.com/JSQLParser/JSqlParser/compare/jsqlparser-5.3...jsqlparser-5.4