| Name | Modified | Size | Downloads / 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