Version 3.19.37 - August 4, 2026
================================================================================
This is a 3.19 patch release with minor improvements and bug fixes
Features and Improvements
-------------------------
#20070 - MULTISET emulations should trace log serialised JSON or XML content
Bug Fixes
---------
#20061 - Bad formatting of JSON_ARRAY() NULL ON NULL clause
#20065 - Self-referencing foreign key generates unnecessary path import for nested class in the generated table
#20079 - Upgrade Jackson to 2.18.8 to mitigate CVE-2026-54513 and others
#20100 - Upgrade jackson-databind to 2.22.1 to mitigate CVE-2026-59889
#20103 - RenderKeywordCase.UPPER / LOWER / PASCAL ignore Settings.renderLocale
#20108 - IndexOutOfBoundsException when joining table to noTable() using SelectJoinStep
#20111 - Joining a noTable() removes aliases from other tables in the join tree
#20119 - Diff generates unnecessary ALTER TABLE for TEXT fields between lengths declared as 0 and lengths declared as Integer.MAX_VALUE
#20123 - Upgrade Spring dependency to 6.2.19 to mitigate CVE-2026-41848
Version 3.20.18 - August 4, 2026
================================================================================
This is a 3.20 patch release with minor improvements and bug fixes
Features and Improvements
-------------------------
#20069 - MULTISET emulations should trace log serialised JSON or XML content
Bug Fixes
---------
#20060 - Bad formatting of JSON_ARRAY() NULL ON NULL clause
#20064 - Self-referencing foreign key generates unnecessary path import for nested class in the generated table
#20078 - Upgrade Jackson to 2.18.8 to mitigate CVE-2026-54513 and others
#20092 - MappedSchema.withInput("").withOutput("x") adds a wrong schema prefix to references to CTEs
#20099 - Upgrade jackson-databind to 2.22.1 to mitigate CVE-2026-59889
#20102 - RenderKeywordCase.UPPER / LOWER / PASCAL ignore Settings.renderLocale
#20107 - IndexOutOfBoundsException when joining table to noTable() using SelectJoinStep
#20110 - Joining a noTable() removes aliases from other tables in the join tree
#20118 - Diff generates unnecessary ALTER TABLE for TEXT fields between lengths declared as 0 and lengths declared as Integer.MAX_VALUE
#20122 - Upgrade Spring dependency to 6.2.19 to mitigate CVE-2026-41848
Version 3.21.7 - August 4, 2026
================================================================================
This is a 3.21 patch release with minor improvements and bug fixes
Features and Improvements
-------------------------
#20068 - MULTISET emulations should trace log serialised JSON or XML content
Bug Fixes
---------
#20059 - Bad formatting of JSON_ARRAY() NULL ON NULL clause
#20063 - Self-referencing foreign key generates unnecessary path import for nested class in the generated table
#20071 - JDBC backed MetaImpl does not list Snowflake catalogs
#20073 - Add missing Snowflake support for <JSON array constructor by query>
#20077 - Upgrade Jackson to 3.1.4 or 2.22.0 to mitigate CVE-2026-54513 and others
#20085 - Stop rendering NULL ON NULL or ABSENT ON NULL on empty JSON_ARRAY() or JSON_OBJECT() in SQL Server
#20091 - MappedSchema.withInput("").withOutput("x") adds a wrong schema prefix to references to CTEs
#20096 - Upgrade Jackson to 3.2.1 to mitigate CVE-2026-59889
#20098 - Upgrade jackson-databind to 2.22.1 to mitigate CVE-2026-59889
#20101 - RenderKeywordCase.UPPER / LOWER / PASCAL ignore Settings.renderLocale
#20106 - IndexOutOfBoundsException when joining table to noTable() using SelectJoinStep
#20109 - Joining a noTable() removes aliases from other tables in the join tree
#20116 - Regression in code generator for PostgreSQL SERIAL columns, which are no longer recognised as identities
#20117 - Diff generates unnecessary ALTER TABLE for TEXT fields between lengths declared as 0 and lengths declared as Integer.MAX_VALUE
#20121 - Upgrade Spring dependency to 6.2.19 to mitigate CVE-2026-41848