Skip to content

Releases: jOOQ/jOOQ

3.17.20

20 Feb 15:09
Compare
Choose a tag to compare

Version 3.17.20 - February 20, 2024

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

Bug Fixes

#16131 - Maximum consumed results reached when Hikari close a SQL Server connection, leading to excessive logging
#16183 - %ROWTYPE UDT types generate invalid system columns when underlying table references object types
#16198 - Overall performance improvement in AbstractNamed.hashCode() specialisations by avoiding Name::append
#16206 - Remove internal AbstractContext::toggle utilities
#16212 - AbstractScope::dsl, ::settings, ::dialect, and ::family should avoid unnecessary null-checks on Configuration
#16235 - Wrong Support annotation on CREATE TRIGGER for INFORMIX
#16240 - IndexOutOfBoundsException in DerbyDatabase when excludes a column from an index
#16249 - Avoid allocating DataMap in short lived Scope implementations
#16252 - Cache TableRecord Constructor in TableImpl for use in Tools.recordFactory()
#16261 - Avoid allocating Collections.nCopies in ScopeStack
#16265 - Avoid allocating JoinNode in scope registration of tables if unnecessary
#16269 - Avoid constructing DSL.name() for constant internal names
#16273 - Refactor QualifiedName to improve performance
#16278 - name(null, "") should equal to name("")
#16282 - Result::formatXML should omit type attribute on columns whose type is unknown
#16286 - Meta::ddl generates incorrect queries for SQL Server (max) lengths
#16305 - Can't parse MySQL ALTER TABLE .. DROP .., DROP .. syntax

3.19.3

24 Jan 14:33
Compare
Choose a tag to compare

Version 3.19.3 - January 19, 2024

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

Breaking changes

#16085 - Wrong order of MiniJAXB.append() calls in jOOQ-codegen-gradle

Bug Fixes

#16076 - Compilation error in ScalaGenerator generated code of generated DAOs when using scalac 3
#16079 - Remove unnecessary runtimeClasspath dependency of the jOOQ-codegen-gradle plugin
#16082 - Syntax error in generated SQL of ALTER INDEX or ALTER SCHEMA statement, when identifiers aren't quoted
#16086 - jOOQ-gradle-plugin multi execution configuration shouldn't require an explicit default configuration
#16095 - Compilation error in ScalaGenerator generated Keys.scala class when using GeneratorStrategy
#16106 - Wrong Javadoc in RTRIM() and LTRIM()

3.18.10

24 Jan 14:38
Compare
Choose a tag to compare

Version 3.18.10 - January 19, 2024

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

Bug Fixes

#16077 - Compilation error in ScalaGenerator generated code of generated DAOs when using scalac 3
#16096 - Compilation error in ScalaGenerator generated Keys.scala class when using GeneratorStrategy
#16107 - Wrong Javadoc in RTRIM() and LTRIM()

3.17.19

24 Jan 14:49
Compare
Choose a tag to compare

Version 3.17.19 - January 19, 2024

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

Bug Fixes

#16078 - Compilation error in ScalaGenerator generated code of generated DAOs when using scalac 3
#16097 - Compilation error in ScalaGenerator generated Keys.scala class when using GeneratorStrategy
#16108 - Wrong Javadoc in RTRIM() and LTRIM()

3.19.2

24 Jan 14:34
Compare
Choose a tag to compare

Version 3.19.2 - January 12, 2024

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

Features and Improvements

#16023 - Add Javadoc to discourage using any Fields.field(x, Class) method if there's an Fields.field(x, DataType) overload, as well as inline(T), value(T), and val(T)
#16032 - SQLPerformanceWarning should log hint about gathering dictionary statistics in OracleDatabase
#16045 - org.jooq.tools.Convert should delegate to org.jooq.impl.Convert, instead of duplicating implementations

Breaking changes

#16058 - Remove mandatory dependency from compileJava to jOOQ-codegen-gradle tasks

Bug Fixes

#15976 - Wrong statement generated for MySQL when leading unqualified asterisk is used with plain SQL template table
#15983 - Comparison predicates and quantified comparison predicates should hint array type to org.jooq.impl.Array for empty expression array casts
#15985 - Regression in PostgreSQL query using 'x' = ANY (ARRAY [(SELECT ARRAY ['x'])]) style quantified comparison predicate on multi dimensional arrays
#15994 - RenderTable.WHEN_MULTIPLE_TABLES only works with table lists, not with joins
#16004 - Misleading XSD warnings logged when working with MiniJAXB
#16010 - Code generator fails when generating triggers because TriggerExecution value is null
#16014 - Compilation error in KotlinGenerator generated code when GeneratorStrategy produces identifiers conflicting with property access syntax of AbstractRoutine getters
#16026 - Cannot project TableAsField if table contains embeddables in PostgreSQL
#16030 - Regression: NullPointerException in KotlinGenerator generated code when InlineDerivedTable constructor calls TableImpl.where(null)
#16038 - ScalaGenerator produces duplicate paths for cyclic foreign key relationships
#16040 - Compilation error in JavaGenerator generated code when is active and a table references a UDT
#16049 - DATE column in Oracle is null when fetched through multiset
#16057 - Cannot look up tasks.named("jooqCodegen") from gradle scripts
#16060 - MetaSQL lookups are done with SQLDialect.family(), not SQLDialect
#16063 - Regression: Table metadata calculation for Oracle does not work after 3.19.0
#16066 - Add Javadoc to all XJC-generated "withers" and setters of boolean types

3.18.9

24 Jan 14:39
Compare
Choose a tag to compare

Version 3.18.9 - January 12, 2024

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

Features and Improvements

#16024 - Add Javadoc to discourage using any Fields.field(x, Class) method if there's an Fields.field(x, DataType) overload, as well as inline(T), value(T), and val(T)
#16046 - org.jooq.tools.Convert should delegate to org.jooq.impl.Convert, instead of duplicating implementations

Bug Fixes

#15977 - Wrong statement generated for MySQL when leading unqualified asterisk is used with plain SQL template table
#15984 - Comparison predicates and quantified comparison predicates should hint array type to org.jooq.impl.Array for empty expression array casts
#15986 - Regression in PostgreSQL query using 'x' = ANY (ARRAY [(SELECT ARRAY ['x'])]) style quantified comparison predicate on multi dimensional arrays
#15995 - RenderTable.WHEN_MULTIPLE_TABLES only works with table lists, not with joins
#16015 - Compilation error in KotlinGenerator generated code when GeneratorStrategy produces identifiers conflicting with property access syntax of AbstractRoutine getters
#16027 - Cannot project TableAsField if table contains embeddables in PostgreSQL
#16033 - SQLPerformanceWarning should log hint about gathering dictionary statistics in OracleDatabase
#16041 - Compilation error in JavaGenerator generated code when is active and a table references a UDT
#16050 - DATE column in Oracle is null when fetched through multiset
#16061 - MetaSQL lookups are done with SQLDialect.family(), not SQLDialect
#16067 - Add Javadoc to all XJC-generated "withers" and setters of boolean types

3.17.18

24 Jan 14:49
Compare
Choose a tag to compare

Version 3.17.18 - January 12, 2024

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

Features and Improvements

#16025 - Add Javadoc to discourage using any Fields.field(x, Class) method if there's an Fields.field(x, DataType) overload, as well as inline(T), value(T), and val(T)
#16047 - org.jooq.tools.Convert should delegate to org.jooq.impl.Convert, instead of duplicating implementations

Bug Fixes

#16016 - Compilation error in KotlinGenerator generated code when GeneratorStrategy produces identifiers conflicting with property access syntax of AbstractRoutine getters
#16028 - Cannot project TableAsField if table contains embeddables in PostgreSQL
#16034 - SQLPerformanceWarning should log hint about gathering dictionary statistics in OracleDatabase
#16042 - Compilation error in JavaGenerator generated code when is active and a table references a UDT
#16051 - DATE column in Oracle is null when fetched through multiset
#16062 - MetaSQL lookups are done with SQLDialect.family(), not SQLDialect
#16068 - Add Javadoc to all XJC-generated "withers" and setters of boolean types

3.19.1

24 Jan 14:35
Compare
Choose a tag to compare

Version 3.19.1 - December 20, 2023

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

Bug Fixes

#15945 - jOOQ-codegen-gradle should resolve relative directories with respect to the gradle project, not the running process
#15947 - KeepNamesGeneratorStrategy generates ambiguous path names if implicitJoinPathTableSubtypes is activated
#15948 - Compilation error in KotlinGenerator generated code with KeepNamesGeneratorStrategy and generated implicit join paths
#15954 - SQLite requires parenthesised DEFAULT expressions in DDL
#15959 - YugabyteDB doesn't support ALTER TABLE .. DROP CONSTRAINT IF EXISTS
#15971 - Implicit path correlation shouldn't generate correlation predicate if correlation isn't in scope
#15973 - Regression in LiquibaseDatabase when omitting the database.liquibaseSchemaName value

3.18.8

24 Jan 14:40
Compare
Choose a tag to compare

Version 3.18.8 - December 20, 2023

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

Features and Improvements

#15784 - Add Javadoc to the Query::bind methods indicating that they bind values in the rendered order, not the input order
#15793 - Offer a public Maven repository for commercial distributions (maven-install.sh and maven-deploy.sh hints)
#15857 - Deprecation log warning about should link to relevant manual section

Bug Fixes

#15704 - Reactive transaction hangs when exception thrown in lambda constructing reactive flow
#15715 - Possible compilation errors in generated code when column names contain double quotes
#15725 - BindingSetStatementContext should reference actual ExecuteContext, if available
#15728 - DefaultStringBinding should bind java.sql.Clob for CLOB types in Oracle MERGE statements
#15736 - Ill-formed Javadoc causes JDK 21 javadoc tool to crash
#15739 - BatchCRUD does not update optimistic locking version and timestamp values in UpdatableRecord
#15747 - Syntax error when from current_timestamp when precision bind value is specified for Postgres
#15757 - Implicit JOIN implementation for DML is incorrect if paths navigate self joins
#15763 - Compile errors of generated classes using scala 3
#15768 - JSONB inline values should be rendered using JSONB.data() not JSONB.toString()
#15771 - MiniJAXB::marshal(XMLAppendable, OutputStream) does not flush decorating writer
#15800 - LazyVal::generatesCast should return true
#15804 - MetaImpl reports system indexes for Derby 10.16
#15840 - Support overlapping embeddables when enabling
#15851 - Compilation error in KotlinGenerator generated code for tables containing a FROM column, when is activated
#15854 - Accidental override when enabling for tables with columns X and IS_X in Kotlin
#15877 - Internal RecordDataType.getDataType() should be non-nullable for records consisting of all non-null fields
#15880 - IllegalArgumentException when calling UpdatableRecord methods on tables with embedded domains that replace their underlying fields
#15884 - Compilation error in generated code when using and the domain is part of a composite key
#15894 - NullPointerException when using plain SQL identity and additional column in INSERT .. RETURNING
#15902 - Incorrect ExecuteListener Javadoc regarding ExecuteListener lifecycle
#15919 - AbstractDatabase::markUsed doesn't work in some edge cases
#15928 - SnowflakeDataType is missing references to Snowflake's JDBC-internal spellings of TIMESTAMPNTZ, TIMESTAMPLTZ, TIMESTAMPTZ
#15949 - Compilation error in KotlinGenerator generated code with KeepNamesGeneratorStrategy and generated implicit join paths
#15955 - SQLite requires parenthesised DEFAULT expressions in DDL
#15960 - YugabyteDB doesn't support ALTER TABLE .. DROP CONSTRAINT IF EXISTS

3.17.17

24 Jan 14:50
Compare
Choose a tag to compare

Version 3.17.17 - December 20, 2023

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

Features and Improvements

#15794 - Offer a public Maven repository for commercial distributions (maven-install.sh and maven-deploy.sh hints)
#15858 - Deprecation log warning about should link to relevant manual section

Bug Fixes

#15705 - Reactive transaction hangs when exception thrown in lambda constructing reactive flow
#15716 - Possible compilation errors in generated code when column names contain double quotes
#15726 - BindingSetStatementContext should reference actual ExecuteContext, if available
#15729 - DefaultStringBinding should bind java.sql.Clob for CLOB types in Oracle MERGE statements
#15737 - Ill-formed Javadoc causes JDK 21 javadoc tool to crash
#15740 - BatchCRUD does not update optimistic locking version and timestamp values in UpdatableRecord
#15748 - Syntax error when from current_timestamp when precision bind value is specified for Postgres
#15758 - Implicit JOIN implementation for DML is incorrect if paths navigate self joins
#15764 - Compile errors of generated classes using scala 3
#15769 - JSONB inline values should be rendered using JSONB.data() not JSONB.toString()
#15772 - MiniJAXB::marshal(XMLAppendable, OutputStream) does not flush decorating writer
#15785 - Add Javadoc to the Query::bind methods indicating that they bind values in the rendered order, not the input order
#15801 - LazyVal::generatesCast should return true
#15806 - MetaImpl reports system indexes for Derby 10.16
#15841 - Support overlapping embeddables when enabling
#15852 - Compilation error in KotlinGenerator generated code for tables containing a FROM column, when is activated
#15855 - Accidental override when enabling for tables with columns X and IS_X in Kotlin
#15878 - Internal RecordDataType.getDataType() should be non-nullable for records consisting of all non-null fields
#15881 - IllegalArgumentException when calling UpdatableRecord methods on tables with embedded domains that replace their underlying fields
#15885 - Compilation error in generated code when using and the domain is part of a composite key
#15896 - NullPointerException when using plain SQL identity and additional column in INSERT .. RETURNING
#15903 - Incorrect ExecuteListener Javadoc regarding ExecuteListener lifecycle
#15920 - AbstractDatabase::markUsed doesn't work in some edge cases
#15929 - SnowflakeDataType is missing references to Snowflake's JDBC-internal spellings of TIMESTAMPNTZ, TIMESTAMPLTZ, TIMESTAMPTZ
#15950 - Compilation error in KotlinGenerator generated code with KeepNamesGeneratorStrategy and generated implicit join paths
#15956 - SQLite requires parenthesised DEFAULT expressions in DDL
#15961 - YugabyteDB doesn't support ALTER TABLE .. DROP CONSTRAINT IF EXISTS