PL/Java brings functions, triggers, and types in Java. 1.5.1 adds support for PostgreSQL 9.6, 10, and 11, with a number of improvements and fixes.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Security note
Two minor enhancements are described in the release notes.
Selected changes
New datatype support has been added, with more details in the release notes:
-
Classes from the Java 8 new date/time API (in the java.time package) can now be used in place of the older java.sql.Date/Time/Timestamp classes to represent PostgreSQL date, time with and without timezone, and timestamp with and without timezone. These new classes fit the SQL types much more closely, and PL/Java code written for Java 8 or later is strongly encouraged to use them (as is PL/Java code written for earlier Java releases, if it is practical to migrate to Java 8 or later).
-
Code that manipulates XML can now receive and return it using the standard JDBC java.sql.SQLXML API, with efficiency and memory footprint advantages relative to PL/Java's default behavior of mapping whole XML documents to Java strings.
This release introduces support for parallel-safety declarations on functions in PostgreSQL 9.6. Simple cases work as expected, but PL/Java's code has not been thoroughly audited to be sure its internal behavior cannot violate constraints on parallel-restricted or parallel-safe functions. See the release notes and new user-guide page on parallel query.
In PostgreSQL 10, trigger transition tables are supported for AFTER triggers, as described in the release notes.
Please see the release notes for a more complete list of changes.
Availability:
1.5.1 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_1
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages