This document contains the release notes for all PGJDBC-NG releases since 0.8.

Please refer to the User Guide for comprehensive reference documentation on integrating and using PGJDBC-NG.

0.8.9

Date of Release: 2021-05-25

Scope: Repackage of 0.8.8

This is a re-relase of 0.8.8 with fixed "uber jars".

For a complete list of all closed issues and pull requests for this release, consult the 0.8.8 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Fix packaging and publishing of "UberJar"

Deprecations and Breaking Changes

None

New Features and Improvements

None

PGJDBC-NG UDT Generator

Bug Fixes

  • Fix packaging and publishing of "UberJar"

Deprecations and Breaking Changes

  • Maven artifactId has changed to 'pgjdbc-ng-udt-gen`; prefix was added to disambiguate.

New Features and Improvements

None

PGJDBC-NG Spy

Bug Fixes

None

Deprecations and Breaking Changes

  • Maven artifactId has changed to 'pgjdbc-ng-udt-gen`; prefix was added to disambiguate.

New Features and Improvements

None

0.8.8

Date of Release: 2021-05-24

Scope: Bug Fixes

For a complete list of all closed issues and pull requests for this release, consult the 0.8.8 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Resolved driver hang when certain prepared queries are open during a hard database restart.

  • Resolved driver hang when rolling back to a savepoint when certain prepared queries are open.

  • Resolved null pointer exception during rollback when certain prepared queries are open.

  • Resolved regression when using CallableStatement as a simple PreparedStatement.

Deprecations and Breaking Changes

None

New Features and Improvements

None

PGJDBC-NG UDT Generator

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

PGJDBC-NG Spy

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

0.8.7

Date of Release: 2021-03-31

Scope: Driver Bug Fixes

For a complete list of all closed issues and pull requests for this release, consult the 0.8.7 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Fixed potential deadlock in default housekeeper implementation.

  • Procedure discovery succeeds when multiple schemas are present.

  • Struct with null values no longer throw NPE.

  • Use correct type map when retrieving Struct attributes.

  • Fixed loading and caching OIDs with large values.

Deprecations and Breaking Changes

None

New Features and Improvements

  • Caching of ResultSetMetaData instances is now done, when possible.

PGJDBC-NG UDT Generator

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

PGJDBC-NG Spy

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

0.8.6

Date of Release: 2020-10-30

Scope: Authentication & Result Set Enhancements

For a complete list of all closed issues and pull requests for this release, consult the 0.8.6 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Copy in/out errors no longer hang driver.

  • Errors related to protocol.message.size.max now have better messages.

  • Fixed synchronization issues when sharing registry information.

  • Connection.isValue(int) no longer has any transactional side effects.

  • More reliable cancellation of specific request.

Deprecations and Breaking Changes

None

New Features and Improvements

  • PostgreSQL 13 added to validation matrix.

  • Support for SCRAM-SHA-256 & SCRAM-SHA-256-PLUS authentication methods.

  • More compliant host name verification supporting "Subject Alternate Names" and multiple common names.

  • Returning clauses can now be added manually to support PostgreSQL’s complex syntax.

  • Result sets can now be returned (e.g. from functions) and fetched using ResultSet.getObject.

PGJDBC-NG UDT Generator

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

PGJDBC-NG Spy

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

0.8.5

Date of Release: 2020-10-22

Scope: Bug Fixes

For a complete list of all closed issues and pull requests for this release, consult the 0.8.5 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Updated Netty to 4.1.53 (previous version contained critical vulnerabilities).

  • Concurrent data structures are now used for cleanup collections to fix concurrency issue during cleanup.

  • Null string values in scalars, records & arrays are now correctly handled.

  • PGDriver.cleanup is now safe to be called more than once.

  • Statement.setMaxFieldSize and pgjdbc.field.length.max now work as documented.

Deprecations and Breaking Changes

None

New Features and Improvements

  • Integrity violation exceptions now include PostgreSQL’s DETAIL field.

PGJDBC-NG UDT Generator

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

PGJDBC-NG Spy

Bug Fixes

None

Deprecations and Breaking Changes

None

New Features and Improvements

None

0.8.4

Date of Release: 2019-04-11

Scope: Bug Fixes

For a complete list of all closed issues and pull requests for this release, consult the 0.8.4 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • System ids (oid, xid, cid) are now properly parsed/formatted as unsigned values.

  • DataSource.getConnection no longer overwrites user/password currently set on datasource.

  • URLs now properly support URL encoded values.

  • SSL hostname verifier now follows PostgreSQL’s specification for wildcards.

Deprecations and Breaking Changes

  • Published "uber" jars poms now declare no dependencies. Uber jar maven coordinates have changed.

New Features and Improvements

  • DataSource properties & connection URL properties now support the same features; including Unix sockets and fallback addresses.

  • ACL’s now support the complete syntax and the ACLItem API has been updated to reflect this support.

  • SELECTing psuedo types (eg. record) is now supported.

PGJDBC-NG UDT Generator

Bug Fixes

  • Generated enum writes now use the specific type id of the enum (as required in a UDT).

  • Generator composite writers now use explicit types when necessary.

Deprecations and Breaking Changes

New Features and Improvements

PGJDBC-NG Spy

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

0.8.3

Date of Release: 2019-10-04

Scope: Bug Fixes

For a complete list of all closed issues and pull requests for this release, consult the 0.8.3 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Intervals are now parsed/formatted correctly according to server’s or connection’s IntervalStyle

  • PGNotificationListener.close will only be called a single time

  • Locale handling has been properly matched to the server and JVM respectfully

  • Windows Locales are looked up in ROOT/ENGLISH locale

  • Connection URL parameters are properly percent-escaped

  • SQLData implementations handle nulls properly

  • Version meta-data is now correct in shaded jar & fat-jar applications

Deprecations and Breaking Changes

  • Interval has been completely overhauled with a Java 9 java.time interface

  • Due to fixes related to locale handling, text passed to the JDBC API must be in the JVM’s locale and text being passed to the server must be in the server’s locale; this shouldn’t be an overly impactful.

New Features and Improvements

  • PostgreSQL 12 is supported and part of the testing matrix

  • CockroachDB is supported

  • Batch executions use pipelined requests to increase performance by as much as 70%

  • PostgreSQL COPY FROM/TO support

PGJDBC-NG UDT Generator

Bug Fixes

  • Generated UDT implementations correctly handle nulls

  • Fix issue that caused generated attributes to be in incorrect order

  • Nested UDT’s now write wit the specific server type instead of generic record

Deprecations and Breaking Changes

New Features and Improvements

PGJDBC-NG Spy

Bug Fixes

Deprecations and Breaking Changes

New Features and Improvements

0.8.2

Date of Release: 2019-02-09

Scope: Bug fixes for 0.8 release

For a complete list of all closed issues and pull requests for this release, consult the 0.8.2 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

Bug Fixes

  • Fix parsing of server versions with packaging information.

Deprecations and Breaking Changes

  • None

New Features and Improvements

  • None

PGJDBC-NG UDT Generator

No Changes

PGJDBC-NG Spy

No Changes

0.8.1

Date of Release: 2019-02-03

Scope: Bug fixes for 0.8 release

For a complete list of all closed issues and pull requests for this release, consult the 0.8.1 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG General

Fixed source code highlighting in README and in asciidoc documentation.

PGJDBC-NG Driver

Bug Fixes

  • Fix notification delivery

  • Fix NPE in prepared statement batches

Deprecations and Breaking Changes

  • None

New Features and Improvements

  • None

PGJDBC-NG UDT Generator

Bug Fixes

  • Uber jar is now packaged and published for easy command line execution.

Deprecations and Breaking Changes

  • None

New Features and Improvements

  • None

PGJDBC-NG Spy

Bug Fixes

  • None

Deprecations and Breaking Changes

  • None

New Features and Improvements

  • None

0.8

Date of Release: 2019-01-30

Scope: Everything

For a complete list of all closed issues and pull requests for this release, consult the 0.8 milestone page in the PGJDBC-NG repository on GitHub.

PGJDBC-NG Driver

The driver went through a lot of changes in this release. Much of the code experienced changes to bring it up-to-date, bring performance inline and simplify the implementation in a number of areas.

Due to the large number of changes, for status of a specific bug it is best to check the milestone link above.

New Features and Improvements

  • Asynchronous FIFO engine

    • Allows query pipelining

    • Paves way for asynchronous API

  • Lazy Parameter Encoding, Result Decoding

  • Dramatically reduced type registry

    • Nearly 80% less information

    • Connections share registry information

    • Startup time ~10ms on localhost

  • Comprehensive Logging & Tracing

    • JDBC API, SQL & Protocol traces available

  • JDBC 4.2 conformance

    • Provides SQLType implementation

    • JSR310 support

    • Numerous conformance updates

  • Unix Domain Socket support

  • Date/Time Rewrite

    • Completely built on JSR 310

    • Simple and easy to understand

  • Detailed asciidoc documentation added.

    • Comprehensive User Guide

    • Detailed Release Notes (this!)

    • Auto-generated settings details (included in User Guide)

    • Documentation is now "code"

    • Each release includes its documentation.

  • Switched to multi-project Gradle build

Bug Fixes

  • Fixed Flyway compatibility

  • Fixed Windows locale support

  • Fixed issue with generated key support

  • Fixed CallableStatement out parameter handling

  • Fixed driver version name/number reporting

  • Fixed allowed DB names in URLs

  • Fixed numerous Time/Date/Timestamp issues

  • Fixed array handling

  • Fixed batch update handling

Deprecations and Breaking Changes

  • OSGI bundling has been removed due to it being incorrect. A future release may include it again.

PGJDBC-NG UDT Generator

The UDT generator is a "suggested" feature of JDBC 4.2. Although one has existed for PGJDBC-NG, it previously was a separate project and was not documented or updated. It’s now part of the main project, documented in the new "User Guide" and will be released and updated as normal.

PGJDBC-NG Spy

Spy is a general purpose library that (see User Guide) that PGJDBC-NG uses internally to provide JDBC API level tracing.