Notable changes since version 42.0.0, read the complete History of Changes.
The format is based on Keep a Changelog.
42.2.6 (2019-06-19)
- Waffle has dropped support for 1.6, 1.7 as such the new waffle 1.9.x is only available in jre8
- Microseconds in timestamps might be truncated when transferred in binary mode
- 24:00 time handling is not consistent issue 1385
- Unexpected packet type during stream replication issue 1466
- Driver goes missing after OSGi bundle restart issue 1476
- Change IS_GENERATED to IS_GENERATEDCOLUMN as per spec PR 1485
- Fix missing metadata columns, and misspelled columns in PgDatabaseMetaData#getTables PR 1323
- CI tests with Java 11, and Java EA
- Support temporary replication slots in ReplicationCreateSlotBuilder PR 1306
- Support PostgreSQL 11, 12
- Return function (PostgreSQL 11) columns in PgDatabaseMetaData#getFunctionColumns
- Return information on create replication slot, now the snapshot_name is exported to allow a consistent snapshot in some uses cases. PR 1335
- Fixed async copy performance (1ms per op) in SSL mode PR 1314
- Return Double.NaN for 'NaN'::numeric PR 1304
- Performance issue in PgDatabaseMetaData#getTypeInfo with lots of types in DB PR 1302
- PGCopyInputStream#read should cap values to [0, 255], -1 PR 1349
- Fixes LocalDateTime handling of BC dates PR 1388
- Release savepoints in autosave mode to prevent out of shared memory errors at the server side PR 1409
- Fix execution with big decimal in simple query mode. PR 1463
- Fix rounding for timestamps truncated to dates before 1970 PR 1502
42.2.5 (2018-08-27)
- 1ms per async copy call issue 1312
ssl=true
impliessslmode=verify-full
, that is it requires valid server certificate cdeeaca4
- Support for
sslmode=allow/prefer/require
cdeeaca4
- Security: added server hostname verification for non-default SSL factories in
sslmode=verify-full
(CVE-2018-10936) cdeeaca4 - Updated documentation on SSL configuration fa032732
- Updated Japanese translations PR 1275
- IndexOutOfBounds on prepared multistatement with insert values c2885dd0
42.2.4 (2018-07-14)
- PreparedStatement.setNull(int parameterIndex, int t, String typeName) no longer ignores the typeName argument if it is not null PR 1160
- Fix treatment of SQL_TSI_YEAR, SQL_TSI_WEEK, SQL_TSI_MINUTE PR 1250
- Map integrity constraint violation to XA_RBINTEGRITY instead of XAER_RMFAIL PR 1175 f2d1352c
42.2.3 (2018-07-12)
- SQL_TSI_YEAR is treated as hour, SQL_TSI_WEEK is treated as hour, SQL_TSI_MINUTE is treated as second
- Reduce the severity of the error log messages when an exception is re-thrown. The error will be thrown to caller to be dealt with so no need to log at this verbosity by pgjdbc PR 1187
- Deprecate Fastpath API PR 903
- Support parenthesis in {oj ...} JDBC escape syntax PR 1204
- ubenchmark module moved pgjdbc/benchmarks repository due to licensing issues PR 1215
- Include section on how to submit a bug report in CONTRIBUTING.md PR 951
- getString for PGObject-based types returned "null" string instead of null PR 1154
- Field metadata cache can be disabled via databaseMetadataCacheFields=0 PR 1052
- Properly encode special symbols in passwords in BaseDataSource PR 1201
- Adjust date, hour, minute, second when rounding nanosecond part of a timestamp PR 1212
- perf: reduce memory allocations in query cache PR 1227
- perf: reduce memory allocations in SQL parser PR 1230, PR 1233
- Encode URL parameters in BaseDataSource PR 1201
- Improve JavaDoc formatting PR 1236
42.2.2 (2018-03-15)
- Documentation on server-side prepared statements PR 1135
- Avoid failure for
insert ... on conflict...update
forreWriteBatchedInserts=true
case PR 1130 - fix: allowEncodingChanges should allow set client_encoding=... PR 1125
- Wrong data from Blob/Clob when mark/reset is used PR 971
- Adjust XAException return codes for better compatibility with XA specification PR 782
- Wrong results when single statement is used with different bind typesPR 1137
- Support generated keys for WITH queries that miss RETURNING PR 1138
- Support generated keys when INSERT/UPDATE/DELETE keyword is followed by a comment PR 1138
42.2.1 (2018-01-25)
- client_encoding has to be UTF8 even with allowEncodingChanges=true
- socksProxyHost is ignored in case it contains empty string PR 1079
- Avoid connection failure when
DateStyle
is set toISO
(~PgBouncer) Issue 1080 - Package scram:client classes, so SCRAM works when using a shaded jar PR 1091 1a89290e
- reWriteBatchedInserts=true causes syntax error with ON CONFLICT Issue 1045 PR 1082
- Avoid failure in getPGArrayType when stringType=unspecified PR 1036
- For PostgreSQL 9.0+ return a complete list of keywords in DatabaseMetadata.getSQLKeywords() from pg_catalog.pg_get_keywords(). PR 940
42.2.0 (2018-01-17)
- SCRAM does not work as scram:client library is not packaged
- client_encoding has to be UTF8 even with allowEncodingChanges=true
- Support SCRAM-SHA-256 for PostgreSQL 10 in the JDBC 4.2 version (Java 8+) using the Ongres SCRAM library. PR 842
- Make SELECT INTO and CREATE TABLE AS return row counts to the client in their command tags. Issue 958 PR 962
- Support Subject Alternative Names for SSL connections. PR 952
- Support isAutoIncrement metadata for PostgreSQL 10 IDENTITY column. PR 1004
- Support for primitive arrays PR#887 3e0491a
- Implement support for get/setNetworkTimeout() in connections. PR 849
- Make GSS JAAS login optional, add an option "jaasLogin" PR 922 see Connecting to the Database
- Improve behaviour of ResultSet.getObject(int, Class). PR 932
- Parse CommandComplete message using a regular expresion, allows complete catch of server returned commands for INSERT, UPDATE, DELETE, SELECT, FETCH, MOVE, COPY and future commands. PR 962
- Use 'time with timezone' and 'timestamp with timezone' as is and ignore the user provided Calendars, 'time' and 'timestamp' work as earlier except "00:00:00" now maps to 1970-01-01 and "24:00:00" uses the system provided Calendar ignoring the user-provided one PR 1053
- Change behaviour of multihost connection. The new behaviour is to try all secondaries first before trying the master PR 844.
- Avoid reflective access to TimeZone.defaultTimeZone in Java 9+ PR 1002 fixes Issue 986
- Make warnings available as soon as they are received from the server. This is useful for long running queries, where it can be beneficial to know about a warning before the query completes. PR 857
- Use 00:00:00 and 24:00:00 for LocalTime.MIN/MAX. PR 992
- Now the DatabaseMetaData.getFunctions() implementation complies with the JDBC docs. PR 918
- Execute autosave/rollback savepoint via simple queries always to prevent "statement S_xx not exists" when autosaving fixes Issue #955
- Received resultset tuples, but no field structure for them" when bind failure happens on 5th execution of a statement Issue 811
- Drop support for the (insecure) crypt authentication method. PR 1026
- Reintroduce Driver.getVersion for backward compatibility reasons, mark it as deprecated as application should not rely on it (regression since 42.0.0) 50d5dd3e
42.1.4 (2017-08-01)
- Statements with non-zero fetchSize no longer require server-side named handle. This might cause issues when using old PostgreSQL versions (pre-8.4)+fetchSize+interleaved ResultSet processing combo. Issue 869
42.1.3 (2017-07-14)
- Fix NPE in PreparedStatement.executeBatch in case of empty batch (regression since 42.1.2). PR 867
42.1.2 (2017-07-12)
- Better logic for returning keyword detection. Previously, pgjdbc could be defeated by column names that contain returning, so pgjdbc failed to "return generated keys" as it considered statement as already having returning keyword PR 824 201daf1d
- Use server-prepared statements for batch inserts when prepareThreshold>0. Note: this enables batch to use server-prepared from the first executeBatch() execution (previously it waited for prepareThreshold executeBatch() calls) abc3d9d7
- Replication API: fix issue in #834 setting statusIntervalUpdate causes high CPU load. PR 835 59236b74
- NPE in PreparedStatement.executeBatch in case of empty batch. Fixed in 42.1.3
42.1.1 (2017-05-05)
- Fix infinite dates that might be corrupted when transferred in binary for certain JREs. For instance, 5881610-07-11 instead of infinity. 1e5bf563
42.1.0 (2017-05-04)
- Support fetching a REF_CURSOR using getObject PR 809
- Fix data being truncated in setCharacterStream (bug introduced in 42.0.0) PR 802
- Fix calculation of lastReceiveLSN for logical replication PR 801
- Make sure org.postgresql.Driver is loaded when accessing though DataSource interface Issue 768
- There's no 42.1.0.jre6 version due to infinity handling bug. Fixed in 42.1.1.jre6
42.0.0 (2017-02-20)
- Replication protocol API was added: replication API documentation. PR 550
- java.util.logging is now used for logging: logging documentation. PR 722
- Add support for PreparedStatement.setCharacterStream(int, Reader). ee4c4265
- Version bumped to 42.0.0 to avoid version clash with PostgreSQL version and follow a better sematic versioning. 46634923
- Ensure executeBatch() can be used with pgbouncer. Previously pgjdbc could use server-prepared statements for batch execution even with prepareThreshold=0. Issue 742
- Error position is displayed when SQL has unterminated literals, comments, etc. Issue 688
- Strict handling of accepted values in getBoolean and setObject(BOOLEAN), now it follows PostgreSQL accepted values, only 1 and 0 for numeric types are accepted (previously !=0 was true). PR 732
- Return correct versions and name of the driver. PR 668
- Support for PostgreSQL versions below 8.2 was dropped. PR 661
- Deprecated PGPoolingDataSource, instead of this class you should use a fully featured connection pool like HikariCP, vibur-dbcp, commons-dbcp, c3p0, etc. PR 739
- Data truncated in setCharacterStream. Fixed in 42.1.0
- No suitable driver found for jdbc:postgresql when using a DataSource implementation. Fixed in 42.1.0