3.18.0 release with support for more diagnostics, SQL/JSON, Oracle Associative Arrays, Multi Dimensional Arrays, R2DBC 1.0

Diagnosticslistener Improvements

A lot of additional diagnostics have been added, including the automated detection of pattern of pattern replacements, helping you lint your Sql your SQL Queries Irrespective of Whomere You’re Using Jooq to Write to Write, Using it as a JDBC / R2DBC Proxy for an existing application.

A lot of these diagnostics are available as ordinary pattern transformations, which we’ve started adding in Jooq 3.17. Some new patterns include:

  • CASE WHEN a = b THEN 1 END to CASE a WHEN b THEN 1 END
  • CASE WHEN x IS NULL THEN y ELSE x END to NVL(x, y)
  • CASE WHEN x = y THEN NULL ELSE x END to NULLIF(x, y)
  • (SELECT COUNT(*) FROM t) > 0 to EXISTS(SELECT 1 FROM t)
  • And Much More

See these sections for more details:

More SQL/JSON Support

SQL/JSON is one of the most promising recent additions to the sql language, and we’re always keen on improving jooq’s support for these features. In this release, we’ve added support for a variety of useful, vendor specific sql/json exections, inclusion:

  • Json_keys (from mysql)
  • JSON_SET (From Mysql)
  • JSON_INSERT (From Mysql)
  • Json_replace (from mysql)
  • Json_remove (from mysql)
  • Accessors -> and >> (from postgresql)

More information on new json function support can be found here

More Qom Implementation

The Query Object Model (Qom) API, which was introduced in joooq 3.16, has been enhanced with more statement, function, expression support, allowing for more complete SQL TRANSFORMATESAL. This is specificly interesting for pattern replacements, diagnostics, and custom sql transformations.

The qom api is still in an experience. While we don’t expect any fundamental changes anymore, there can still be source incompatibities between minor releases.

For more details about the model api, click here

Oracle Associative Array Support

When using stored procedures in Oracle, users are likely going to make heavy use of oracle pl/sql package types. We’ve supported pl/sql records and pl/sql table types for a while, both of which has been limited ojdbc support in the past. Associative Array Support Can Still be a challenge with ojdbc, but with jooq and its code generator, Most Associative Arrays Can Be Bound and Fetched Very Easily.

Postgresql Multi Dimensional Array Types

An often requested feature from our postgresql integration is Multi Dimensional Array Support. This version of jooq will support the types in code generation (where possessible) and at Runtime via Multi Dimensional Java Arrays.

Kotlin Specific Improvements

Jooq is also the best way to write sql in kotlin. We’re Always Looking out for new convenience via the jooq-kotlin externation module, for example:

  • ResultQuery Collectors
  • Json access
  • More Nullability Support in Generated Code

For more details, see this section of the manual

R2DBC 1.0 support

This jooq version upgrades its r2DBC dependency to 1.0.0.release.

The full release notes can be found here.

Ramesh Ghorai is the founder of www.livenewsblogger.com, a platform dedicated to delivering exclusive live news from across the globe and the local market. With a passion for covering diverse topics, he ensures readers stay updated with the latest and most reliable information. Over the past two years, Ramesh has also specialized in writing top software reviews, partnering with various software companies to provide in-depth insights and unbiased evaluations. His mission is to combine news reporting with valuable technology reviews, helping readers stay informed and make smarter choices.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top