The following sections indicate changes that are incompatible between OpenJPA 3.1.x releases and the 3.2.0 release.
We did fix the SUM operation to always return Double as requested by the spec.
Previously we did return whatever Numeric the JDBC driver did serve, resulting in non portable code.
We did review and update the list of invalid column names for most DBDicationary.
The list of tested reserved words got enriched with previously forbidden column names to avoid backward
incompatibility issues.
The list can ge retrieved and configured via
DBDictionary.getInvalidColumnWordSet
There have been 2 changes for Hypersonic (HSQLDB).
We fixed a bug which did cause long fields getting mapped to INTEGER
instead of BIGINT.
Java double fields previously got mapped to NUMERIC which
does lack fraction digits. Thus the value 7.3425343 got truncated to 7.
We now map double fields in Entities to DOUBLE SQL column types.
Due to a bug we did hardcoded round at 3 digits precision. So we essentially only allowed millis, even on a TIMESTAMP(6) field. The new code does respect the second fractions and now defaults to 6. It should be compatible but it might behave very subtle different.
Before OpenJPA-3.2.0 Unary Operations like MIN, MAX, SUM, etc
did return whatever type got returned by the JDBC driver. For certain column types this could also have been internal
classes of that very JDBC driver. E.g. a SELECT MAX(a.someLocalDateField) .. might have returned
an instance of types com.oracle.jdbc.... or com.microsoft.sqlserver..., etc.
We now use the respective
DBDictionary to request the correct type from the ResultSet.
PostgreSQL does now support client side setQueryTimeout.
User might see this come alive and now return different when the situation occurs.
This flag is automatically enabled if running against PostgreSQL 10 or later.
It can also be configured manually via
DBDictionary.supportsQueryTimeout