Download Latest Version 3.20.10 source code.tar.gz (2.6 MB)
Email in envelope

Get an email when there's a new version of jOOQ

Home / version-3.20.9
Name Modified Size InfoDownloads / 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

Source: README.md, updated 2025-11-11