Version 3.18.32 - August 12, 2025

================================================================================


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



Features and Improvements

------------------------- 

#18627 - BlobBinding and ClobBinding should fall back to byte[] and String 
binding if unavailable

#18735 - Add DataType::isQualifiedRecord and DataType::isUDTRecord

#18848 - Add a warning to the Query::bind Javadoc about the method not 
being very useful in general



Bug Fixes

---------

#18590 - Upgrade pgjdbc dependency to 42.7.7 to mitigate CVE-2025-49146

#18597 - Ad-hoc compilation of code generator shouldn't require adding 
jooq-codegen dependency to project, explicitly

#18602 - Wrong list of supported dialects on various IF [ NOT ] EXISTS 
methods

#18612 - NClobBinding doesn't correctly bind NULL values

#18615 - Inlining of large SQLDataType.NCLOB values doesn't use TO_NCLOB() 
in Oracle, like for large CLOB values

#18621 - NClobBinding should revert to ordinary String usage when JDBC 
driver doesn't support NClob

#18624 - MetaImpl doesn't return Db2 GLOBAL TEMPORARY tables

#18637 - JDBC backed MetaImpl reports Oracle GLOBAL TEMPORARY tables as 
ordinary tables

#18646 - Slash in name results in invalid identifier being generated using 
KotlinGenerator

#18649 - KotlinGenerator produces bad code when table / column identifier 
disambiguation clashes with special character escaping

#18652 - Bad file names generated on Windows in KotlinGenerator and 
ScalaGenerator when using special characters

#18657 - Compilation error in Kotlin generated code when table name 
contains special characters and paths are generated

#18675 - Parser cannot parse Oracle style IN, OUT modifier in procedure 
declarations

#18691 - PostgreSQL UDT not deserialized correctly when embedded in multiset

#18696 - Function parameter references aren't rendered with @ prefix in SQL 
Server, in function body

#18699 - Generated CREATE FUNCTION statement renders extra BEGIN .. END 
block in SQL Server

#18705 - MetaImpl should support DataType::generatedAlwaysAs property if 
JDBC DatabaseMetaData::getColumns can report it

#18712 - DataType.generationOption(null) shouldn't store null value, but 
DEFAULT value

#18721 - Bad formatting in PostgreSQL IF [ NOT ] EXISTS emulation when 
nested in more blocks

#18725 - Cannot place Oracle UDT in MULTISET with JSON emulation

#18731 - Settings.renderQuotedNames shouldn't affect xsi:nil attribute 
rending in MULTISET XML emulation

#18741 - Code generator does not apply DataType.GEOMETRY to PostgreSQL 
materialized view

#18752 - Formatting problem in generated Kotlin UDTs

#18756 - Insert::$updateSet doesn't replace the SET clause, but appends to 
it

#18765 - Parser fails to parse T-SQL query with TOP and quoted identifiers, 
when Settings.parseDialect is set to DEFAULT

#18790 - XMLDatabase has O(N^2) complexity in column / attribute / 
parameter lookups

#18811 - Procedural IF a = b is emulated incorrectly in H2

#18835 - Avoid unnecessary StringReader and StringWriter allocations and 
data transfer in MULTISET deserialisation

#18839 - <dateAsTimestamp/> deprecation notice should mention 
DateAsTimestampBinding alternative explicitly

#18844 - JSONParser::parseStringLiteral should omit StringBuilder copy if 
no escape sequence is found



Version 3.19.25 - August 12, 2025

================================================================================


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



Features and Improvements

------------------------- 

#18734 - Add DataType::isQualifiedRecord and DataType::isUDTRecord

#18847 - Add a warning to the Query::bind Javadoc about the method not 
being very useful in general



Bug Fixes

---------

#18589 - Upgrade pgjdbc dependency to 42.7.7 to mitigate CVE-2025-49146

#18596 - Ad-hoc compilation of code generator shouldn't require adding 
jooq-codegen dependency to project, explicitly

#18601 - Wrong list of supported dialects on various IF [ NOT ] EXISTS 
methods

#18611 - NClobBinding doesn't correctly bind NULL values

#18614 - Inlining of large SQLDataType.NCLOB values doesn't use TO_NCLOB() 
in Oracle, like for large CLOB values

#18620 - NClobBinding should revert to ordinary String usage when JDBC 
driver doesn't support NClob

#18623 - MetaImpl doesn't return Db2 GLOBAL TEMPORARY tables

#18636 - JDBC backed MetaImpl reports Oracle GLOBAL TEMPORARY tables as 
ordinary tables

#18645 - Slash in name results in invalid identifier being generated using 
KotlinGenerator

#18648 - KotlinGenerator produces bad code when table / column identifier 
disambiguation clashes with special character escaping

#18651 - Bad file names generated on Windows in KotlinGenerator and 
ScalaGenerator when using special characters

#18656 - Compilation error in Kotlin generated code when table name 
contains special characters and paths are generated

#18659 - org.jooq.codegen.gradle.MetaExtensions classes should adhere to 
JavaBeans convention to avoid deprecation warning in Gradle 8.x

#18665 - Bad types generated in Informix UDT classes for informix.boolean, 
informix.blob, and informix.lvarchar types

#18668 - Informix generated code contains extra "_0" attribute in generated 
UDTs

#18672 - Work around Informix JDBC driver 
java.lang.IllegalMonitorStateException bug when reading UDT out parameters

#18674 - Parser cannot parse Oracle style IN, OUT modifier in procedure 
declarations

#18690 - PostgreSQL UDT not deserialized correctly when embedded in multiset

#18695 - Function parameter references aren't rendered with @ prefix in SQL 
Server, in function body

#18698 - Generated CREATE FUNCTION statement renders extra BEGIN .. END 
block in SQL Server

#18704 - MetaImpl should support DataType::generatedAlwaysAs property if 
JDBC DatabaseMetaData::getColumns can report it

#18711 - DataType.generationOption(null) shouldn't store null value, but 
DEFAULT value

#18720 - Bad formatting in PostgreSQL IF [ NOT ] EXISTS emulation when 
nested in more blocks

#18724 - Cannot place Oracle UDT in MULTISET with JSON emulation

#18730 - Settings.renderQuotedNames shouldn't affect xsi:nil attribute 
rending in MULTISET XML emulation

#18740 - Code generator does not apply DataType.GEOMETRY to PostgreSQL 
materialized view

#18751 - Formatting problem in generated Kotlin UDTs

#18755 - Insert::$updateSet doesn't replace the SET clause, but appends to 
it

#18764 - Parser fails to parse T-SQL query with TOP and quoted identifiers, 
when Settings.parseDialect is set to DEFAULT

#18775 - Bad rendering of UDTPathField in PL/SQL contexts

#18789 - XMLDatabase has O(N^2) complexity in column / attribute / 
parameter lookups

#18810 - Procedural IF a = b is emulated incorrectly in H2

#18834 - Avoid unnecessary StringReader and StringWriter allocations and 
data transfer in MULTISET deserialisation

#18838 - <dateAsTimestamp/> deprecation notice should mention 
DateAsTimestampBinding alternative explicitly

#18843 - JSONParser::parseStringLiteral should omit StringBuilder copy if 
no escape sequence is found



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

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/jooq-user/b33bdffe-731f-4eba-a8ce-c1dff7ef84acn%40googlegroups.com.

Reply via email to