Download Latest Version 3.21.9 source code.zip (5.5 MB) Google Add to Preferred Sources
Home / version-3.21.9
Name Modified Size InfoDownloads / Week
Parent folder
3.21.9 source code.tar.gz 2026-09-24 2.7 MB
3.21.9 source code.zip 2026-09-24 5.5 MB
README.md 2026-09-24 2.3 kB
Totals: 3 Items   8.2 MB 0

Version 3.21.9 - September 24, 2026

This is a 3.21 patch release with minor improvements and bug fixes

Bug Fixes

[#20178] - Many-to-many path isn't being generated on inverse one-to-one relationship [#20183] - OracleDatabase does not generate indexes containing DESC columns [#20187] - Code generator should generate SortOrder.DESC on additional dialects with DESC index column support [#20191] - Syntax error in BigQuery CREATE FUNCTION statement: Missing AS keyword [#20196] - Improve ambiguous key name log message in case of self-referencing foreign keys [#20200] - TransactionPublisher should document streaming of intermediary results being undefined [#20203] - Cancellation of an in-flight R2DBC query orphans the row subscription and permanently poisons the connection [#20207] - R2DBC transactionPublisher hangs when Error is being thrown as opposed to Exception during publisher initialisation [#20211] - R2DBC Batch execution silently skips SubscriberProvider context propagation [#20216] - R2DBC transaction rollback cause is invisible in stack trace, in case rollback fails [#20221] - Wrong no-op logic in $limitWithTies() and $offset() mutators of SelectQueryImpl [#20225] - Oracle generated UDT record type interfaces do not call correct generator strategy method getJavaGetterOverride [#20228] - JavaGenerator::generateEmbeddableRecordSetter uses wrong kotlin check to decide what generator strategy method should be used for setter/member overrides [#20231] - Compilation error in generated code for UDT or table arrays when interfaces are being generated [#20234] - Kotlin generated code produces wrong aliasing constructors for tables [#20238] - Code generator doesn't escape UDT name or schema name [#20242] - Parser swallows characters in Oracle style quoted literals if delimiter character is encountered in string [#20246] - Some inconsequential missing breaks in switches of the parser [#20250] - Parser incorrectly parses empty nested block comments [#20254] - SQLite cannot maintain JSON true value when nested in MULTISET [#20256] - QueryPart::$replace replaces absent optional argument by explicit NULL argument

Source: README.md, updated 2026-09-24