Releases: tada/pljava
PL/Java 1.6.0 announced
PL/Java brings functions, triggers, and types in Java.
1.6.0 is a notably refactored release that requires Java 9 or later and PostgreSQL 9.5 or later, and brings a number of changes from 1.5.x.
Current users of a 1.5.x release should review the 1.6.0 release notes for possibly necessary changes before updating to 1.6.0.
It includes configurable permissions (finer grained than just java
versus javaU
), a smarter SQL generator, and a much-improved build experience.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Selected changes
-
The Java permissions available to
java
andjavaU
functions can be tailored for each case. Language 'aliases' beyond those two can also be set up withCREATE LANGUAGE
and have their own associated permissions. -
The SQL generator no longer needs to be explicitly told about dependencies between a new type and the functions that use it, or are used in its implementation.
-
PL/Java functions can now be variadic.
-
The build system now takes
pg_config
values such asCFLAGS
into account to match the compiler configuration used to build PostgreSQL. -
Two continuous integration services now routinely build PL/Java for Linux (x86_64 and ppc64le), Mac OS X, and Windows (MinGW-w64 and MSVC), with results visible at GitHub.
Please see the release notes for a more complete list of changes.
Availability:
1.6.0 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_6_0
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.6 announced
PL/Java brings functions, triggers, and types in Java. 1.5.6 adds support for PostgreSQL 13 and a workaround for a build issue on EnterpriseDB 11.
It includes improvements to the java.sql.SQLXML
API, an update of the ISO SQL/XML examples based on the Saxon product to Saxon 10, some improvements to internals, and a number of bug fixes.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Selected changes
-
The
java.sql.SQLXML
API now includes more adjustments to control behavior when processing documents that may be from untrusted sources: resource limits, control of resolution of external documents and entities, validation against a schema, and integration of an XML catalog to locally satisfy requests for external documents. -
The optional ISO SQL/XML examples based on the Saxon library now use Saxon 10, which now includes support for XML Query higher-order functions in the freely-licensed Saxon-HE.
-
Interoperation between PostgreSQL and Java arrays, while still treating all PostgreSQL arrays as one-dimensional, has been improved. For arrays that correspond to Java primitive types, either a Java primitive array or its boxed counterpart can be used, and a boxed array can include nulls.
Please see the release notes for a more complete list of changes.
Availability:
1.5.6 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_6
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.5 announced
PL/Java brings functions, triggers, and types in Java. 1.5.5 supports PostgreSQL through 12 and Java through 13 at build time and run time.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Changes in 1.5.5
- This is a pure bug-fix release that fixes runtime issues reported in 32-bit
i386
builds, some of which would not affect a more common 64-bit architecture, but some of which could under the wrong circumstances, so this release should be used in preference to 1.5.4 or 1.5.3 on any architecture.
Other recent user-visible changes were announced in release 1.5.4 and release 1.5.3.
Please see the release notes for a more complete list of changes.
Availability:
1.5.5 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_5
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.4 announced
PL/Java brings functions, triggers, and types in Java. 1.5.4 supports PostgreSQL through 12 and Java through 13 at build time and run time.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Changes in 1.5.4
- This release follows closely on 1.5.3 to correct some reported build issues
with Java 11 and 13. - A work-in-progress feature that can apply the SQLXML API to other
tree-structured data types is introduced. - Documentation updates cover changes to Application Class Data Sharing in
recent Hotspot versions, and ahead-of-time compilation usingjaotc
.
Other recent user-visible changes were announced in release 1.5.3.
Please see the release notes for a more complete list of changes.
Availability:
1.5.4 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_4
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.3 announced
PL/Java brings functions, triggers, and types in Java. 1.5.3 adds support for PostgreSQL 12, and can now be built with Java versions later than 8.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Selected changes
-
Rework of threading/synchronization management to eliminate Java object finalizers (long deprecated informally, and formally since Java 9). Fixes occasional hangs that could be seen when running on an OpenJ9 JVM.
-
Improvements to the
java.sql.SQLXML
type. -
Includes an example that provides substantially complete implementations of the ISO SQL/XML functions
XMLEXISTS
,XMLQUERY
,XMLTABLE
, andXMLCAST
(using the XQuery language as ISO SQL specifies, rather than XPath as used by the versions in core PostgreSQL), and theLIKE_REGEX
,OCCURRENCES_REGEX
,POSITION_REGEX
,SUBSTRING_REGEX
, andTRANSLATE_REGEX
functions that apply XQuery regular expressions. As ordinary extension functions without special treatment in the SQL parser, these have to be called using slightly different syntax than ISO SQL provides. The optionally-built example relies on the Saxon XQuery library.
Please see the release notes for a more complete list of changes.
Availability:
1.5.3 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_3
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.2 released to fix a regression in date conversions
PL/Java 1.5 brings functions, triggers, and types in Java to PostgreSQL releases from 11 back to 8.2. Release 1.5.2 fixes a regression in 1.5.1 that affected the conversion of PostgreSQL date values to Java java.sql.Date objects.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Change
Before 1.5.1, PostgreSQL date, time, and timestamp values could be accessed in PL/Java as java.sql.Date, java.sql.Time, and java.sql.Timestamp objects. PL/Java 1.5.1 added the option of accessing those values as objects of new classes in the Java 8+ java.time package. The new classes are recommended as a superior API for accessing dates, times, and timestamps.
However, one regression resulted in the older conversion between PostgreSQL date and java.sql.Date, leading to an error of one day for some dates of the year in some time zones. Release 1.5.2 restores the former behavior.
Please see the release notes for more complete information.
Availability:
1.5.2 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_2
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.1 announced
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
PL/Java 1.5.1-BETA3
PL/Java 1.5.1-BETA3 announced
PL/Java brings functions, triggers, and types in Java. 1.5.1, now in BETA3, adds support for PostgreSQL 9.6, 10, and 11 (beta4), 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.
Beta testers are encouraged to exercise the new datatype mappings.
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-BETA3 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_1b3
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.1-BETA2
PL/Java 1.5.1-BETA2 announced
PL/Java brings functions, triggers, and types in Java. 1.5.1, now in BETA2, adds support for PostgreSQL 9.6, 10, and 11 (beta3), 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.
Beta testers are encouraged to exercise the new datatype mappings.
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-BETA2 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_1b2
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages
PL/Java 1.5.1-BETA1
PL/Java 1.5.1-BETA1 announced; security note.
PL/Java brings functions, triggers, and types in Java. 1.5.1, now in beta, adds support for PostgreSQL 9.6 and 10 (beta), with a small number of improvements and fixes.
Project site: http://tada.github.io/pljava/
Release notes: http://tada.github.io/pljava/releasenotes.html
Security note
One previously-announced security issue is addressed in PL/Java 1.5.1, as described in the release notes.
Selected changes
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. This could be a fruitful area for beta testing.
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-BETA1 is available from GitHub as a source release, which builds quickly using Maven:
Release page: https://github.com/tada/pljava/releases/tag/V1_5_1b1
This wiki page will add links to prebuilt packages that become available:
https://github.com/tada/pljava/wiki/Prebuilt-packages