| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 3.20.9 source code.tar.gz | 2025-11-11 | 2.6 MB | |
| 3.20.9 source code.zip | 2025-11-11 | 5.3 MB | |
| README.md | 2025-11-11 | 3.8 kB | |
| Totals: 3 Items | 7.9 MB | 0 | |
Version 3.20.9 - November 11, 2025
This is a 3.20 patch release with minor improvements and bug fixes
Features and Improvements
[#19139] - Result::formatJSON should offer a way to export NaN and Infinity values as strings [#19143] - Result::formatJSON should offer a way to configure the binary data encoding [#19148] - Result::formatXML should offer a way to configure NULL encoding [#19167] - Offer XMLFormat::arrayFormat flag to format arrays to use the PostgreSQL <element/> format [#19171] - Support binding a Result value as a MultisetDataType [#19199] - Add DSL.noPath() for dynamic path joins [#19244] - Code generation plugins should offer a way to configure a java.security.Provider
Bug Fixes
[#19129] - ParserImpl::parseHints shouldn't eager allocate its StringBuilder [#19133] - Parser doesn't recognise INT32 and INT64 data types [#19153] - Result::formatJSON doesn't put Interval types in double quotes [#19161] - NullPointerException in Result::intoXML when working with XML fields whose content is a text node [#19164] - Result::intoXML does not recurse into nested Formattables [#19174] - inline(null, multisetType) doesn't work [#19180] - KotlinGenerator produces Long instead of Long? type for java.lang.Long auto converter configurations [#19184] - Gradle code generation plugin cannot find orderProvider [#19192] - Select::$replace doesn't maintain SELECT .. INTO clause [#19196] - Add missing accessors and mutators for the INTO clause to Select [#19201] - Select::$traverse doesn't traverse into numerous clauses [#19208] - Support parsing multi dimensional array simplified syntaxes [#19225] - Work around ojdbc returning RESTRICT instead of NO_ACTION in MetaImpl [#19230] - Cannot deserialise XML content from MULTISET XML emulation [#19234] - SQLDataType.XML should be bound as XMLTYPE, not as String in Oracle [#19237] - Code generator should call GeneratorStrategy::getJavaClassExtends with Mode.DAO [#19241] - SQLDataType.XML should be inlined using XMLPARSE(DOCUMENT ..), not as String in Db2 [#19251] - Result.into(ContentHandler) doesn't emit endElement() event for document element [#19257] - NTH_VALUE and LAST_VALUE $replace() implementation switches function to FIRST_VALUE [#19267] - AggregateFunction::$traverse doesn't traverse $withinGroupOrderBy() parts [#19270] - DefaultAggregateFunction::$traverse isn't implemented correctly [#19273] - Some aggregate functions traverse their contents twice in their $traverse() implementations [#19283] - Quantified comparison predicates produce illegal any[] cast when using Scala vararg splicing operators on generic typed sequences [#19295] - COUNT(table) emulation does not maintain FILTER or OVER clauses [#19301] - MetaImpl doesn't provide table comments for BigQuery [#19305] - BigQuery nested ROW emulation produces invalid column names [#19309] - BigQuery RECURSIVE CTE generates unnecessary derived table around UNION ALL query [#19313] - BigQuery ALTER TABLE .. DROP FOREIGN KEY renders wrong SQL [#19315] - Use ARRAY_AGG emulation for BigQuery MIN_BY() or MAX_BY() window function [#19317] - LIMIT clause taking expressions isn't emulated correctly for UNION queries, when QUALIFY has native support [#19321] - Diff undeterministically produces cyclic constraint or index rename statements for redundant constraints or indexes [#19337] - BigQuery doesn't support SIMILAR TO [#19342] - Work around PostgreSQL function argument limit for JSON_BUILD_ARRAY and JSON_BUILD_OBJECT [#19350] - Upgrade Maven dependency to mitigate CVE-2025-48924 [#19354] - Upgrade Liquibase transitive commons-lang3 dependency to mitigate CVE-2025-48924