3.20.11
Version 3.20.11 - January 29, 2026
This is a 3.20 patch release with minor improvements and bug fixes
Bug Fixes
#19484 - Work around DuckDB limitation where RETURNING clauses don't support bind values #19487 - DuckDB doesn't support the ON CONFLICT .. WHERE clause, only the DO UPDATE .. WHERE clause #19495 - Error with DuckDB DECIMAL bind value cast for large decimals #19499 - Work around DuckDB limitation of not being able to qualify UDT arrays #19500 - Cannot bind UDT arrays in DuckDB #19502 - JSON parser should be able to handle non-standard JSON NaN and Infinity values #19506 - Confusing warning about dialect version support #19510 - DuckDB doesn't support binding lobs in ClobBinding #19513 - DuckDBDatabase produces both identity flags and DEFAULT expression #19517 - Multiset JSON emulation should use explicit JSON_ARRAYAGG .. ORDER BY clause where derived table ordering is unstable #19520 - Bad DuckDB interval bind values formatting #19522 - Bad decoding of spatial data from DuckDB database #19525 - Bad cast type for DuckDB INTERVAL DAY TO SECOND type #19528 - Bad date time arithmetic rendered for DuckDB DATE + INTERVAL expressions #19535 - Optimistic locking may produce unsupported FOR UPDATE clause in DuckDB #19538 - DuckDB NestedCollectionEmulation.JSON emulation can't nest MULTISET expressions in ROW expressions #19541 - Add support for DuckDB TIMESTAMP_NS, TIMESTAMP_MS, TIMESTAMP_S types #19546 - DuckDBDatabase shouldn't use INFORMATION_SCHEMA.KEY_COLUMN_USAGE.POSITION_IN_UNIQUE_CONSTRAINT #19552 - Upgrade log4j-core dependency to mitigate CVE-2025-68161 #19559 - Error when using IS [NOT] DISTINCT FROM with LOB columns in Oracle #19564 - Meta.getTables(Name) should allow for partially qualified lookups #19573 - HSQLDBDatabase doesn't correctly implement includeSystemCheckConstraints when identifiers are quoted #19580 - Bad formatting of CAST() function content #19585 - QOM.Array should implement SimpleCheckQueryPart, and return true if there are only few elements #19592 - SortFieldImpl should implement ComplexCheckQueryPart to delegate formatting decisions to contents #19595 - Improve formatting of PARTITION BY and ORDER BY clauses in window functions #19598 - SQLExceptionLoggerListener logs incorrect message about precision when truncated numeric value cannot be inserted for some other reason #19603 - Support emulating EXCLUDED in MySQL, when used in expressions #19607 - MULTISET returns invalid JSONB for JSON string scalar values #19611 - Inlined JSON should be rendered as JSON literal in DuckDB #19616 - Unable to disable generation of implicit many-to-many path methods #19622 - jOOQ-bom pom.xml should be published using packaging=pom