Download Latest Version 3.20.6 source code.tar.gz (2.5 MB)
Email in envelope

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

Home / version-3.20.6
Name Modified Size InfoDownloads / Week
Parent folder
3.20.6 source code.tar.gz 2025-08-12 2.5 MB
3.20.6 source code.zip 2025-08-12 5.3 MB
README.md 2025-08-12 4.4 kB
Totals: 3 Items   7.8 MB 3

Version 3.20.6 - August 12, 2025

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

Features and Improvements

[#18733] - Add DataType::isQualifiedRecord and DataType::isUDTRecord [#18826] - Add Meta and DDL catalog support for Databricks [#18846] - Add a warning to the Query::bind Javadoc about the method not being very useful in general

Bug Fixes

[#18588] - Upgrade pgjdbc dependency to 42.7.7 to mitigate CVE-2025-49146 [#18594] - Meta.getSchemas() produces schema multiple times across catalogs in DuckDB [#18595] - Ad-hoc compilation of code generator shouldn't require adding jooq-codegen dependency to project, explicitly [#18600] - Wrong list of supported dialects on various IF [ NOT ] EXISTS methods [#18610] - NClobBinding doesn't correctly bind NULL values [#18613] - Inlining of large SQLDataType.NCLOB values doesn't use TO_NCLOB() in Oracle, like for large CLOB values [#18619] - NClobBinding should revert to ordinary String usage when JDBC driver doesn't support NClob [#18622] - MetaImpl doesn't return Db2 GLOBAL TEMPORARY tables [#18635] - JDBC backed MetaImpl reports Oracle GLOBAL TEMPORARY tables as ordinary tables [#18644] - Slash in name results in invalid identifier being generated using KotlinGenerator [#18647] - KotlinGenerator produces bad code when table / column identifier disambiguation clashes with special character escaping [#18650] - Bad file names generated on Windows in KotlinGenerator and ScalaGenerator when using special characters [#18655] - Compilation error in Kotlin generated code when table name contains special characters and paths are generated [#18658] - org.jooq.codegen.gradle.MetaExtensions classes should adhere to JavaBeans convention to avoid deprecation warning in Gradle 8.x [#18664] - Bad types generated in Informix UDT classes for informix.boolean, informix.blob, and informix.lvarchar types [#18667] - Informix generated code contains extra "_0" attribute in generated UDTs [#18671] - Work around Informix JDBC driver java.lang.IllegalMonitorStateException bug when reading UDT out parameters [#18673] - Parser cannot parse Oracle style IN, OUT modifier in procedure declarations [#18688] - PostgresDatabase and subtypes may still produce wrong table comments in presence of stored functions [#18689] - PostgreSQL UDT not deserialized correctly when embedded in multiset [#18694] - Function parameter references aren't rendered with @ prefix in SQL Server, in function body [#18697] - Generated CREATE FUNCTION statement renders extra BEGIN .. END block in SQL Server [#18703] - MetaImpl should support DataType::generatedAlwaysAs property if JDBC DatabaseMetaData::getColumns can report it [#18708] - MetaDataFieldProvider debug logs warnings about Nullable(xyz) types not being supported for ClickHouse [#18710] - DataType.generationOption(null) shouldn't store null value, but DEFAULT value [#18719] - Bad formatting in PostgreSQL IF [ NOT ] EXISTS emulation when nested in more blocks [#18723] - Cannot place Oracle UDT in MULTISET with JSON emulation [#18729] - Settings.renderQuotedNames shouldn't affect xsi:nil attribute rending in MULTISET XML emulation [#18737] - Typo in DataType::hidden Javadoc [#18739] - Code generator does not apply DataType.GEOMETRY to PostgreSQL materialized view [#18750] - Formatting problem in generated Kotlin UDTs [#18754] - Insert::$updateSet doesn't replace the SET clause, but appends to it [#18763] - Parser fails to parse T-SQL query with TOP and quoted identifiers, when Settings.parseDialect is set to DEFAULT [#18774] - Bad rendering of UDTPathField in PL/SQL contexts [#18788] - XMLDatabase has O(N^2) complexity in column / attribute / parameter lookups [#18809] - Procedural IF a = b is emulated incorrectly in H2 [#18828] - Missing VARCHAR lengths in Databricks generated code [#18830] - MetaImpl reports wrong array component length for Databricks [#18833] - Avoid unnecessary StringReader and StringWriter allocations and data transfer in MULTISET deserialisation [#18837] - <dateAsTimestamp/> deprecation notice should mention DateAsTimestampBinding alternative explicitly [#18842] - JSONParser::parseStringLiteral should omit StringBuilder copy if no escape sequence is found

Source: README.md, updated 2025-08-12