The Wayback Machine - https://web.archive.org/web/20210727155857/https://jdbc.postgresql.org/documentation/changelog.html
Skip site navigation (1) Skip section navigation (2)

History of Changes

Introduction and explanation of symbols

Changes are sorted by "type" and then chronologically with the most recent at the top. These symbols denote the various action types:add=add, fix=fix, remove=remove, update=update


Version 42.2.23 (2021-07-06)

Notable changes

Changed

  • renewed the SSL keys for testing ### Added

Fixed

  • getColumnPrecision for Numeric when scale and precision not specified now returns 0 instead of 131089 fixes: Issue #2188
  • Calling refreshRow on an updateable resultset made the row readOnly. Fixes Issue #2193
  • results should be updateable if there is a unique index available PR#2199 Fixes Issue #2196
  • Rework sql type gathering to use OID instead of typname. This does not have the issue of name shadowing / qual-names, and has the added benefit of fixing #1948.

42.2.22

Changed

Added

Fixed

  • Regression caused by https://github.com/pgjdbc/pgjdbc/commit/4fa2d5bc1ed8c0086a3a197fc1c28f7173d53cac. Unfortunately due to the blocking nature of the driver and issues with seeing if there is a byte available on a blocking stream when it is encrypted this introduces unacceptable delays in returning from peek(). At this time there is no simple solution to this.

42.2.21

Changed

  • update docs to reflect deprecated DataSource API setServerName backpatch PR#2057 PR #2105

Added

Fixed

  • make sure the table has defined primary keys when using updateable resultset backpatch PR#2101 fixes Issue 1975 PR #2106
  • backpatch PR #2143 read notifies or errors that come in asynchronously after the ready for query PR #2168
  • backpatch PR #507 which reworks OSGI bundle activator fixes ISSUE #2133
  • Fix database metadata getFunctions() and getProcedures() to ignore search_path when no schema pattern is specified. backpatch PR #2174 fixes Issue 2173

42.2.20

Changed

Added

Fixed

  • Partitioned indexes were not found fixes #2078 PR #2087

  • isValid() timeout should not be blocked #1943 Cherry-picked #2076 The usage of setQueryTimeout(); with the same value as the setNetworkTimeout(); is blocking the current transaction timeout. The timeouts are blocking each other with this approach.

  • DatabaseMetaData.getTables returns columns in UPPER case as per the spec PR #2092 fixes Issue #830

42.2.19

Notable Changes - Now the driver uses SASLprep normalization for SCRAM authentication fixing some issues with spaces in passwords. - If closeOnCompletion is called on an existing statement and the statement is executed a second time it will fail.

Changed

  • Perf: avoid duplicate PGStream#changeSocket calls
  • Fix: Actually close unclosed results. Previously was not closing the first unclosed result fixes #1903 (#1905) There is a small behaviour change here as a result. If closeOnCompletion is called on an existing statement and the statement is executed a second time it will fail.

Added

  • Verify code via forbidden-apis (jdk-internal and jdk-non-portable signatures) PR #2012

Fixed

  • Fix Binary transfer for numeric fixes #1935
  • Fix Allow specifying binaryTransferEnable even for those types that are not enabled by default
  • Fix: properly set cancel socket timeout (#2044)
  • Fix "Required class information missing" when old org.jboss:jandex parses pgjdbc classes [issue 2008][https://github.com/pgjdbc/pgjdbc/issues/2008]
  • Fix PGCopyInputStream returning the last row twice when reading with CopyOut API [issue 2016][https://github.com/pgjdbc/pgjdbc/issues/2016]
  • Fix Connnection.isValid() to not wait longer than existing network timeout PR #2040
  • Fix Passwords with spaces (ASCII and non-ASCII) now work with SCRAM authentication (driver now uses SASLprep normalization) PR #2052
  • Fix DatabaseMetaData.getTablePrivileges() to include views, materialized views, and foreign tables PR #2049
  • Fix Resolve ParseError in PGtokenizer fixes #2050
  • Fix return metadata privileges for views and foreign tables

[42.2.18]

Fixed

  • Unfortunately changing the default of gssEncMode to ALLOW was not enough. The GSSEncMode Enum was not changed as well fixed in #1920

[42.2.17]

Changed

  • Change default of gssEncMode to ALLOW. PostgreSQL can deal with PREFER but there are cloud providers that did not implement the protocol properly. Libpq gets around this by checking for a GSS credential cache before attempting the connection. This is possible in JDK 8 and up, but not JDK6, or JDK7 fixes Issue #1868 PR #1913

Added

  • Add smallserial metadata [PR #899(https://github.com/pgjdbc/pgjdbc/pull/899)

Fixed

  • Avoid NullPointerException when receiving PGbox, PGcircle, PGline, PGlseg, PGpath, PGpoint, PGpolygon, and PGmoney PR 1873.
  • The driver returns enum and jsonb arrays elements as String objects (like in 42.2.14 and earlier versions) PR 1879.
  • PgTokenizer was ignoring last empty token PR #1882
  • Remove osgi from karaf fixes Issue #1891 PR #1902

42.2.16

Known issues

  • The driver returns enum and jsonb arrays elements are returned as PGobject instances (fixed in 42.2.17)

Fixed

  • Arrays sent in binary format are now sent as 1 based. This was a regression for multi-dimensional arrays as well as text/varchar, oid and bytea arrays. Since 42.2.0 single dimensional arrays were stored 0 based. They are now sent 1 based which is the SQL standard, and the default for Postgres when sent as strings such as '{1,2,3}'. Fixes issue 1860 in PR 1863.

42.2.15

Known issues

  • The driver returns enum and jsonb arrays elements are returned as PGobject instances (fixed in 42.2.17)

Changed

  • Rename source distribution archive to postgresql-$version-jdbc-src.tar.gz, and add top-level archive folder ba017507
  • Add the ability to connect with a GSSAPI encrypted connection. As of PostgreSQL version 12 GSSAPI encrypted connections are possible. Now the driver will attempt to connect to the server with a GSSAPI encrypted connection. If that fails then attempt an SSL connection, finally falling back to a plain text connection. All of this is controlled using both the gssEncMode and sslMode parameters which, in concert with pg_hba.conf, determine if a particular mode is allowed and or required. PR 1821 ad921b9e
  • Source release archive shades dependencies (scram) by default. It affects only postgresql-version-src.tar.gz release artifact f0301eb9
  • Refactor decoding arrays PR 1194

Added

  • Verify nullness with CheckerFramework 6e524ae5

Fixed

  • Avoid preparedStatement leak when using updateable ResultSet via insert/update/refreshRow PR 1815 9a0d2b18
  • Change order of checks for oid vs primary keys. OID's have been deprecated. PR 1613
  • Close certificate file stream. PR 1837
  • Make sure socketTimeout is enforced PR 1831
  • Assume PKCS-8 SSL key format by default PR 1819
  • Preserve unquoted unicode whitespace in array literals PR 1266

42.2.14

Changed

  • Reverted com.github.waffle:waffle-jna, org.osgi:org.osgi.core, org.osgi:org.osgi.enterprise dependencies to optional=true in Maven PR 1797.

42.2.13

Notable Changes

  • Security: The primary reason to release this version and to continue the 42.2.x branch is for CVE-2020-13692. Reported by David Dworken, this is an XXE and more information can be found here. Sehrope Sarkuni reworked the XML parsing to provide a solution in commit 14b62aca4.
  • The build system has been changed to Gradle thanks to Vladimir PR 1627.
  • Regression: com.github.waffle:waffle-jna, org.osgi:org.osgi.core, org.osgi:org.osgi.enterprise dependencies are listed as non-optional issue 1975.

Changed

Added

  • jre-6 was added back to allow us to release fixes for all artifacts in the 42.2.x branch PR 1787

Fixed

  • I/O error ru translation PR 1756
  • Issue 1771 PgDatabaseMetaData.getFunctions() returns procedures fixed in PR 1774
  • getTypeMap() returning null PR 1781
  • Updated openssl example command PR 1763
  • fix documentation with ordered list to be displayed correctly PR 1783

42.2.12

Notable changes

We have released 42.2.12 to correct regressions in this version: Specifically - PR 1729 was reverted as this is a breaking change - PR 1719 has been reverted as it introduced errors in the PgType Cache

We recommend that version 42.2.11 not be used.

Changed

  • reverted PR 1729 throw an error instead of silently rolling back a commit error. This change introduced a breaking change which will be moved to 42.3.0
  • reverted PR 1719 add support for full names of data types (#1719)

42.2.11

Notable changes As mentioned above this version is broken and should not be used.

Changed

  • Reverted PR 1641. The driver will now wait for EOF when sending cancel signals.
  • DatabaseMetaData#getProcedures returns only procedures (not functions) for PostgreSQL 11+ PR 1723
  • Convert silent rollbacks into exception if application sends commit or xa.prepare command PR 1729

Added

  • feat: raiseExceptionOnSilentRollback connection option to configure if silent rollback should raise an exception PR 1729
  • feat: Expose ByteStreamWriter in CopyManager PR 1702
  • feat: add way to distinguish base and partitioned tables in PgDatabaseMetaData.getTables PR 1708
  • refactor: introduce tuple abstraction (rebased) PR 1701
  • refactor: make PSQLState enum consts for integrity constraint violations PR 1699
  • test: add makefile to create ssl certs PR 1706

Fixed

  • fix: Always use . as decimal separator in PGInterval PR 1705
  • fix: allow DatabaseMetaData.getColumns to describe an unset scale PR 1716

Changed

  • Build system update from Maven to Gradle PR 1627

Added

  • docker-compose image for creating test databases (see docker folder)

42.2.10

Changed

  • (!) Regression: remove receiving EOF from backend after cancel PR 1641. The regression is that the subsequent query might receive the cancel signal.

Added

  • Add maxResultBuffer property PR 1657
  • add caller push of binary data (rebase of #953) PR 1659

Fixed

  • Cleanup PGProperty, sort values, and add some missing to docs PR 1686
  • Fixing LocalTime rounding (losing precision) PR 1570
  • Network Performance of PgDatabaseMetaData.getTypeInfo() method PR 1668
  • Issue #1680 updating a boolean field requires special handling to set it to t or f instead of true or false PR 1682
  • bug in pgstream for replication PR 1681
  • Issue #1677 NumberFormatException when fetching PGInterval with small value PR 1678
  • Metadata queries improvements with large schemas. PR 1673
  • Utf 8 encoding optimizations PR 1444
  • interval overflow PR 1658
  • Issue #1482 where the port was being added to the GSSAPI service name PR 1651
  • remove receiving EOF from backend after cancel since according to protocol the server closes the connection once cancel is sent (connection reset exception is always thrown) PR 1641
  • Unable to register out parameter Issue #1646 PR 1648

42.2.9

Changed

Added

  • read only transactions PR 1252
  • pkcs12 key functionality PR 1599
  • new "escapeSyntaxCallMode" connection property PR 1560
  • connection property to limit server error detail in exception exceptions PR 1579
  • cancelQuery() to PGConnection public interface PR 1157
  • support for large update counts (JDBC 4.2) PR 935
  • Add Binary Support for Oid.NUMERIC and Oid.NUMERIC_ARRAY PR 1636

Fixed

  • issue 716 getTypeInfo() may not return data in the order specified in Oracle documentation PR 1506
  • PgSQLXML setCharacterStream() results in null value PR 1608
  • get correct column length for simple domains PR 1605
  • NPE as a result of calling executeQuery twice on a statement fixes issue #684 PR 1610
  • handle numeric domain types PR 1611
  • pginterval to take iso8601 strings PR 1612
  • remove currentTimeMillis from code, tests are OK PR 1617
  • NPE when calling setNull on a PreparedStatement with no parameters PR 1620
  • allow OUT parameter registration when using CallableStatement native CALL PR 1561
  • add release save point into execute with batch PR 1583
  • Prevent use of extended query protocol for BEGIN before COPY PR 1639

42.2.8

Changed

Added

Fixed

  • fix: Revert inet default Java type to PGObject and handle values with net masks PR 1568

42.2.7

Changed

Added

  • Expose parameter status messages (GUC_REPORT) to the user PR 1435
  • Add automatic module name to manifest for jdk9+ PR 1538
  • Log ignoring rollback when no transaction in progress PR 1549
  • Map inet type to InetAddress PR 1527 issue 1134

Fixed

  • fix issue 1547 As long as peek returns some bytes do not reset the timeout, this allows us to continue checking until any async notifies are consumed PR 1548
  • fix: issue 1466 In logical decoding the if the backend was requesting a reply we… PR 1467
  • fix: issue 1534 Proleptic java.time support PR 1539
  • fix Ensure isValid() will not last more than timeout seconds PR 1557 ## 42.2.6 ### Known issues
  • 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 ### Changed
  • Change ISGENERATED to ISGENERATEDCOLUMN as per spec PR 1485
  • Fix missing metadata columns, and misspelled columns in PgDatabaseMetaData#getTables PR 1323

Added

  • 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

  • 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

Known issues

Changed

  • ssl=true implies sslmode=verify-full, that is it requires valid server certificate cdeeaca4

targetServerType=master has been deprecated in favour of targetServerType=primary. master will still be accepted but not documented.

Added

  • Support for sslmode=allow/prefer/require cdeeaca4

Fixed

  • 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

Changed

  • PreparedStatement.setNull(int parameterIndex, int t, String typeName) no longer ignores the typeName argument if it is not null PR 1160

Fixed

  • Fix treatment of SQLTSIYEAR, SQLTSIWEEK, SQLTSIMINUTE PR 1250
  • Map integrity constraint violation to XARBINTEGRITY instead of XAERRMFAIL PR 1175 f2d1352c

42.2.3

Known issues

  • SQLTSIYEAR is treated as hour, SQLTSIWEEK is treated as hour, SQLTSIMINUTE is treated as second

Changed

  • 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

Fixed

  • 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

Added

  • Documentation on server-side prepared statements PR 1135

Fixed

  • Avoid failure for insert ... on conflict...update for reWriteBatchedInserts=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

Known issues

  • client_encoding has to be UTF8 even with allowEncodingChanges=true

Changed

  • socksProxyHost is ignored in case it contains empty string PR 1079

Fixed

  • Avoid connection failure when DateStyle is set to ISO (~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 pgcatalog.pgget_keywords(). PR 940

42.2.0

Known issues

  • SCRAM does not work as scram:client library is not packaged
  • client_encoding has to be UTF8 even with allowEncodingChanges=true

Added

  • 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

Changed

  • 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

Fixed

  • 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

Removed

  • Drop support for the (insecure) crypt authentication method. PR 1026

Deprecated

  • 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

Changed

  • 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

Fixed

  • Fix NPE in PreparedStatement.executeBatch in case of empty batch (regression since 42.1.2). PR 867

42.1.2

Changed

  • 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

Fixed

  • Replication API: fix issue in #834 setting statusIntervalUpdate causes high CPU load. PR 835 59236b74

Regresions

  • NPE in PreparedStatement.executeBatch in case of empty batch. Fixed in 42.1.3

42.1.1

Fixed

  • 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

Added

  • Support fetching a REF_CURSOR using getObject PR 809

Fixed

  • 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

Regressions

  • There's no 42.1.0.jre6 version due to infinity handling bug. Fixed in 42.1.1.jre6

42.0.0

Added

Changed

  • 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

Removed

  • Support for PostgreSQL versions below 8.2 was dropped. PR 661

Deprecated

  • Deprecated PGPoolingDataSource, instead of this class you should use a fully featured connection pool like HikariCP, vibur-dbcp, commons-dbcp, c3p0, etc. PR 739

Regressions

  • 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

Commits by author

Dave Cramer (2):

Backpatch fixupdateable  (#2200)
* fix: back patch results should be updateable PR#2199
* test: Regenerate TLS certs with new expirations (#2201)
backpatch [PR 1949](https://github.com/pgjdbc/pgjdbc/pull/1949) (#2206)

Version 42.2.22 (2021-06-16)

Notable changes

Changed

Added

Fixed

  • Regression caused by https://github.com/pgjdbc/pgjdbc/commit/4fa2d5bc1ed8c0086a3a197fc1c28f7173d53cac. Unfortunately due to the blocking nature of the driver and issues with seeing if there is a byte available on a blocking stream when it is encrypted this introduces unacceptable delays in returning from peek(). At this time there is no simple solution to this.

Commits by author

Dave Cramer (1):

Version 42.2.21 (2021-06-10)

Notable changes

Changed

  • update docs to reflect deprecated DataSource API setServerName backpatch PR#2057 PR #2105

Added

Fixed

  • make sure the table has defined primary keys when using updateable resultset backpatch PR#2101 fixes Issue 1975 PR #2106
  • backpatch PR #2143 read notifies or errors that come in asynchronously after the ready for query PR #2168
  • backpatch PR #507 which reworks OSGI bundle activator fixes ISSUE #2133
  • Fix database metadata getFunctions() and getProcedures() to ignore search_path when no schema pattern is specified. backpatch PR #2174 fixes Issue 2173

Commits by author

Dave Cramer (5): - fix: make sure the table have defined primary keys when using updateable resultset PR 2101 (#2106) update docs to reflect deprecated DataSource API setServerName PR 2057 (#2105) - fix: backpatch PRPR 507 which reworks OSGI bundle activator fixes ISSUE #2133 (#2166) - fix: backpatch2142 read notifies or errors that come in asynchronously after the ready for query PR 2168 - fix: backpatch PRPR 2174 to Fix metadata functions getProcedures() and getFunctions() to ignore search_path (#2175)

Version 42.2.20 (2021-04-19)

Notable changes

Changed

Added

Fixed

  • fix: Partitioned indexes were not found fixes #2078 PR #2087

  • isValid() timeout should not be blocked #1943 Cherry-picked #2076 The usage of setQueryTimeout(); with the same value as the setNetworkTimeout(); is blocking the current transaction timeout. The timeouts are blocking each other with this approach.

  • DatabaseMetaData.getTables returns columns in UPPER case as per the spec PR #2092 fixes Issue #830

Commits by author

Dave Cramer (10): move comments to correct location [PR 2070](https://github.com/pgjdbc/pgjdbc/pull/2070 Update Changelog to reflect changes in 42.2.19 [PR 2063](https://github.com/pgjdbc/pgjdbc/pull/2063 fix: Partitioned indexes were not found fixes [PR 2078](https://github.com/pgjdbc/pgjdbc/pull/2078 (#2087) cherry-pick PR [PR 2092](https://github.com/pgjdbc/pgjdbc/pull/2092 PgDatabaseMetaData.getTables() should return UPPERCASE column names as per spec (#2104)

Hugo Abreu (1): isValid() timeout should not be blocked [PR 1943](https://github.com/pgjdbc/pgjdbc/pull/1943 (#2076)

Version 42.2.19 (2021-02-18)

Notable changes

Changed

  • Now the driver uses SASLprep normalization for SCRAM authentication fixing some issues with spaces in passwords.
  • Fix: Actually close unclosed results. Previously was not closing the first unclosed result fixes #1903 (#1905) There is a small behaviour change here as a result. If closeOnCompletion is called on an existing statement and the statement is executed a second time it will fail.

Added

  • Verify code via forbidden-apis (jdk-internal and jdk-non-portable signatures) PR #2012

Fixed

  • Fix: properly set cancel socket timeout (#2044)
  • Fix "Required class information missing" when old org.jboss:jandex parses pgjdbc classes [issue 2008][https://github.com/pgjdbc/pgjdbc/issues/2008]
  • Fix PGCopyInputStream returning the last row twice when reading with CopyOut API [issue 2016][https://github.com/pgjdbc/pgjdbc/issues/2016]
  • Fix Connnection.isValid() to not wait longer than existing network timeout PR #2040
  • Fix Passwords with spaces (ASCII and non-ASCII) now work with SCRAM authentication (driver now uses SASLprep normalization) PR #2052
  • Fix DatabaseMetaData.getTablePrivileges() to include views, materialized views, and foreign tables PR #2049

Commits by author

Dave Cramer (5):

Jeremy Mailen (3):

  • fix: return metadata privileges for views and foreign tables 66690817
  • refactor: consolidate repeated drop code in TestUtil f5abc65c
  • test: Add test for ACLs returned from metadata getTablePrivileges() for views a6cf67d2

Jorge Solórzano (1):

  • fix: Use SASLprep normalization for SCRAM authentication PR 2052 b4800044

Pavel Bludov (2):

  • chore: javadoc changes in PgResultSet.java to pass upcoming checkstyle version 70471c25
  • chore: javadoc changes in Driver.java to pass upcoming checkstyle version c57ac5eb

Power (1):

  • fix: isValid() should not wait longer than network timeout 0dbc6078

Roman Kozlov (1):

Sehrope Sarkuni (5):

  • test: Add tests for broken PGCopyInputStream.readFromCopy() c6794f09
  • fix: Fix last row duplicated in PGCopyInputStream.readFromCopy() 6c296a52
  • test: Add TestUtils.closeQuietly(...) c152f7f0
  • test: Add StrangeProxyServer 8f773a15
  • docs: Add getTablePrivileges() fix to changelog 444cb1b1

Vladimir Sitnikov (14):

  • chore: make javadoc optional for building from a reduced-pom.xml 736eb70d
  • chore: make buildSrc.jar reproducible ff0774da
  • chore: use cleanup-gradle-cache for Travis cache cleanup 0e0ae208
  • fix: allow specifying binaryTransferEnable even for those types that are not enabled by default ed5891e3
  • fix: binary transfer for numeric PR 1935 a4173079
  • chore: update Gradle 6.3 -> 6.7.1 PR 2011 dbb12e41
  • chore: verify code via forbidden-apis (jdk-internal and jdk-non-portable signatures) 991a9c0b
  • chore: add org.postgresql.util.internal.Unsafe for forbidden-apis suppressions 6e3be122
  • fix: "Required class information missing" when old org.jboss:jandex parses pgjdbc classes (PR PR 2010 2df6c97b
  • test: set gssEncMode only in case it is not already present in Properties 97f6abd1
  • test: temporarily allow CONNECTIONUNABLETO_CONNECT in SslTest for bad client certificates 5f584cd4
  • perf: avoid duplicate PGStream#changeSocket calls b7e70d85
  • chore: cancel stale workflows in GitHub Actions CI d255bd21
  • doc: update README link from travis-ci.org to travis-ci.com 1bd679e8

odubaj (1):

  • Remove dependency on java-comment-preprocesor df2297ef

rtrier (1):

Contributors to this release

We thank the following people for their contributions to this release.

Dave Cramer
Jeremy Mailen
Jorge Solórzano
odubaj
Pavel Bludov
Power
Roman Kozlov
rtrier
Sehrope Sarkuni
Vladimir Sitnikov

Version 42.2.18 (2020-10-15)

Notable changes

Fixed

  • Unfortunately changing the default of gssEncMode to ALLOW was not enough. The GSSEncMode Enum was not changed as well fixed in #1920

Commits by author

Contributors to this release

We thank the following people for their contributions to this release.

Version 42.2.17 (2020-10-09)

Notable changes

Changed

  • Change default of gssEncMode to ALLOW. PostgreSQL can deal with PREFER but there are cloud providers that did not implement the protocol properly. Libpq gets around this by checking for a GSS credential cache before attempting the connection. This is possible in JDK 8 and up, but not JDK6, or JDK7 fixes Issue #1868 PR #1913

Added

  • Add smallserial metadata [PR #899(https://github.com/pgjdbc/pgjdbc/pull/899)

Fixed

  • Avoid NullPointerException when receiving PGbox, PGcircle, PGline, PGlseg, PGpath, PGpoint, PGpolygon, and PGmoney PR 1873..
  • The driver returns enum and jsonb arrays elements as String objects (like in 42.2.14 and earlier versions) PR 1879.
  • PgTokenizer was ignoring last empty token PR #1882
  • Remove osgi from karaf fixes Issue #1891 PR #1902

Commits by author

Dave Cramer (5):

  • fix: PgTokenizer was ignoring last empty token PR 1882 a6e83342
  • fix checkstyle PR 1888 70b02c55
  • fix: handle smallserial correctly fixes PR 1897 (#1899) d4a4b2d6
  • fix:remove osgi from karaf fixes Issue PR 1891 (#1902) 0c2858e9
  • Change default of gssEncMode to ALLOW. PostgreSQL can deal with PREFER but there are cloud providers that did not implement the protocol properly 14c4173c

Jorge Solorzano (1):

Vladimir Sitnikov (8):

  • fix: handle nulls when the following clasess are used: PGbox, PGcircle, PGline, PGlseg, PGpath, PGpoint, PGpolygon, and PGmoney c745f4e5
  • chore: fix compileJava7 and compileJava6 0308ffca
  • chore: run GitHub actions when branch name has slash 433817d6
  • chore: seed build cache only when credentials exist (==skip on forks) eec708a8
  • test: add GitHub CI for testing source distribution 44d0923f
  • test: add tests for enum, json, and jsonb array 1bec4022
  • fix: make enum, json, and jsonb array result classes to be the same as 42.2.14 and earlier PR 1876 41855018
  • fix: avoid removal type annotations on "this" so the source archive is buildable 832bf21c

Contributors to this release

We thank the following people for their contributions to this release.

Dave Cramer
Jorge Solorzano
Vladimir Sitnikov

Version 42.2.16 (2020-08-20)

Notable changes

Known issues

  • The driver returns enum and jsonb arrays elements are returned as PGobject instances (fixed in 42.2.17)

Fixed

  • Arrays sent in binary format are now sent as 1 based. This was a regression for multi-dimensional arrays as well as text/varchar, oid and bytea arrays. Since 42.2.0 single dimensional arrays were stored 0 based. They are now sent 1 based which is the SQL standard, and the default for Postgres when sent as strings such as '{1,2,3}'. Fixes issue 1860 in PR 1863.

Commits by author

Brett Okken (3):

Dave Cramer (3):

Sehrope Sarkuni (1):

Vladimir Sitnikov (3):

  • docs: add release notes for 42.2.15 PR 1858 0c162bc0 draderaws (1):

  • Fix header on existing Parameter Status doc page, and include entry in the index html page. PR 1845 99623077

Contributors to this release

We thank the following people for their contributions to this release.

Brett Okken
Dave Cramer
draderaws
Sehrope Sarkuni
Vladimir Sitnikov

Version 42.2.15 (2020-08-14)

Notable changes

Known issues

  • The driver returns enum and jsonb arrays elements are returned as PGobject instances (fixed in 42.2.17)

Changed

  • Rename source distribution archive to postgresql-$version-jdbc-src.tar.gz, and add top-level archive folder ba017507
  • Add the ability to connect with a GSSAPI encrypted connection. As of PostgreSQL version 12 GSSAPI encrypted connections are possible. Now the driver will attempt to connect to the server with a GSSAPI encrypted connection. If that fails then attempt an SSL connection, finally falling back to a plain text connection. All of this is controlled using both the gssEncMode and sslMode parameters which, in concert with pg_hba.conf, determine if a particular mode is allowed and or required. PR 1821 ad921b9e
  • Source release archive shades dependencies (scram) by default. It affects only postgresql-version-src.tar.gz release artifact f0301eb9
  • Refactor decoding arrays PR 1194 0fd09396

Added

  • Verify nullness with CheckerFramework 6e524ae5

Fixed

  • Avoid preparedStatement leak when using updateable ResultSet via insert/update/refreshRow PR 1815 9a0d2b18
  • Change order of checks for oid vs primary keys. OID's have been deprecated. PR 1613
  • Close certificate file stream. PR 1837 a40052c9
  • Make sure socketTimeout is enforced PR 1831 210b27a6
  • Assume PKCS-8 SSL key format by default PR 1819 80d4ed34
  • Preserve unquoted unicode whitespace in array literals PR 1266

Commits by author

Brett Okken (1):

Dave Cramer (12):

Eduardo Souza (1):

Mike Noordermeer (1):

Vladimir Sitnikov (18):

  • chore: configure method parameter wrapping in IntelliJ via editorconfig aa70d2f4
  • fix: avoid NPE when initializing SingleCertValidatingFactory with classpath resource and contextclassloader is null 0b7575a9
  • fix: avoid preparedStatement leak when using updateable ResultSet via insert/update/refreshRow PR 1815 9a0d2b18
  • chore: rename source distribution archive to postgresql-$version-jdbc-src.tar.gz, add top-level archive folder ba017507
  • chore: fix style in pgjbc/build.gradle.kts 44b12472
  • chore: move testgss to main.yml to avoid duplicate CI groups in GitHub Actions PR 1824 6d4dc763
  • tests: add gssEncMode to SslTest PR 1823 08bfc033
  • chore: add checkerframework for nullness verification 6e524ae5
  • doc: add null safety documentation to CONTRIBUTING.md 2ba3028e
  • refactor: add nullness annotations 529e5dc3
  • test: reduce stdout verbosity of CopyLargeFileTest aa190cce
  • chore: add S3 Gradle build cache 67155873
  • chore: collect Gradle Build Scan from CI jobs 8b3bf922
  • fix: nullability annotations for LruCache/Gettable/GettableHashMap 34cd4f93
  • chore: enable local build cache, and use burrunan/gradle-cache-action@v1 for GitHub Actions caching 3802b453
  • chore: shade dependencies when building from the source archive f0301eb9
  • fix: use Assertions#assertThrows instead of Assert#assertThrows to keep the code junit 4.12 compatible 075bd102
  • docs: update the current version in readme.md e901ff74

azraino (1):

pip25 (2):

Contributors to this release

We thank the following people for their contributions to this release.

azraino
Brett Okken
Dave Cramer
Eduardo Souza
Mike Noordermeer
pip25
Vladimir Sitnikov

Version 42.2.14 (2020-06-10)

Notable changes

Changed

  • Reverted com.github.waffle:waffle-jna, org.osgi:org.osgi.core, org.osgi:org.osgi.enterprise dependencies to optional=true in Maven PR 1797.

Commits by author

Dave Cramer (1): * fix release notes for 42.2.13 ecbc48ff

Sehrope Sarkuni (1): * Fix some changelog formatting and add link to XXE fix PR 1794 98a9bdca

Vladimir Sitnikov (2):

Contributors to this release

We thank the following people for their contributions to this release.

Dave Cramer
Sehrope Sarkuni
Vladimir Sitnikov

Version 42.2.13 (2020-06-04)

Notable changes

The primary reason to release this version and to continue the 42.2.x branch is for CVE-2020-13692. Reported by David Dworken this is an XXE and more information can be found here Sehrope Sarkuni reworked the XML parsing to provide a solution in commit 14b62aca4 The build system has been changed to Gradle thanks to Vladimir PR 1627 Regression: com.github.waffle:waffle-jna, org.osgi:org.osgi.core, org.osgi:org.osgi.enterprise dependencies are listed as non-optional issue 1975.

Added

  • jre-6 was added back to allow us to release fixes for all artifacts in the 42.2.x branch PR 1787

Fixed

  • I/O error ru translation PR 1756
  • Issue 1771 PgDatabaseMetaData.getFunctions() returns procedures fixed in PR 1774
  • getTypeMap() returning null PR 1781
  • Updated openssl example command PR 1763
  • fix documentation with ordered list to be displayed correctly PR 1783

Commits by author

Andrei Arkaev (1):

Benjamin van der Veen (1):

Dave Cramer (6):

ItaiFonio (1):

Jean-Christophe Arnu (1):

Kim Johan Andersson (1):

  • Use generatedKeys to fetch sequence values on insertRow() PR 1743 9f398c53

Sehrope Sarkuni (2):

  • fix: Update checkstyle command in PR template to reference gradle PR 1780 4ddbcb7d
  • Merge pull request from GHSA-37xm-4h3m-5w3v 14b62aca

Vladimir Sitnikov (14):

  • chore: migrate build scripts to Gradle 9f396707
  • Add source distribution d2e4f585
  • Re-add benchmarks module 409bd25a
  • Fix comparisons in travis_build.sh b80ebcef
  • Configure core.autocrlf in AppVeyor cb370106
  • Inline COPYERRORMESSAGE so it can be localized properly 9a0dbf1b
  • chore: update po files with the current messages bb36e362
  • chore: make benchmarks executable from IDEA 99ba94ec
  • chore: move code style verification to GitHub Actions job 9da29740
  • chore: show the current PostgreSQL HEAD commit id in Travis log 332b0719
  • chore: re-add pgjdbc-jre6 build PR 1787 d224acd0
  • chore: use REL$buildVersion for the release version as it was previously 148840d3
  • chore: fix artifactid and version for -jre6 and -jre7 artifacts 97e2e8f5
  • chore: include META-INF/services/java.sql.Driver for jre7 and jre6 jars 5ca2b9e7

kili668 (1):

Contributors to this release

We thank the following people for their contributions to this release.

Andrei Arkaev Benjamin van der Veen Dave Cramer ItaiFonio Jean-Christophe Arnu kili668 Kim Johan Andersson Sehrope Sarkuni Vladimir Sitnikov

Version 42.2.12 (2020-03-31)

Notable changes

Changed

  • reverted PR 1729 throw an error instead of silently rolling back a commit error. This change introduced a breaking change which will be moved to 42.3.0
  • reverted PR 1719 add support for full names of data types (#1719)

Commits by author

Christian Ramseyer (1):

Dave Cramer (1):

  • Revert "fix: convert silent rollbacks into exception if application sends commit command PR 1729" (#1746) 14576f4b

Vladimir Sitnikov (1):

Contributors to this release

We thank the following people for their contributions to this release.

Christian Ramseyer
Dave Cramer
Vladimir Sitnikov

Version 42.2.11 (2020-03-09)

Notable changes

We have released 42.2.12 to correct regressions in this version: Specifically - PR 1729 was reverted as this is a breaking change - PR 1719 has been reverted as it introduced errors in the PgType Cache

We recommend that this version 42.2.11 not be used.

Changed

  • Reverted PR 1641. The driver will now wait for EOF when sending cancel signals.
  • DatabaseMetaData#getProcedures returns only procedures (not functions) for PostgreSQL 11+ PR 1723
  • Convert silent rollbacks into exception if application sends commit or xa.prepare command PR 1729

Added

  • Convert silent rollbacks into exception if application sends commit or xa.prepare command PR 1729
  • feat: Expose ByteStreamWriter in CopyManager PR 1702
  • feat: add way to distinguish base and partitioned tables in PgDatabaseMetaData.getTables PR 1708
  • refactor: introduce tuple abstraction (rebased) PR 1701
  • refactor: make PSQLState enum consts for integrity constraint violations PR 1699
  • test: add makefile to create ssl certs PR 1706

Fixed

  • fix: Always use . as decimal separator in PGInterval PR 1705
  • fix: allow DatabaseMetaData.getColumns to describe an unset scale PR 1716

Commits by author

Dave Cramer (4):

Lőrinc Pap (2):

Magnus Reftel (1):

Markus Winand (1):

Mike Goodman (4):

  • refactor: make PSQLState enum consts for integrity constraint violations PR 1699 cc31c13f
  • feat: add way to distinguish base and partitioned tables in PgDatabaseMetaData.getTables PR 1708 25eb32c8
  • fix: add support for full names of data types PR 1719 f554118a
  • fix: getProcedures returns only procedures (not functions) for psql11+ PR 1723 5fbe0462

Nick Mancuso (1):

Sehrope Sarkuni (2):

  • fix: Correct sort order of PGProperty.ASSUMEMINSERVER_VERSION 3ea08125
  • test: Add test to check sort order of PGProperty values aa1b93f1

Toddy69 (1):

Vladimir Sitnikov (11):

  • test: skip PKCS12KeyTest when enablessltests is not set 6730f3fe
  • test: add makefile for creating test certificates 202f88e1
  • Revert "fix: remove receiving EOF from backend after cancel since according to protocol the server closes the connection once cancel is sent (connection reset exception is always thrown) PR 1641" ca1f60ff
  • Revert "fix unstable test. Originally this would loop creating many statements, now it should timeout properly PR 1650" 5eabe1ae
  • style: compute nanoseconds with TimeUnit.SECONDS.toNanos b004c706
  • revert: use simple executor.shutdown() in testFastCloses fc5467c6
  • Move CopyBothResponseTest to replication folder 2509b663
  • doc: fix HTML5 errors in javadoc 161ea249
  • fix: convert silent rollbacks into exception if application sends commit command PR 1729 adcb194e
  • chore: add continuationindentsize = 4 to .editorconfig for *.java 45d5831e
  • chore: remove endofline = lf from .editorconfig for .java 7ce254d2

adrklos (1):

crwr45 (1):

  • fix: allow DatabaseMetaData.getColumns to describe an unset scale PR 1716 30843e45

Contributors to this release

We thank the following people for their contributions to this release.

adrklos
crwr45
Dave Cramer
Lőrinc Pap
Magnus Reftel
Markus Winand
Mike Goodman
Nick Mancuso
Sehrope Sarkuni
Toddy69
Vladimir Sitnikov

Version 42.2.10 (2020-01-30)

Notable changes

Changed

  • (!) Regression: remove receiving EOF from backend after cancel PR 1641. The regression is that the subsequent query might receive the cancel signal.

Added

  • Add maxResultBuffer property PR 1657
  • add caller push of binary data (rebase of #953) PR 1659

Fixed

  • Cleanup PGProperty, sort values, and add some missing to docs PR 1686
  • Fixing LocalTime rounding (losing precision) PR 1570
  • Network Performance of PgDatabaseMetaData.getTypeInfo() method PR 1668
  • Issue #1680 updating a boolean field requires special handling to set it to t or f instead of true or false PR 1682
  • bug in pgstream for replication PR 1681
  • Issue #1677 NumberFormatException when fetching PGInterval with small value PR 1678
  • Metadata queries improvements with large schemas. PR 1673
  • Utf 8 encoding optimizations PR 1444
  • interval overflow PR 1658
  • Issue #1482 where the port was being added to the GSSAPI service name PR 1651
  • remove receiving EOF from backend after cancel since according to protocol the server closes the connection once cancel is sent (connection reset exception is always thrown) PR 1641
  • Unable to register out parameter Issue #1646 PR 1648

42.2.9

Changed

Added

  • read only transactions PR 1252
  • pkcs12 key functionality PR 1599
  • new "escapeSyntaxCallMode" connection property PR 1560
  • connection property to limit server error detail in exception exceptions PR 1579
  • cancelQuery() to PGConnection public interface PR 1157
  • support for large update counts (JDBC 4.2) PR 935
  • Add Binary Support for Oid.NUMERIC and Oid.NUMERIC_ARRAY PR 1636

Fixed

  • issue 716 getTypeInfo() may not return data in the order specified in Oracle documentation PR 1506
  • PgSQLXML setCharacterStream() results in null value PR 1608
  • get correct column length for simple domains PR 1605
  • NPE as a result of calling executeQuery twice on a statement fixes issue #684 PR 1610
  • handle numeric domain types PR 1611
  • pginterval to take iso8601 strings PR 1612
  • remove currentTimeMillis from code, tests are OK PR 1617
  • NPE when calling setNull on a PreparedStatement with no parameters PR 1620
  • allow OUT parameter registration when using CallableStatement native CALL PR 1561
  • add release save point into execute with batch PR 1583
  • Prevent use of extended query protocol for BEGIN before COPY PR 1639

Commits by author

Brett Okken (2):

Craig Ringer (1):

  • Prevent use of extended query protocol for BEGIN before COPY PR 1639 b3711537

Dave Cramer (33):

Dongming (1):

Frane Roje (1):

GregN (2):

  • feat: add new "escapeSyntaxCallMode" connection property PR 1560 d7559138
  • fix: allow OUT parameter registration when using CallableStatement native CALL PR 1561 ed74670f

Igor Volkov (1):

  • Fix exception on PGCopyOutputStream.close() after endCopy() PR 1574 (#1575) 539a0925

IvyDev0 (1):

  • fix: null pointer exception from PgResultSetMetaData when there's no column metadata PR 1615 08bd46bf

Jorge Solorzano (1):

Knut Wannheden (1):

Lőrinc Pap (1):

  • feat: add caller push of binary data (rebase of PR 953 (#1659) db228a4f

Mahmoud Bahaa (4):

  • Add Binary Support for Oid.NUMERIC and Oid.NUMERIC_ARRAY PR 1636 c85b149d
  • Only allow binary transfer for those Oids that the pgjdbc currently supports PR 1637 ad83cb33
  • Fix test case by changing executeQuery to execute PR 1642 1d47c3cc
  • fix: remove receiving EOF from backend after cancel since according to protocol the server closes the connection once cancel is sent (connection reset exception is always thrown) PR 1641 23cce8ad

Michail Nikolaev (1):

  • fix: do ssl handshake after socket timeout and buffer size settings PR 1584 e39a0be0

Pavel Raiskup (1):

  • rpm: drop BR on properties-maven-plugin 91186c08

Roman Ivanov (1):

Russell Briggs (1):

  • Fix Network Performance of PgDatabaseMetaData.getTypeInfo() method PR 1668 beb354eb

Sehrope Sarkuni (7):

Svein Baardsen (1):

  • fix: PR 1677 NumberFormatException when fetching PGInterval with small value (#1678) e38868b2

Tom Eicher (1):

  • fix: DataSources broken by connection failover urls PR 1039 (#1457) bd9485ef

Torsten Brodbeck (1):

Vladimir Sitnikov (1):

  • style: use fixed checkstyle version so the build does not depend on user machine d164cba2

Yuriy Yudin (1):

Zhenlei Huang (2):

adrklos (1):

bjanczak (1):

draderaws (2):

hyunkshinft (1):

reibitto (1):

rnveach (1):

Árpád Magosányi (2):

  • fix documentation on generating the pk8 key. closes: PR 1585 (#1586) 635cc865
  • security notice and clarifications on choosing the right cipher suite for client key PR 1591 c67b0b0b

Contributors to this release

We thank the following people for their contributions to this release.

adrklos
Árpád Magosányi
bjanczak
Brett Okken
Craig Ringer
Dave Cramer
Dongming
draderaws Frane Roje
[GregN](https://github.com/gregn123
hyunkshinft
Igor Volkov
IvyDev0
Jorge Solorzano
Knut Wannheden
Lőrinc Pap
Mahmoud Bahaa
Michail Nikolaev
Pavel Raiskup
reibitto
rnveach
Roman Ivanov
Russell Briggs
Sehrope Sarkuni
Svein Baardsen
Tom Eicher
Torsten Brodbeck
Vladimir Sitnikov
Yuriy Yudin Zhenlei Huang

Version 42.2.9 (2019-12-06)

Notable changes

Changed

Added

  • read only transactions PR 1252
  • pkcs12 key functionality PR 1599
  • new "escapeSyntaxCallMode" connection property PR 1560
  • connection property to limit server error detail in exception exceptions PR 1579
  • cancelQuery() to PGConnection public interface PR 1157
  • support for large update counts (JDBC 4.2) PR 935
  • Add Binary Support for Oid.NUMERIC and Oid.NUMERIC_ARRAY PR 1636

Fixed

  • issue 716 getTypeInfo() may not return data in the order specified in Oracle documentation PR 1506
  • PgSQLXML setCharacterStream() results in null value PR 1608
  • get correct column length for simple domains PR 1605
  • NPE as a result of calling executeQuery twice on a statement fixes issue #684 PR 1610
  • handle numeric domain types PR 1611
  • pginterval to take iso8601 strings PR 1612
  • remove currentTimeMillis from code, tests are OK PR 1617
  • NPE when calling setNull on a PreparedStatement with no parameters PR 1620
  • allow OUT parameter registration when using CallableStatement native CALL PR 1561
  • add release save point into execute with batch PR 1583
  • Prevent use of extended query protocol for BEGIN before COPY PR 1639

Commits by author

Brett Okken (1):

Craig Ringer (1):

  • Prevent use of extended query protocol for BEGIN before COPY PR 1639 b3711537

Dave Cramer (20):

Dongming (1):

GregN (2):

  • feat: add new "escapeSyntaxCallMode" connection property PR 1560 d7559138
  • fix: allow OUT parameter registration when using CallableStatement native CALL PR 1561 ed74670f

Igor Volkov (1):

  • Fix exception on PGCopyOutputStream.close() after endCopy() PR 1574 (#1575) 539a0925

IvyDev0 (1):

  • fix: null pointer exception from PgResultSetMetaData when there's no column metadata PR 1615 08bd46bf

Jorge Solorzano (1):

Knut Wannheden (1):

Mahmoud Bahaa (2):

  • Add Binary Support for Oid.NUMERIC and Oid.NUMERIC_ARRAY PR 1636 c85b149d
  • Only allow binary transfer for those Oids that the pgjdbc currently supports PR 1637 ad83cb33

Michail Nikolaev (1):

  • fix: do ssl handshake after socket timeout and buffer size settings PR 1584 e39a0be0

Pavel Raiskup (1):

  • rpm: drop BR on properties-maven-plugin 91186c08

Sehrope Sarkuni (5):

Tom Eicher (1):

  • fix: DataSources broken by connection failover urls PR 1039 (#1457) bd9485ef

Torsten Brodbeck (1):

Yuriy Yudin (1):

rnveach (1):

Árpád Magosányi (2):

  • fix documentation on generating the pk8 key. closes: PR 1585 (#1586) 635cc865
  • security notice and clarifications on choosing the right cipher suite for client key PR 1591 c67b0b0b

Contributors to this release

We thank the following people for their contributions to this release.

Árpád Magosányi
Brett Okken
Craig Ringer
Dave Cramer
Dongming
GregN
Igor Volkov
IvyDev0
Jorge Solorzano
Knut Wannheden
Mahmoud Bahaa
Michail Nikolaev
Pavel Raiskup
rnveach
Sehrope Sarkuni
Tom Eicher
Torsten Brodbeck
Yuriy Yudin

Version 42.2.8 (2019-09-13)

Notable changes

Changed

Added

Fixed

Commits by author

Sehrope Sarkuni (1):

  • fix: Revert inet default Java type to PGObject and handle values with net masks PR 1568 3df32f9

Contributors to this release

We thank the following people for their contributions to this release.

Dave Cramer
Sehrope Sarkuni

Version 42.2.7 (2019-09-10)

Notable changes

Changed

Added

  • Expose parameter status messages (GUC_REPORT) to the user PR 1435
  • Add automatic module name to manifest for jdk9+ PR 1538
  • Log ignoring rollback when no transaction in progress PR 1549
  • Map inet type to InetAddress PR 1527 issue 1134

Fixed

  • fix issue 1547 As long as peek returns some bytes do not reset the timeout, this allows us to continue checking until any async notifies are consumed PR 1548
  • fix: issue 1466 In logical decoding the if the backend was requesting a reply we… PR 1467
  • fix: issue 1534 Proleptic java.time support PR 1539
  • fix Ensure isValid() will not last more than timeout seconds PR 1557

Commits by author

Adrien (1):

  • Ensure isValid() will not last more than timeout seconds PR 1557 b2eaefe

Craig Ringer (2):

  • Expose parameter status messages (GUC_REPORT) to the user PR 1435 ce8333a
  • Make ConnectTimeout test accept NoRouteToHostException PR 1526 08d8129

Dave Cramer (8):

  • note that waffle 1.9.x is only supported in jre8 version Update README to point to new maven coordinates 58804e9
  • add automatic module name to manifest for jdk9+ PR 1538 0600990
  • fix issue 1547, as long as peek returns some bytes do not reset the timeout, this allows us to continue checking until any async notifies are consumed PR 1548 36a75cb
  • fix: In logical decoding the if the backend was requesting a reply we… PR 1467 f89e62c
  • Log ignoring rollback when no transaction in progress PR 1549 bda74d7
  • fix assertion message PR 1553 ba82948
  • remove failing tests for PostgreSQL version 8.3 add in tests for 11 89464a5
  • Fix travis parsing issue 634ac7d

Hajar Razip (2):

  • docs: add note on behavior of ResultSet.getString() PR 1286 (#1528) c30556c
  • docs: update resultset.md in head to reflect 94 PR 1528 (#1536) fc8efc9

Matteo Melli (1):

Myo Wai Thant (1):

Pavel Raiskup (2):

  • fix parent version in pgjdbc/pom.xml as well 3db55da
  • rpm: remove karaf plugin 8495127

Philippe Marschall (1):

Sehrope Sarkuni (2):

Steinar Bang (1):

  • Add an apache karaf feature for the PostgreSQL JDBC driver to fix PR 1552 (#1554) e2f6e9f

Tim Ward (1):

  • Check that JDBC Connections that are closed by the server do not report as valid PR 1533 56399ef

Vsevolod Kaimashnikov (1):

Contributors to this release

We thank the following people for their contributions to this release.

Adrien
Craig Ringer
Dave Cramer
Hajar Razip
Matteo Melli
Myo Wai Thant
Pavel Raiskup
Philippe Marschall
Sehrope Sarkuni
Steinar Bang
Tim Ward
Vsevolod Kaimashnikov

Version 42.2.6 (2019-06-18)

Notable changes

Known issues

  • 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

Changed

  • Change ISGENERATED to ISGENERATEDCOLUMN as per spec PR 1485
  • Fix missing metadata columns, and misspelled columns in PgDatabaseMetaData#getTables PR 1323

Added

  • 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

  • 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

Commits by author

Adam Brusselback (1):

  • Add method alias's for each property which didn't use the conventiona… PR 1436 0efcf81c

AlexElin (6):

Andrew Guibert (1):

Craig Ringer (2):

  • fix: NPE in PGXAConnection$ConnectionHandler.invoke() of .equals(null) PR 1365 cea5231b
  • Update waffle-jna to new artifact coordinates PR 1383 72dc692e

Dave Cramer (31):

Dmitriy Tseyler (1):

Doug Mayer (1):

  • Add core type delimiters into cache for array type OIDs. PR 1416 6a0960a6

Harry Chan (1):

Ivan Leskin (1):

Jorge Solorzano (2):

Kamal Kumlien (1):

Kevin Wooten (1):

Krzysztof Szafrański (1):

Marc Dean (1):

Mark Nguyen (1):

Mykola Nikishov (2):

Nikolai Ivanov (1):

Philip Sanetra (1):

  • feat: Extend ReplicationCreateSlotBuilder DSL to support temporary replications slots PR 1306 d514ceb5

Sehrope Sarkuni (4):

Sualeh Fatehi (2):

  • Fix: getFunctionColumns used to return ProcedureColumns, now returns function columns b8a86807
  • Update testing documents, and point to jackdb/pgjdbc-test-vm PR 1363 2a715a98

Tyson Andre (1):

Vladimir Sitnikov (9):

  • docs: reflect 42.2.5 release in readme.md d43398a5
  • perf: fix 1ms per async CopyAPI (regression since 42.2.5) PR 1314 e2623d63
  • chore: use openjdk7 to boostrap Travis CI images for JDK 6 PR 1366 cdfd49cf
  • test: avoid locale-dependent output in SetObject310Test ef14ceae
  • fix: date rounding errors for dates before 1970 b5653899
  • docs: update translation files 9fcaa98e
  • fix: temporary make LibPQFactory.ConsoleCallbackHandler public 95d8da60
  • Update pgjdbc-parent-poms to 1.1.6 to use updated waffle-jna f0a297db
  • Update changelog for 42.2.6 8944fa67

itchyny (1):

jajalvipul (1):

  • Added break statement to avoid the additional iterations in for loop PR 1406 6b13f7b7

kaiwangchen (1):

kazachka (2):

maltalex (1):

pbillen (1):

  • Allow setFlushedLSN(lsn) and setAppliedLSN(lsn) from outside main loop PR 1329 381cf45c

rnveach (1):

Contributors to this release

We thank the following people for their contributions to this release.

Adam Brusselback
AlexElin
Andrew Guibert
Craig Ringer
Dave Cramer
Dmitriy Tseyler
Doug Mayer
Harry Chan
itchyny
Ivan Leskin
jajalvipul
Jorge Solorzano
kaiwangchen
Kamal Kumlien
kazachka
Kevin Wooten
Krzysztof Szafrański
maltalex
Marc Dean
Mark Nguyen
Mykola Nikishov
Nikolai Ivanov
pbillen
Philip Sanetra
rnveach
Sehrope Sarkuni
Sualeh Fatehi
Tyson Andre
Vladimir Sitnikov

Version 42.2.5 (2018-08-27)

Notable changes

Known issues

Changed

  • ssl=true implies sslmode=verify-full, that is it requires valid server certificate cdeeaca4

Added

  • Support for sslmode=allow/prefer/require cdeeaca4

Fixed

  • 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

Commits by author

Christoph Berg (1):

Dave Cramer (4):

Kazuhiro Sera (1):

Kyotaro Horiguchi (1):

Sehrope Sarkuni (1):

Vladimir Sitnikov (12):

  • reflect 42.2.4 release in readme.md b99cea0d
  • doc: add SQL_TSI to the known issues for 42.2.3 [ci-skip] 2da319a0
  • docs: escape underscores in changelog otherwise it produces italic b1507f84
  • docs: typo in 42.2.3 changelog "minute->second" 5898cdf1
  • refactor: remove unused PgPreparedStatement.adjustIndex PR 1253 178eecc9
  • test: run testShortQueryTimeout in PG_VERSION=HEAD Travis job only PR 1270 ecd412e4
  • fix: remove POT-Creation-Date from generated .po and .pot files PR 1269 450a496b
  • fix: use UTF-8 encoding in generated translation/messages_*.java files 2cbe7b35
  • fix: typo in "One ore more ClientInfo failed" error message [ci skip] 21e126f4
  • fix: IndexOutOfBounds on prepared multistatement with insert values PR 1289 c2885dd0
  • security: implement SSL hostname verification for non-default (LibPQFactory) SSL factories (CVE-2018-10936) cdeeaca4
  • Update changelog for 42.2.5 237a89bf

Contributors to this release

We thank the following people for their contributions to this release.

Christoph Berg
Dave Cramer
Kazuhiro Sera
Kyotaro Horiguchi
Sehrope Sarkuni
Vladimir Sitnikov

Version 42.2.4 (2018-07-14)

Notable changes

Changed

  • PreparedStatement.setNull(int parameterIndex, int t, String typeName) no longer ignores the typeName argument if it is not null PR 1160

Fixed

  • 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

Commits by author

Christian Kotzbauer (1):

Dave Cramer (3):

  • use the correct date for the release 985b63b7
  • also fix spelling of error b0162c0a
  • fix: setNull for types not in java.sql.Types (e.g. uuid) PR 1160 6287c954

Jan Van den Bergh (1):

  • fix: map integrity constraint violation to XA_RBINTEGRITY instead of XAER_RMFAIL PR 1175 f2d1352c

Pavel Raiskup (1):

  • packaging: sync RPM spec with Fedora Rawhide cc545d28

Vladimir Sitnikov (2):

  • docs: fix broken commit link in 42.2.3 changelog 776e1717
  • fix: treatment of SQL_TSI_YEAR, SQL_TSI_WEEK, SQL_TSI_MINUTE PR 1250 4668f43f

Contributors to this release

We thank the following people for their contributions to this release.

Christian Kotzbauer
Dave Cramer
Jan Van den Bergh
Pavel Raiskup
Vladimir Sitnikov

Version 42.2.3 (2018-07-12)

Notable changes

Known issues

  • SQL_TSI_YEAR is treated as hour, SQL_TSI_WEEK is treated as hour, SQL_TSI_MINUTE is treated as second (fixed in 42.2.4)

Changed

  • 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

Fixed

  • 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

Commits by author

AlBundy33 (1):

  • fix: support parenthesis in {oj ...} JDBC escape syntax PR 865 38356e68

AlexElin (3):

Dave Cramer (3):

Hari Babu Kommi (2):

Jesper Pedersen (1):

Jorge Solorzano (6):

KimBisgaardDmi (1):

Marc Slemko (1):

Michele Mancioppi (1):

Pavel Raiskup (1):

  • packaging: fix RPM build requirements 6bb72e69

Sidi Mohamed EL AATIFI (1):

Stephen Nelson (2):

Vladimir Sitnikov (19):

  • reflect 42.2.2 release in readme.md b1581e99
  • fix: avoid NPE in PgConnection.finalize PR 1206 03a1441b
  • chore: update gettext plugin, sort po files eb5c8fdd
  • chore: sort messages in *.po files 10fc2fbb
  • chore: remove obsolete translations ed1eab9e
  • doc: add Russian translation to "No IOException expected..." eaa0acad
  • fix: adjust date, hour, minute, second when rounding timestamp PR 1212 4dc98be8
  • chore: remove ubenchmark module due to licensing issues PR 1215 88ec13bb
  • chore: remove ubenchmark from packaging/rpm as well a699965a
  • fix: support query timeouts exceeding 2147483 seconds (~25 days) PR 1224 b7fd9f3c
  • perf: improve performance of replacing JDBC {...} escapes PR 1230 177f63be
  • docs: use union merge strategy for CHANGELOG PR 1107 70189203
  • chore: use 5432 as default port when running code from IDE 5dc03f63
  • docs: use "PR 42" references instead of "PRPR 42" in the changelog (#1239) f4ae60ec
  • test: close of replication connection has not been fixed at backend side, so disable the test till 12.1 PR 1243 481460a3
  • perf: avoid string allocation for oid/rows parsing in command tag PR 1232 da831de5
  • docs: prepare changelog for 42.2.3 release c5f5d8d2
  • chore: fetch contributors' URL via GitHub API d7297984
  • docs: update site for 42.2.3

bazzargh (1):

benbenw (2):

benoit (3):

  • perf: reduce memory allocations when JDBC escapes ({fn ...}) are used 2a1e0910
  • refactor: use singleArgumentFunctionCall in EscapedFunctions 191d84eb
  • perf: avoid BaseQueryKey.toString in CachedQuery.getSize PR 1227 669fc31e

bpd0018 (1):

Étienne BERSAC (1):

Contributors to this release

We thank the following people for their contributions to this release.

AlBundy33
AlexElin
bazzargh
benbenw
benoit
bpd0018
Dave Cramer
Étienne BERSAC
Hari Babu Kommi
Jesper Pedersen
Jorge Solorzano
KimBisgaardDmi
Marc Slemko
Michele Mancioppi
Pavel Raiskup
Sidi Mohamed EL AATIFI
Stephen Nelson
Vladimir Sitnikov

Version 42.2.2 (2018-03-15)

Notable changes

Added

  • Documentation on server-side prepared statements PR 1135

Fixed

  • Avoid failure for insert ... on conflict...update for reWriteBatchedInserts=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

Commits by author

Dave Cramer (5):

Jorge Solorzano (1):

Pawel (1):

Selene Feigl (1):

  • fix: wrong data from Blob/Clob when mark/reset is used PR 971 61e1c300

Simon Stelling (1):

  • fix: handle Timestamp values with fractional seconds < 1 microsecond correctly in PreparedStatement arguments PR 1119 8ff2a617

Vladimir Sitnikov (14):

  • docs: reflect 42.2.1 release in readme.md 1a4256b9
  • chore: make sure TEST_CLIENTS performs regular tests as well aa676bb3
  • chore: remove unused variable lastKnownTime in ConnectionFactoryImpl 48b98971
  • fix: ArrayIndexOutOfBoundsException when using the same SQL for regular and updateable resultset PR 1123 45c32bc6
  • fix: support insert ... on conflict...update for reWriteBatchedInserts=true PR 1130 1ca0c586
  • fix: allowEncodingChanges should allow set client_encoding=... PR 1125 af64ed2d
  • tests: UUID vs setString test PR 1133 5827858b
  • fix: UUID test for preferQueryMode=simple 44bb7f8d
  • fix: wrong results when a single statement is used with UNSPECIFIED types PR 1137 fcd1ea14
  • test: workaround DST issue in StatementTest#testDateFunctions af499625
  • docs: improve documentation and tests for server-side prepared statements PR 1135 4204f094
  • test: make testAlternatingBindType Java 6-compatible PR 1139 bcdd4273
  • fix: better support for RETURNING for WITH queries and queries with comments PR 1138 04e76661
  • chore: add contributor links to release script 2568d38e

bpd0018 (3):

chalda (1):

  • Adjust XAException return codes for better compatibility with XA specification PR 782 e5aab1cd

trtrmitya (1):

  • fix: use Locale.Category.DISPLAY (~lc_messages) when selecting resource bundle. PR 1115 0e9dfce4

Contributors to this release

We thank the following people for their contributions to this release.

Dave Cramer
Jorge Solorzano
Pawel
Selene Feigl
Simon Stelling
Vladimir Sitnikov
bpd0018
chalda
trtrmitya

Version 42.2.1 (2018-01-25)

Notable changes

Known issues

  • client_encoding has to be UTF8 even with allowEncodingChanges=true

Changed

  • socksProxyHost is ignored in case it contains empty string PR 1079

Fixed

  • Avoid connection failure when DateStyle is set to ISO (~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

Commits by author

AlexElin (1):

Alexander Kjäll (1):

  • feat: add support for fetching 'TIMESTAMP(6) WITHOUT TIME ZONE' as LocalDate to getObject() PR 1083 09af4b23

Dave Cramer (1):

  • fix: package scram:client classes, so SCRAM works when using a shaded jar PR 1091 1a89290e

Ivan (2):

JCzogalla (1):

Jamie Pullar (1):

  • fix: getPGArrayType fails in when stringType=unspecified PR 1036 d5f1cf7c

Jorge Solorzano (1):

Pavel Raiskup (1):

  • packaging: update Fedora's CI dcbf70bc

Vladimir Sitnikov (3):

  • docs: reflect 42.2.0 release in readme.md 6d02e958
  • fix: avoid connection failure when DateStyle is set to ISO PR 1081 e442db1f
  • fix: reWriteBatchedInserts=true causes syntax error with ON CONFLICT PR 1082 e133510e

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Alexander Kjäll
Dave Cramer
Ivan
JCzogalla
Jamie Pullar
Jorge Solorzano
Pavel Raiskup
Vladimir Sitnikov

Version 42.2.0 (2018-01-17)

Notable changes

Known issues

  • SCRAM authentication does not work as scram client classes are not packaged
  • client_encoding has to be UTF8 even with allowEncodingChanges=true

Added

  • 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

Changed

  • Improve behaviour of ResultSet.getObject(int, Class). PR 932
  • Parse CommandComplete message using a regular expression, 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

Fixed

  • 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

Removed

  • Drop support for the (insecure) crypt authentication method. PR 1026

Deprecated

  • Reintroduce Driver.getVersion for backward compatibility reasons, mark it as deprecated as application should not rely on it (regression since 42.0.0) 50d5dd3e
  • slave and preferSlave values for the targetServerType connection property have been deprecated in favour of secondary and preferSecondary respectively.

Commits by author

AlexElin (9):

Álvaro Hernández Tortosa (1):

Barnabas Bodnar (1):

  • fix: don't attempt to read a SQLXML more than once PR 965 8f5e245

Brett Okken (1):

Brett Wooldridge (1):

  • Fixes #638 Implement support for get/setNetworkTimeout() PR 849 8a30044

Chen Huajun (1):

  • fix: improve multihost connection for preferSlave case (verify expired hosts before connecting to cached master) PR 844 c6fec34

Dave Cramer (11):

  • Update thread safety status of the driver to reflect reality; that being that the driver is not thread safe PR 928 ad47aba
  • fix: use 00:00:00 and 24:00:00 for LocalTime.MIN/MAX PR 992 f2d8ec5
  • fix: support Subject Alternative Names for SSL connections PR 952 2dcb91e
  • test: Appveyor configuration PR 1000 059628f
  • add test for identity, fix isAutoincrement in postgresql 10 fixes #130 PR 1004 2f6633b
  • elaborate on sslmode options PR 1054 aa7a420
  • prefer the word secondary over slave PR 1063 2e8c2b6
  • Revert "refactor: replace some usages of initCause PR 1037" (#1064) e6a1ecc
  • prefer secondary over slave referring to standby or secondary servers PR 1070 32c53902
  • first pass at release notes and some fixes to previous notes PR 1041 a8260f5
  • Update 2018-01-16-42.2.0-release.md b36867f

Hugh Cole-Baker (1):

Jeff Klukas (1):

Joe Kutner (1):

  • fix: Added support for socksNonProxyHosts property PR 975 (#985) 9813c68

Jorge Solorzano (13):

Magnus (1):

  • fix: make warnings available as soon as they are received PR 857 83dd5fe

Magnus Hagander (1):

MichaelZg (1):

  • fix: trim trailing zeros in timestamp strings returned in binary mode PR 896 d28deff

Michael Glaesemann (1):

  • refactor: use TypeInfo getPGArrayType instead of munging type name PR 913 634e157

Pavel Raiskup (2):

  • packaging: rpm_ci: add missing BuildRequires 4e0cdc1
  • packaging: rpm_ci: don't shade scram jar into pgjdbc 1fd6c4f

Philippe Marschall (2):

Piyush Sharma (1):

  • doc: Added quotes to URL in '@see' tag over org.postgresql.sspi.NTDSAPI#DsMakeSpnW for syntactic correctness PR 926 29f574a

Sehrope Sarkuni (1):

Thach Hoang (2):

  • Update ServerVersionTest to actually compare versions PR 1015 cccd6cd
  • fix: always return Short[] for java.sql.Array.getArray() on smallint[] PR 1017 279fb43

Vladimir Sitnikov (23):

  • fix: reintroduce Driver.getVersion for backward compatibility reasons PR 905 50d5dd3
  • style: make PGReplicationStream, LargeObject implement AutoCloseable for Java 7+ PR 1016 9f07c9a
  • fix: prevent statement hang in case close() called when query is in progress PR 1022 04c5dbb
  • fix: synchronize Statement#result field access to make #close() more thread-safe 4139248
  • fix: avoid reflective access to TimeZone.defaultTimeZone in Java 9+ PR 1002 fd0eeee
  • fix: throw TOO_MANY_RESULTS (0100E) instead of "PgResultSet: tuples must be non-null" 0d31d46
  • fix: "Received resultset tuples, but no field structure for them" when bind failure happens on 5th execution of a statement PR 811 082d009
  • tests: correct assertion to use proper column 63918eb
  • fix: add type parameter so code is Java 6/7 compatible 1361c52
  • chore: avoid non-blocking IO for stdout to workaround "stdout: write error" in Travis 12bb084
  • test: run Travis tests with non-default time zone a3982b4
  • fix: execute autosave/rollback savepoint via simple queries always to prevent "statement S_xx not exists" when autosaving PR 955 684a699
  • fix: use 'time with time zone' and 'timestamp with time zone' values as is and avoid computation with user-provided/default Calendars e8c43f3
  • test: refactor SetObject310Test to use proper assertion messages and use less statements (make it faster) be06946
  • refactor: factor out receiveParameterStatus so all the ParameterStatus messages are handled in the same way a94cfea
  • fix: add Provide-Capability OSGi manifest PR 1029 236805b
  • chore: update version to 42.2.0-SNAPSHOT to reflect the next release version e27ee74
  • packaging: add missing maven-clean-plugin dependency a2ed9b5
  • chore: introduce release via Travis acb9bdd
  • chore: skip CI builds for tags; skip Fedora and extendedCacheEverything jobs when building pull requests 3ba3b63
  • fix: avoid NPE from getObject(..., Date.class) and getObject(..., Calendar.class) on null timestamps PR 1071 eb33c4c
  • test: add "as" to test queries so they work with PostgreSQL 8.3 71b3c11
  • docs: make pgjdbc's javadocs to inherit base Java documentation eb406dc

Zemian Deng (3):

  • refactor: use PGProperty enum instead of text ref for targetServerType, hostRecheckSeconds, loadBalanceHosts PR 912 (#915) b0cfc33
  • fix: correct javadoc on PGResultSetMetaData.getFormat PR 917 cd77693
  • fix: Correct DatabaseMetaData.getFunctions() implementation PR 918 8884202

bpd0018 (3):

djydewang (1):

  • style: disallowing user to use incomplete fully qualified Check names in config file PR 961 3286c8c

eperez (1):

mjanczykowski (1):

rnveach (1):

  • style: remove deprecated maxLineLength from LeftCurlyCheck PR 904 5f083d1

steinarb (1): * fix: add Provide-Capability org.osgi.service.jdbc.DataSourceFactory to OSGi manifest Issue 1029

zapov (1):

  • fix: avoid integer overflow when sending large arguments PR 946 266ed61

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Álvaro Hernández Tortosa
Barnabas Bodnar
Brett Okken
Brett Wooldridge
Chen Huajun
Dave Cramer
Hugh Cole-Baker
Jeff Klukas
Joe Kutner
Jorge Solorzano
Magnus
Magnus Hagander
MichaelZg
Michael Glaesemann
Pavel Raiskup
Philippe Marschall
Piyush Sharma
Sehrope Sarkuni
Thach Hoang
Vladimir Sitnikov
Zemian Deng
bpd0018
djydewang
eperez
mjanczykowski
rnveach
zapov

Version 42.1.4 (2017-08-01)

Notable changes

Changed

  • 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

Commits by author

AlexElin (4):

Dave Cramer (2):

Michael Glaesemann (4):

  • test: assume minimum server version 8.3 testing autosave with ALTER 77ee528d
  • test: assume minimum server version 8.3 when testing with uuid ff2717e4
  • refactor: remove unused import 8afe856e
  • test: assume integer datetimes for timestamp tests PR 873 8287e7f9

Vladimir Sitnikov (7):

  • docs: prevent "<!--more-->" from being displayed on the changelog page e1747693
  • doc: fix anchors for "contributors to this release" c1d743f2
  • test: fix StringTypeParameterTest to skip preferQueryMode=simple beca1692
  • chore: install PostgreSQL 9.1 to Trusty builds via apt, and use Precise for Java 6 e960f237
  • test: make StringTypeParameterTest 8.3+ since 8.2 misses enum types PR 882 ed0014cc
  • fix: named statements were used when fetchSize was non-zero and prepareThreshold=0 PR 870 f0deabf7
  • test: skip ConcurrentStatementFetch for PostgreSQL < 8.4 PR 884 5334cb6e

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Dave Cramer
Michael Glaesemann
Vladimir Sitnikov

Version 42.1.3 (2017-07-14)

Notable changes

Fixed

  • Fix NPE in PreparedStatement.executeBatch in case of empty batch (regression since 42.1.2). PR 867

Commits by author

Vladimir Sitnikov (2):

  • doc: ensure changelog uses %Y-%m-%d format, not %Y-%d-%m 5d585aac
  • fix: NPE in PreparedStatement.executeBatch in case of empty batch PR 867 7514552d

Contributors to this release

We thank the following people for their contributions to this release.

Vladimir Sitnikov

Version 42.1.2 (2017-07-12)

Notable changes

Changed

  • 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

Fixed

  • Replication API: fix issue in #834 setting statusIntervalUpdate causes high CPU load. PR 835 59236b74

Regressions

  • NPE in PreparedStatement.executeBatch in case of empty batch. Fixed in 42.1.3

Commits by author

AlexElin (1):

Dave Cramer (8):

  • Initial support of partitioned tables via JDBC metadata API PR 823 9c3471f2
  • fix javadoc complaints and some small edits to replication comments PR 832 2d0bfceb
  • fix issue #834 setting statusIntervalUpdate causes high CPU load \ PR 835 59236b74
  • fix issue #838 make sure we don't get columns that are dropped PR 840 464a2d43
  • add missing connection documentation, fix spelling PR 846 cd400f6f
  • more spelling mistakes for preferQueryMode PR 850 73bc3c1b
  • fix formatting of section on failover, still not perfect but better PR 852 9f722014
  • small reformat to clarify read and write connections PR 854 551d71b6

Jorge Solorzano (3):

Robert 'Bobby' Zenz (1):

  • fix: Add fallback to setObject(int, Object) for Number PR 812 5b9edb7d

Vladimir Gordiychuk (1):

Vladimir Sitnikov (7):

  • chore: implement a script to stage pgjdbc, pgdjbc-jre7, pgjdbc-jre6 artifacts 15d78839
  • doc: fix 42.1.0.jre8->jre6 typo PR 42 88942b58
  • fix: use server-prepared statements for batch inserts when prepareThreshold>0 abc3d9d7
  • fix: better parsing for returning keyword PR 824 201daf1d
  • docs: build index, changelog pages from _posts/... to reduce release overhead d6fe07d7
  • chore: make ./release_notes.sh create docs/_posts/$DATE_YMD-$VERS-release.md file e00d4571
  • docs: add 42.1.2 release notes 6f127a61

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Dave Cramer
Jorge Solorzano
Robert 'Bobby' Zenz
Vladimir Gordiychuk
Vladimir Sitnikov

Version 42.1.1 (2017-05-04)

Notable changes

Fixed

  • Fix infinite dates that might be corrupted when transferred in binary for certain JREs. For instance, 5881610-07-11 instead of infinity. 1e5bf563

Commits by author

Vladimir Sitnikov (2):

  • fix: infinite dates might be corrupted when transferred in binary for certain JREs 1e5bf563
  • chore: print "include notable changes" to the generated changelog 6bc4fe07

Contributors to this release

We thank the following people for their contributions to this release.

Vladimir Sitnikov

Version 42.1.0 (2017-05-03)

Notable changes

Added

  • Support fetching a REF_CURSOR using getObject PR 809

Fixed

  • 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

Regressions

  • There's no 42.1.0.jre6 version due to infinity handling bug. Fixed in 42.1.1.jre6

Commits by author

Alexander Kjäll (1):

Daniel Migowski (1):

  • feat: improve waiting for notifications by providing a timeout option PR 778 a7e0c83b

Dave Cramer (4):

Jacques Fuentes (1):

James (1):

  • fix: use SQLWarning(String reason) constructor for correct DriverManager PR 751 74a426b9

Joe Kutner (1):

  • fix: Only resolve hostname if not using a SOCKS proxy PR 774 480b0cf1

Jorge Solorzano (3):

Philippe Marschall (1):

Robert Zenz (1):

  • fix: function calls without parameters do not require parentheses 2958cc22

Vladimir Gordiychuk (2):

Vladimir Sitnikov (3):

  • fix: make sure org.postgresql.Driver is loaded when accessing though DataSource interface PR 768 9c80adc2
  • refactor: add encoding, fix expected/actual, use proper constructor 77cace40
  • fix: infinity handling for java.time types PR 789 f375701b

slmsbrhgn (1):

  • bug: fix data being truncated in setCharacterStream (the bug introduced in 42.0.0) PR 802 28c98418

Contributors to this release

We thank the following people for their contributions to this release.

Alexander Kjäll
Daniel Migowski
Dave Cramer
Jacques Fuentes
James
Joe Kutner
Jorge Solorzano
Philippe Marschall
Robert Zenz
Vladimir Gordiychuk
Vladimir Sitnikov
slmsbrhgn

Version 42.0.0 (2017-02-19)

Notable changes

Added

Changed

  • Version bumped to 42.0.0 to avoid version clash with PostgreSQL version and follow a better semantic 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 acepted (previusly !=0 was true). PR 732
  • Return correct versions and name of the driver. PR 668

Removed

  • Support for PostgreSQL versions below 8.2 was dropped. PR 661

Deprecated

  • Deprecated PGPoolingDataSource, instead of this class you should use a fully featured connection pool like HikariCP, vibur-dbcp, commons-dbcp, c3p0, etc. PR 739

Regressions

  • 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


You may have noticed the change in the versioning of the driver, you can read the FAQ for more information.

Commits by author

AlexElin (6):

Eric McCormack (1):

Jordan Lewis (1):

Jorge Solorzano (22):

Pavel Raiskup (3):

  • fix: sync with latest Fedora PR 637 a29ad80b
  • packaging: rpm: update srpm generator 5c3c9239
  • packaging: rpm_ci: use curl -L to download rawhide logs c8125cff

Philippe Marschall (3):

Roman Ivanov (2):

  • config: move version of checkstyle to property PR 723 9ef7d6f1
  • chore: upgrade checkstyle to 7.4, make checkstyle version configurable via property PR 725 e1a25782

Steve Ungerer (1):

  • fix: ensure executeBatch() does not use server-side prepared statements when prepareThreshold=0 PR 690 aca26a07

Trygve Laugstøl (1):

  • feat: connect the socket only if the socket factory created an unconnected socket PR 587 f75572be

Vladimir Gordiychuk (4):

Vladimir Sitnikov (12):

  • fedora: add BuildRequires: classloader-leak-test-framework 64b6750c
  • tests: remove Class.forName(..driver..) from test code c99507b5
  • test: add CI tests against PostgreSQL 8.2 PR 659 63ee60e2
  • feat: display error position when SQL has unterminated literals, comments, etc PR 688 8a95d991
  • feat: add support for PreparedStatement.setCharacterStream(int, Reader) PR 671 ee4c4265
  • chore: update next version to 42.0.0-SNAPSHOT 46634923
  • refactor: add CallableQueryKey#equals override 401c51a1
  • doc: correct wording in readme regarding PostgreSQL versions used in pgjdbc regression testing 60391d75
  • fix: revert ExpressionProperties to Properties in BaseDataSource 989b4d23
  • fix: correct edge cases for setCharacterStream(int, Reader) f1190d8c
  • test: add SharedTimerClassLoaderLeakTest to the regular test suite b3553276
  • refactor: wrap more log statements with isLoggable check 07d225ec

bd-infor (1):

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
bd-infor
Eric McCormack
Jordan Lewis
Jorge Solorzano
Pavel Raiskup
Philippe Marschall
Roman Ivanov
Steve Ungerer
Trygve Laugstøl
Vladimir Gordiychuk
Vladimir Sitnikov

Version 9.4.1212 (2016-11-02)

Notable changes:

  • ? can now be used in non-prepared statements (regression was introduced in 1210)

AlexElin (1):

  • chore: add coverage badge (#646) 05c2f8d

Jorge Solorzano (6):

  • docs: split readme.md to contributing.md (#652) 7270435
  • docs: improve readme.md (#666) cf6b836
  • docs: change license to BSD-2-Clause (#660) b4c90c8
  • style: update the header in the project (#662) 8be516d
  • fix: copy src/main/resources (#676) 14f3fce
  • style: copy license file to META-INF folder (#677) c518697

Sebastian Utz (1):

  • fix: makes escape processing strict according to JDBC spec PR#657 00a8478

Vladimir Sitnikov (4):

  • fix: do not convert ?, ? to $1, $2 when statement.executeQuery(String) is used (#644) PR#643 08e1a40
  • tests: make CursorFetchTest.testGetRow to use stable order of rows so the test does not depend on actual implementation of UNION 3c8efe4
  • fix: avoid ClassLoader leaks caused by SharedTimer PR#664 f52bf7f
  • Make successful OSGi activation less noisy PR#672 22b9025

zapov (1):

  • fix: Don't break when there is no column metadata (#663) 6d2a53e

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Jorge Solorzano
Rikard Pavelic
Sebastian Utz
Vladimir Sitnikov

Version 9.4.1211 (2016-09-18)

Notable changes: * json type is returned as PGObject like in pre-9.4.1210 (fixed regression of 9.4.1210) * 'current transaction is aborted' exception includes the original exception via caused-by chain

Daniel Gustafsson (1):

  • doc: fix brand names and links in readme (#636) 56c04d0

Vladimir Sitnikov (4):

  • chore: eploy to Travis was silently broken for a couple of days since "test" command was missing 67d7e3c
  • fix: json should be returned as PGObject, not as String for backward compatibility reasons (#640) PR#639 beaec3a
  • test: add DebugNonSafepoints to FlightRecorderProfiler PR#622 154c463
  • feat: include root cause exception in case transaction fails (#628) 51775c1

Contributors to this release

We thank the following people for their contributions to this release.

Daniel Gustafsson
Vladimir Sitnikov

Version 9.4.1210 (2016-09-07)

Notable changes:

  • Better support for RETURNGENERATEDKEYS, statements with RETURNING clause
  • Avoid user-visible prepared-statement errors if client uses DEALLOCATE/DISCARD statements (invalidate cache when those statements detected)
  • Avoid user-visible prepared-statement errors if client changes searchpath (invalidate cache when set searchpath detected)
  • Support comments when replacing {fn ...} JDBC syntax
  • Support for Types.REF_CURSOR

AlexElin (3):

  • style: change method names to start with a lower case letter (#615) 22c72b4
  • refactor: fix some hintbugs warnings (#616) dd71f6f
  • refactor: use varargs in Gt.tr (#629) 07c7902

Chrriis (1):

  • perf: cache result set column mapping for prepared statements PR#614 88fbbc5

Marios Trivyzas (1):

  • perf: add point type info to Client (#612) ba14509

Mathias Fußenegger (2):

  • doc: fix test README link in README (#609) c09be96
  • perf: add json type info to Client (#610) 4ad2df3

Pavel Raiskup (1):

Philippe Marschall (1):

Vladimir Gordiychuk (1):

  • test: fix Travis job so it actually tests against HEAD PostgreSQL (#630) 9030373

Vladimir Sitnikov (23):

  • test: skip json testing on pre-9.2 databases (those do not implement json type) 0a17d82
  • chore: make sure JDK9+PG 9.4 Travis job indeed uses PG 9.4 01b65c3
  • test: add PostgreSQL HEAD to pgjdbc regression test matrix (#613) PR#561 65a32ff
  • test: add benchmark for resultSet.getByName ff4bfda
  • chore: use Travis' PostgreSQL 9.5 d1feb58
  • docs: add javadoc badge to the project readme 5d7a9bb
  • refactor: remove autoCommit argument from QueryExecutor#createSimpleQuery/createParameterizedQuery 756363e
  • fix: support cases when user-provided queries have 'returning' PR#488 c3d8571
  • feat: support execute statements via simple 'Q' command PR#558 232569c
  • feat: show proper error message when connecting to non-UTF-8 database PR#594 ec5fb4f
  • test: add tests for Parser.parseDelete/Select/Move/WithKeyword 3b7c7c4
  • chore: update to 1.1.0 version of parent pom to upgrade bndlib 2.3.0 -> 2.4.0 4019ed6
  • chore: use latest java version for one of Java 8 Travis jobs 0452e79
  • refactor: introduce ResultHandlerBase to factor out common error processing logic edcdccd
  • feat: reset server-prepared statements on deallocate/discard, ability to autorollback on sqlexception from executing a query PR#451 adc08d5
  • fix: add a test case when "deallocate all" detector is turned off aa53fba
  • fix: invalidate prepared statement cache when "set search_path=..." query is detected PR#496 17c8afb
  • fix: properly account cache size when duplicate entries returned to the cache 191ccf2
  • feat: support 10+ version parsing Note: 10.2 means 10 major, 2 minor, that is 100002 9.2 means 9.2 major, that is 90200 PR#631 a639431
  • fix: honor comments when replacing {fn curdate()} kind of calls PR#632 2d9b313
  • chore: skip "deploy to Central" step when building PRs 9bc194a
  • test: add performance test for "reused vs non-reused at client side" prepared statements 2d70385
  • chore: improve ./release_notes.sh so it does not require parameters d8736b4

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Christopher Deckers
Marios Trivyzas
Mathias Fußenegger
Pavel Raiskup
Philippe Marschall
Vladimir Gordiychuk
Vladimir Sitnikov

Version 9.4.1209 (2016-07-15)

Notable changes:

  • BUG: json datatype is returned as java.lang.String object, not as PGObject (fixed in 9.4.1211)
  • Many improvements to insert into .. values(?,?) -> insert .. values(?,?), (?,?)... rewriter. Give it a try by using reWriteBatchedInserts=true connection property. 2-3x improvements for insert batch can be expected
  • Full test suite passes against PostgreSQL 9.6, and OpenJDK 9
  • Performance optimization for timestamps (~TimeZone.getDefault optimization)
  • Allow build-from-source on GNU/Linux without maven repositories, and add Fedora Copr test to the regression suite

AlexElin (2):

  • style: code cleanup and Java 5' features 8e8dbab
  • style: cleanup and Java 5' features for tests (#602) 28c0c22

Christian Ullrich (4):

  • docs: fix test password in readme closes #553 PR#553 07f8610
  • test: make tests independent from server LC_MESSAGES (#554) b756a15
  • fix: update waffle version PR#555 db1a6e4
  • test: add basic tests for SSPI authentication PR#557 16c27b9

Christopher Deckers (2):

  • fix: improve insert values(...) batch rewrite PR#580 510e6e0
  • perf: cache timezone in statement#setDate, resultSet#getDate, etc PR#588 d2b86a0

Dave Cramer (5):

  • use binary trick for tolower, optimize switch, added tests 2200a4d
  • fix:bugs with parse 72945b0
  • fix: added test for move and fixed checkstyle errors fc59851
  • fixed index ASC/DESC for 9.6 (#569) c9e5fc8
  • test: DataSource.getConnection().unwrap(PGConnection.class) PR#573 f6b176e

Florin Asăvoaie (1):

  • Refactored an unnecessary conversion of List to String[][] when calling the sendStartupPacket. (#544) 2032836

George Kankava (1):

  • fix: PgDatabaseMetaData: close statement in finally PR#516 b4c45ca

Jeremy Whiting (3):

  • perf: Add optimization to re-write batched insert stataments. ac8abf3
  • fix: Change optimization to delay parameter and statement re-write to immediately before execution. e591577
  • feat: Added to SQL parser to allow inspection of Statement attributes and Command. 4ddb693

Laurenz Albe (1):

  • fix: interpretation of empty but set "ssl" connection property PR#528 91f05b4

Minglei Tu (1):

  • feat: support java.sql.Types.TIMEWITHTIMEZONE and java.sql.Types.TIMESTAMPWITHTIMEZONE in setNull method PR#570 1b73bf6

Pavel Raiskup (3):

  • Allow build-from-source on GNU/Linux without maven repositories (#546) 87489a9
  • chore: test Fedora packaging CI via Travis job PR#578 1eb4085
  • packaging: heal Fedora build (#601) af50d0b

Petro Semeniuk (1):

  • fix: use per-connection cache for field metadata (table name, column name, etc) PR#551 dc3bdda

Philippe Marschall (4):

Tanya Gordeeva (1):

Vladimir Sitnikov (23):

  • test: add tests for null::float8[] e6b5bb3
  • test: createArrayOf(..., null) test a274321
  • test: avoid "The connection attempt failed" in ConnectTimeoutTest.testTimeout PR#531 fbabfa4
  • fix: NPE in DatabaseMetaData.getTypeInfo when types are dropped concurrently PR#530 f3b0fd0
  • fix: binary timestamptz -> getString should add +XX zone offset to text representation PR#130 1e1f3c4
  • refactor: "build without waffle/osgi" PR 766f806
  • test: add PostgreSQL 9.6 to CI tests (#560) 3ff47da
  • chore: make sure ubenchmark is tested with checkstyle PR#564 f6ed8e6
  • chore: add explicit MCENTRAL=Y to Travis jobs that deploy to Maven Central 18ca8f2
  • test: prune some Travis jobs to make CI faster c5c1d7c
  • chore: propagate java source/target to maven-compiler-plugin d8117d1
  • chore: add codecov.yml fb2977f
  • refactor: use enum instead of int for PgStatement.statementState to simplify debugging 32d4e08
  • test: use TestUtil.getPort() in V3ParameterListTests instead of hard-coded 5432 9a4b296
  • chore: make codecov to always wait 7 builds 9f9aa95
  • test: add jdk9 Travis job PR#565 bbb0d35
  • fix: incorrect binary data format in bind parameter X when using batch execution (#582) 7388dc9
  • perf: execute "SET application_name" if name has changed only PR#537 893c1a4
  • fix: fix some sonarqube warnings 7311b4e
  • fix: revert array naming to pre 1202 behavior (e.g. _int4) PR#595 1d8ebfc
  • refactor: rename dmlcommand -> sqlcommand 79db127
  • perf: implement fast-path to TimeZone.getDefault if the cache field is accessible through reflection 6b3f2e0
  • feat: make connectTimeout=10 (seconds) by default b4d5976

aryabukhin (1):

  • feat: add support for url-encoded JDBC URL property values PR#532 4c15f31

Marc Petzold (1):

  • feat: support HSTORE in PgPreparedStatement#setObject(int, java.lang.Object, int, int) 785d0c7

goeland86 (1):

  • fix: avoid NPE in new PgArray(, null).toString() PR#526 74b4972

Contributors to this release

We thank the following people for their contributions to this release.

AlexElin
Christian Ullrich
Christopher Deckers
Dave Cramer
Florin Asăvoaie
George Kankava
Jeremy Whiting
Laurenz Albe
Minglei Tu
Pavel Raiskup
Petro Semeniuk
Philippe Marschall
Tanya Gordeeva
Vladimir Sitnikov
aryabukhin
Marc Petzold
goeland86

Version 9.4.1208 (2016-02-16)

John Harvey (1):

  • chore: rework update-translations.sh into pom file as a profile e2fa9ec

Dave Cramer (3):

  • fix:regression from previous behaviour where setObject(index,object,VARHCAR) should call getString if it can't cast it to a string PR#482 9d6389c
  • fix:correct comment PR#482 bfd73c7
  • Update README.md PR#482 5a956a3

George Kankava (3):

  • fix: squid:S1206 -equals(Object obj) and hashCode() should be overridden in pairs PR#515 a07d6d3
  • fix: squid:S2325 - private methods that don't access instance data should be static PR#514 7aac95c
  • fix: squid:S1488 - Local Variables should not be declared and then immediately returned or thrown PR#513 299c9f5

Gilles Cornu (1):

Jeremy Whiting (1):

  • fix: load the ssl configuration property when defined through Properties. a6a61be

Markus KARG (1):

Philippe Marschall (7):

  • style: use java generics instead of raw types PR#463 c10acf0
  • refactor: do not synchronize on ConcurrentHashMap PR#482 ea4cadd
  • perf: add guards around debug log statements PR#469 d77aa41
  • fix: Do not swallow security exceptions PR#471 beab720
  • feat: implement resultSet.getObject(col, Class) with JSR-310 support PR#482 9aa3142
  • feat: implement JSR-310 support in setObject e52f7e3
  • fix: support local date times not in time zone 61384ec

Rikard Pavelic (1):

Vladimir Sitnikov (24):

  • doc: update current versions in readme.md PR#482 4f5d57c
  • refactor: move implementation of Prepared and Callable statements to PgPreparedStatement and PgCallableStatement PR#459 8fca8b4
  • style: add import order check PR#482 77a188c
  • style: align import order with style convention PR#482 00c7eb3
  • doc: add gitter chat link to readme PR#482 53190c9
  • style: enable more checkstyle verifications PR#482 b0225f6
  • style: reformat code to fix checkstyle violations PR#482 8f1c9d7
  • style: reformat with Eclipse PR#467 2d5e7fa
  • Update IDEA config PR#482 7083008
  • docs: fix typos in code comments PR#472 5d43712
  • style: update translations 484eafd
  • doc: update russian translations 92011d7
  • test: add insert .. on conflict tests for PostgreSQL 9.5 d622a9f
  • fix: improve handling of DATE columns around DST dates in binary transfer 642b48a
  • test: improve insertBatch test aea9383
  • test: track code coverage PR#494 0f979c3
  • test: PostgreSQL 8.4 and 9.5 databases, XA configuration PR#499 8c9898a
  • fix: make sure executeBatch returns error response for rows that would not get into database PR#502 d6e3b17
  • test: add benchmarks for insert via copy and insert via array of structs 880244e
  • fix: PgArray returning null for binary arrays PR#504 b225535
  • doc: backend protocol, wanted features PR#478 ee6118e
  • fix: OSGi require-capability manifest entry PR#497 a3e2045
  • fix: make sure {fn now()} jdbc translation is not performed in dollar-quoted strings PR#511 9109451

mtran (1):

  • feat: ability to customize socket factory (e.g. for unix domain sockets) PR#457 dc1844c

Contributors to this release

We thank the following people for their contributions to this release.

John Harvey
Dave Cramer
George Kankava
Gilles Cornu
Markus KARG
Rikard Pavelic
Jeremy Whiting
Vladimir Sitnikov
Stephen Nelson
Philippe Marschall
mtran

Version 9.4.1207 (2015-12-23)

Jeremy Whiting (3):

  • Changed property loader to avoid using a default when property not already set. Allows the caller to detect when unset. Thus allowing connection Cto use programmatic log level value. Added test cases to check PGProperty method working properly. PR#438 ecf4a2c
  • Update testcase to set properties where TestUtil methods look them up. PR#438 b86e07a
  • Restore boot time ssl property after test cases complete. Revert change to assertion test. Safely remove existing ssl property. PR#438 274f382

Philippe Marschall (2):

Stephen Nelson (1):

Vladimir Sitnikov (12):

  • doc: add coding guidelines to readme PR#442 af62c6d
  • chore: remove docbkx/pgjdbc.xml from reposiory PR#435 92b65f0
  • chore: move files to "pgjdbc" maven module to prepare for pre-processor fix PR#435 f95b44e
  • chore: use java comment preprocessor to build jre6/jre7/jre8 jars from the same sources PR#435 42c2e3b
  • doc: fix javadocs warnings when building via java 8 PR#435 3b10873
  • test: improve CopyLargeFileTest performance by dropping non required index and foreign key PR#435 410a662
  • test: speedup DriverTest.testConnectFailover by adding a connect timeout of 5 seconds PR#435 ed1a916
  • chore: skip gpg signature when deploying snapshot artifacts via Travis PR#449 d196cf4
  • chore: use custom settings.xml when deploying snapshots via Travis PR#449 cf40cf2
  • test: add test for insert batch that changes server-prepared statement names PR#449 e5ac899
  • fix: prepared statement "S_2" does not exist in batch executions PR#449 fa310e0
  • doc: add note on how to skip tests when building from source PR#460 823e124

Yao Chunlin (1):

  • Fix bug when call XAResource.start with TMJOIN flag, the old localAutoCommitMode lost. PR#434 df09e2b

Contributors to this release

We thank the following people for their contributions to this release.

Jeremy Whiting
Vladimir Sitnikov
Stephen Nelson
Philippe Marschall Yao Chunlin

Version 9.4-1206 (2015-11-25)

Andrea Catalucci (1):

Dave Cramer (3):

  • make sure logs actually get written PR#422 2ad367e
  • fix: Binary handling of empty arrays. The type of the empty array was not properly read as a result getting the type of the array caused an NPE fixes Issue #421 reported by Juha Komulainen PR#422 38d8488
  • fix:building on java 1.6 PR#422 9133012
  • fix test case to actually check the value don't mask the exception in the event that it is thrown PR#422 e975c07
  • add an explicit message for the test case PR#422 270b1a3

Laurenz Albe (3):

  • Replace question marks only in PreparedStatements PR#427 3d30a4c
  • Allow both single and double question marks in simple statements PR#427 39d510c
  • Prettify code and add another regression test PR#427 2f8a67f

Vladimir Sitnikov (3):

  • chore: fix dos end-of-lines PR#418 63d1dd3
  • test: add tests for getBigDecimal of int4 field in both text and binary modes PR#426 faac288
  • fix: fix invalid values when receiving int2, int4, int8 via getBigDecimal() PR#424 e6f1beb

John K. Harvey(1)

  • fix: update translations to handle Russian characters PR#430 this hasn't been committed yet but the message class files were updated

Contributors to this release

We thank the following people for their contributions to this release.

John K Harvey
Andrea Catalucci
Laurenz Albe
Vladimir Sitnikov

Version 9.4-1205 (2015-11-03)

Chapman Flack (2):

Dave Cramer (10):

Michael Paquier (2):

Rikard Pavelic (1):

Vladimir Sitnikov (9):

  • fix: avoid memory leak when redeploying pgjdbc PR#394 d7cab7b
  • test: add {?= call mysum(?, ?)} kind of test for CallableStatement PR#410 45c8368
  • perf: add BigDecimal test performance test to ProcessResultSet PR#411 6dc4183
  • perf: optimize ResultSet.getObject PR#411 567e268
  • perf: optimize getBigDecimal PR#411 33904ef
  • test: add statement.getQueryTimeoutMs, so millisecond-scale timeouts can be tested PR#413 892d7af
  • fix: statement.cancel and statement.setQueryTimeout should be thread-safe PR#412 bc3d848
  • chore: print markdown links in release notes script PR#416 a5b8ea7
  • chore: add .gitattributes to ensure automatic end-of-line storage of text files is used PR#417 254b739

Contributors to this release

We thank the following people for their contributions to this release.

Chapman Flack
Michael Paquier
Rikard Pavelic
Vladimir Sitnikov

Version 9.4-1204 (2015-10-09)

Alexey Mozhenin

  • fix: Make sure copy manager completesPR #378 (7c420ed)
  • test: update for CopyLargeFileTest test to fit into 10 minutes limit PR #378 (39cd851)

Dave Cramer

  • fix: implemented getFunctions in jdbc4 (03483e1)
  • fix: error in getFunctionColumns PR #376 (5fafb86)
  • fix: filter DatabaseMetaData.getColumns by tables PR #386 (0c95126)
  • fix: abort connections after IOException instead of close PR #392 (3e68a70)

Vladimir Sitnikov

  • pref: improve executeBatch by avoiding statement-by-statement execution PR #380 (92a9f30)
  • perf: improve setTimestamp, setTime, setDate performance PR #379 (5a03a6e)
  • chore: update jmh, drop irrelevant benchmark Parser#unmarkDoubleQuestion PR #384 (0d1237c)
  • chore: add more benchmarks, add missing FlightRecorderProfiler PR #385 (613a641)
  • feat: ignore empty sub-queries in composite queries PR #386 (3fb8046)
  • fix: binary processing of Date/Time/Timestamps PR #387 (5ec0ac3)
  • test: add tests for parsing of empty queries separated by semicolons PR #388 (d9310ce)
  • fix: ConcurrentModificationException when calling PreparedStatement.close from a concurrent thread PR #392 (40bcc01)

Contributors to this release

We thank the following people for their contributions to this release.

Alexey Mozhenin
Vladimir Sitnikov

Version 9.4-1203 (2015-09-17)

Author: Dave Cramer

  • fix: Implemented getFunctions
  • fix: changed getProcedureColumns to getFunctionColumns
  • fix: CopyManager fails to copy a file, reading just part of the data #366

Author: Lonny Jacobson

  • add: Added PGTime/PGTimestamp

Author: Patric Bechtel

  • fix: setObject(int parameterIndex, Object x, int targetSqlType) as it will set scale of BigDecimal 'x' to 0 as default, resulting in rounded whole values (!). PR #353 (24312c6)
  • fix: round to correct amount test: add test for BigDecimal rounding behaviour in setObject(index,Object,targetSqlType) and setObject(index,Object,targetSqlType,scale) PR #353 (ff14f62)

Contributors to this release

We thank the following people for their contributions to this release.

Lonny Jacobson
Patric Bechtel
Alexey Mozhenin

Version 9.4-1202 (2015-08-27)

Author: Alexis Meneses

  • ResultSet positioning methods in some particular cases PR #296 (282536b)

Author: Craig Ringer

  • Disable binary xfer on batches returning generated keys PR #273 (763ae84)
  • Add a new test case demonstrating a bug in returning support PR #273 (4d2b046)
  • Always Describe a query in a batch that returns generated keys PR #273 (a6bd36f)

Author: Dave Cramer

  • chore: fix build.xml to allow releasing to maven PR #262 (34f9361)
  • fix: BlobInputStream ignores constructor parameters #263 PR #273 (c1c6edc)
  • don't reset forceBinary transfer if we setPreparedThreshold (937a11c)
  • Revert "perf: Remove expensive finalize methods from Statement and Connection" PR #293 (a0d3997)
  • updated copyright PR #312 (263375c)
  • Revert "Issue 250 -- Adding setURL/getURL to BaseDataSource.java" PR #312 (a1ac380)
  • fixed mailing list href PR #326 (c3e86a6)
  • increment driver version PR #346 (b8ee75d)

Author: David R. Bild

  • feat: add equality support to PSQLState PR #277 (7698cd9)

Author: David Schlosnagle

  • Improve version checking PR #355 (f7a84db)

Author: Eugene Koontz

  • Add support within "private Object buildArray (PgArrayList input, int index, int count)" for array elements whose type is jsonb PR #349 (d313138)

Author: Jeremy Whiting

  • Added setter method for logging level. The method exactly matches property name in documentation. PR #282 (d9595d1)
  • Added getter method. PR #282 (65759f0)
  • Adding XML catalog to help unit tests not remote entity resolution. PR #284 (cb87067)
  • Added support to locally resolve dtd or entity files. PR #284 (017970d)
  • Disable verbose logging of the catalog resolver. PR #284 (fcc34f5)

Author: Kris Jurka

  • Improve error message for failure to update multicolumn primary key RSs. PR #284 (05ff811)
  • Remove all JDBC3 code as JDK 1.4/1.5 are no longer supported. PR #284 (f9a956b)
  • Add preliminary support for JDBC4.2. PR #284 (bd05fd2)

Author: Lonny Jacobson

  • Added setURL/getURL methods. (fcc8f75)
  • Added a unit test for setURL PR #309 (5fa405b)

Author: Markus KARG

  • perf: use shared PGBoolean instances PR #321 (159fed6)
  • docs: parameter "database" is optional PR #332 (9a9d03f)
  • refactor: binary transfer for setObject(int, Object, int) PR #351 (3ff2129)

Author: Michael Paquier

  • Update entries in lib/.gitignore PR #262 (8cd15a9)

Author: Phillip Ross

  • Fix for issue https://github.com/pgjdbc/pgjdbc/issues/342 - Modifications to PGline to store coefficients and constant value for linear equation representations used by postgresql for native line datatype. PR #343 (0565416)
  • Fix for issue https://github.com/pgjdbc/pgjdbc/issues/342 - Removed extra copyright comments. PR #343 (5f21a18)
  • Fix for issue https://github.com/pgjdbc/pgjdbc/issues/342 - Handle vertical lines. PR #343 (3918b24)
  • Fix for issue https://github.com/pgjdbc/pgjdbc/issues/342 - Added test method for testing PGline PR #343 (1a50585)
  • Fix for issue https://github.com/pgjdbc/pgjdbc/issues/342 - Modifications to PGline test method to only attempt database access if the postgresql version supports it (v9.4+). PR #343 (15eedb5)

Author: Rikard Pavelic

  • feat: Improved composite/array type support and type naming changes. PR #333 (cddcd18)

Author: Robert J. Macomber

  • Deadlock after IO exception during copy cancel PR #363 (d535c13)

Author: Sehrope Sarkuni

  • style: clean up newline whitespace PR #273 (1b77b4c)
  • style: clean up whitespace in .travis.yml PR #274 (3ee5bbf)
  • fix: correct incorrect PG database version in .travis.yml matrix PR #274 (74b88c6)
  • style: reorder jdk versions in .travis.yml PR #274 (21289e7)
  • feat: add PostgreSQL 9.4 to .travis.yml matrix PR #274 (9e94f35)
  • feat: add escapeLiteral(...) and escapeIdentifier(...) to PGConnection PR #275 (096241f)

Author: Stephen Nelson

  • Replace for loops with Java 5-style for loops. Replace String.indexOf with String.contains. Replace StringBuffer with StringBuilder. Remove boxing/unboxing of primitives. PR #245 (206a542)

Author: Vladimir Gordiychuk

  • feat: Customize default fetchSize for statements PR #287 (093a4bc)
  • feat: Customize default fetchSize for statements PR #287 (519bfe1)
  • perf: Read test only property "org.postgresql.forceBinary" spend many time when creating statements PR #291 (e185a48)

Author: Vladimir Sitnikov

  • perf: Remove expensive finalize method from Statement Finalize method on Statement is moved to a separate class that is lazily created if user sets "autoCloseUnclosedConnections"="true". This dramatically improves performance of statement instantiation and reduces garbage collection overhead on several wildly used JMVs. PR #290 (eb83210)
  • docs: fix misleading statement on "can't use jdk5 features" in README.md PR #298 (5b91aed)
  • feat: implement micro-benchmark module for performance testing PR #297 (48b79a3)
  • feat: add benchmark for Parser.unmarkDoubleQuestion PR #297 (e5a7e4e)
  • feat: improve sql parsing performance PR #301 (fdd9249)
  • perf: Remove AbstractJdbc2Statement.finalize() PR #299 (b3a2f80)
  • test: add test for prepare-fetch-execute performance PR #303 (d23306c)
  • perf: improve performance of preparing statements PR #303 (7c0655b)
  • test: add test for utf8-encoder performance PR #307 (6345ab1)
  • perf: improve performance of UTF-8 encoding PR #307 (f2c175f)
  • perf: skip instantiation of testReturn and functionReturnType for non-callable statements PR #323 (8eacd06)
  • perf: parse SQL to a single string, not a array of fragments PR #319 (4797114)
  • perf: cache parsed statement across .prepareStatement calls PR #319 (5642abc)
  • refactor: cleanup constructors of JDBC4 and JDBC42 connections/statements PR #318 (a4789c0)
  • refactor: use Dequeue<...> instead of raw ArrayList in v3.QueryExecutorImpl PR #314 (787d775)
  • perf: SimpleParameterList.flags int[] -> byte[] PR #325 (f5bceda)
  • perf: cut new byte[1] from QueryExecutorImpl.receiveCommandStatus PR #326 (0ae1968)
  • perf: avoid useBinary(field) check for each sendBind PR #324 (45269b8)
  • refactor: cleanup Parser and NativeQuery after #311 PR #346 (a1029df)
  • refactor: cleanup Parser and CallableQueryKey after #319 PR #346 (5ec7dea)
  • perf: skip caching of very large queries to prevent statement cache pollution PR #346 (126b60c)
  • use current_schema() for Connection#getSchema PR #356 (ffda429)
  • chore: simple script to compose release notes PR #357 (341ff8e)
  • chore: teach release_notes.sh to identify PR ids out of merge commits PR #358 (f3214b1)

Contributors to this release

We thank the following people for their contributions to this release.

Alexis Meneses
Craig Ringer
Jeremy Whiting
Sehrope Sarkuni
Mikko Tiihonen
Dave Cramer
Stephen Nelson
Vladimir Gordiychuk
Vladimir Sitnikov
David Schlosnagle
Eugene Koontz
Markus KARG
Phillip Ross
Rikard Pavelic
Robert J. Macomber
Michael Paquier
Lonny Jacobson
Kris Jurka
David R. Bild

Other committers

Version 9.4-1201 (2015-02-25)

Author: Alexis Meneses

  • fixDo not pull a concrete implementation of slf4j in maven pom. Fixes #251 PR #252 (6c2848c)
  • fixDeclare all maven dependencies as optional in the pom PR #252 (1d02876)
  • fixAutomatically load maven-ant-tasks to remove the need of "-lib lib" when building the project using ant PR #253 (7e80fca)
  • fixant clean target delete maven dependencies added into "lib" directory PR #253 (cb7964e)
  • fixtravis uses build process simplification PR #253 (e09032c)
  • fix regression of ssl parameter processing when used in additional Properties PR #260 (33d55af)

Author: Dave Cramer [email protected]

  • fix Make junit optional in the pom PR #254 (9530047)
  • fix Added commit message readme PR #255 (c6312eb)
  • fix setUrl method of BaseDataSource. fixes issue #258 PR #358 (52a8d91)

Mikko Tiihonen (1):

  • fix setUrl method of BaseDataSource. Add test to make sure it does not break again PR #257 (477c7c8)

Contributors to this release

We thank the following people for their contributions to this release.

Alexis Meneses
Sehrope Sarkuni
Mikko Tiihonen
Dave Cramer

Other committers

Version 9.4-1200 (2015-01-02)

Author: Alexis Meneses

  • fix Support for setBinaryStream with unknown length PR #220
  • add Improved support for BLOBS PR #219
  • Added the support for very large objects (4TB) when backend is at least 9.3 using lo_xxx64 functions (see release 9.3 notes).
  • Added support for various JDBC4 methods related to Blobs:
  • setBlob with input stream in PreparedStatement
  • getBinaryStream with position and offset in Blob (also helps a lot handling very large objects)
  • fix Fix for setStringType in DataSource PR #221
  • fix Set search path in startup packet PR #216
  • fix Connection.isValid() should have no impact on transaction state PR #218 fixes issue #214
  • fix Replace StringBuffer with StringBuilder for performance PR #243
  • fix Make Pgjdbc an OSGi bundle PR #241
  • fix Fixing the Travis-CI integration

Author: Sehrope Sarkuni

  • fix Fix Timer thread classloader leak PR #197
  • fix Escape search_path in Connection.setSchema PR #207
  • add Add SSL factory SingleCertValidatingFactory PR #88
  • add Speed up connection creation on 9.0+ PR #144

Author: Mikko Tiihonen

Author: Minglei Tu

  • add add ?-contained operator support PR#227

Author: Martin Simka

  • fix GSS: fall back to old authentication when Subject doesn't contain instance of GssCredentials PR#228
  • fix gssapi: Re-use existing Subject and GssCredentials PR#201

Author: bryonv

  • fix Honor stringtype=unspecified when also saving null values
  • Currently, saving a string with setString applies oid.UNSPECIFIED, but saving null with setNull(index, java.sql.Types.VARCHAR) saves with oid.VARCHAR.
  • For consistency, if the user requested that we treat string types as unspecified, we should do so in all cases.

Author: Craig Ringer

  • add Add native SSPI authentication support on Windows using JNA via Waffle PR #212
  • fix Add limited support for returning generated columns in batches PR #204. Fixes issues #194 and #195

Contributors to this release

We thank the following people for their contributions to this release.

Alexis Meneses
Sehrope Sarkuni
Minglei Tu
Martin Simka
Mikko Tiihonen
bryonv
Craig Ringer [email protected]
Dave Cramer [email protected]

Other committers


Version 9.3-1103 (2015-01-02)

Author: Ancoron [email protected]

Backport PGXAConnection.equals() fix from master

Author: Ancoron [email protected]

Fix connection URL generation for 'stringtype' parameter in BaseDataSource

Author: Heikki Linnakangas [email protected]

Fix equals-method of the wrapper returned by PGXAConnection.getConnection()
Patch by Florent Guillaume

Author: Alexis Meneses [email protected]

Fixes on get/set/current-schema (9.3 branch)

Author: Alexis Meneses [email protected]

Add a TestSuite for JDBC 4.1

Author: Alexis Meneses [email protected]

Unescape/unquote result of getSchema

Author: Alexis Meneses [email protected]

Setting the search_path from currentSchema property is done in startup packet (v3 protocol only)

Author: Alexis Meneses [email protected]

Add tests for schema name containing special characters

Author: Alexis Meneses [email protected]

Escape schema name when setting search_path

Author: Damiano Albani [email protected]

Add support for "currentSchema" connection property.

Author: Dave Cramer [email protected]

Fixed timezone test as per Tom Lane's suggestion. …
Now using Europe/Helsinki as the exemplar.

Author: Dave Cramer [email protected]

Clob will now use the connection encoding
pull #121 from brekka/clob_encoding

Author: Dave Cramer [email protected]

backpatched Statement.isClosed() implementation of PGPoolingDataSource with some performance improvements. #180

Author: nicolas-f [email protected]

Implement hashcode in PGObject 9.3
Handle null value

Author: Dave Cramer [email protected] Date: Mon Aug 18 12:30:48 2014 +0000

NPE fix in org.postgresql.Driver.getPropertyInfo #176 \
from Sergey Ignatov

Version 9.3-1102 (2014-07-10)

Author:epgrubmair bug #161

fix copyOut close hanging bug #161 from epgrubmair

Author:romank0

backpatch exception during close of fully read stream from romank0

Author:Christophe Canovas

Added caching for ResultSetMetaData  complete commit

Author:Elizabeth Chatman

NullPointerException in AbstractJdbc2DatabaseMetaData.getUDTs


setNull, setString, setObject may fail if a specified type cannot be transferred in a binary mode #151

backpatch fix for changing datestyle before copy

Author:TomonariKatsumata

binary transfer fixes new feature -1 for forceBinaryTransfer

Author:Sergey Chernov

connectTimeout property support backpatch

Author:Naoya Anzai

fix prepared statement ERROR due to EMPTY_QUERY defined as static.

Version 9.3-1101 (2014-02-14)

Author:Jeremy Whiting [email protected]

Added feature to disable column name sanitiser with a new property. 
disableColumnSanitiser= boolean
remove toLower calls for performance

Author:Craig Ringer [email protected]

Add a MainClass that tells the user they can't just run the JDBC driver    
After one too many reports of
    "Failed to load Main-Class manifest attribute from postgresql-xxx.jar"
I'm submitting a dummy main-class that tells the user what they should
do instead.

The message looks like:

------------
PostgreSQL x.y JDBC4.1 (build bbbb)
Found in: jar:file:/path/to/postgresql-x.y-bbbb.jdbc41.jar!/org/postgresql/Driver.class

The PgJDBC driver is not an executable Java program.

You must install it according to the JDBC driver installation instructions for your application / container / appserver, then use it by specifying a JDBC URL of the form
    jdbc:postgresql://
or using an application specific method.

See the PgJDBC documentation: http://jdbc.postgresql.org/documentation/head/index.html

This command has had no effect.
------------


fixed bug PreparedStatement.getMetaData failed if result set was closed
reported by Emmanuel Guiton

Author: cchantep [email protected] Date: Thu Dec 12 15:54:55 2013 +0100

Base table more useful than "" as basic table name


fixed driver fails to find foreign tables fix from [email protected]

Author: Heikki Linnakangas [email protected]

Fix various setQueryTimeout bugs.

1. If you call setQueryTimeout(5), wait 10 seconds, and call execute(), the
cancel timer has already expired, and the statement will be allowed to run
forever. Likewise, if you call setQueryTimeout(5), wait 4 seconds, and call
execute(), the statement will be canceled after only 1 second.

2. If you call setQueryTimeout on a PreparedStatement, and execute the same
statement several times, the timeout only takes affect on the first
statement.

3. If you call setQueryTimeout on one Statement, but don't execute it, the
timer will still fire, possible on an unrelated victim Statement.

The root cause of all of these bugs was that the timer was started at the
setQueryTimeout() call, not on the execute() call.

Also, remove the finally-block from the cancellation task's run-method,
because that might erroneously cancel the timer for the next query, if a
new query is started using the same statement fast enough.

Author: Heikki Linnakangas [email protected]

Use StringBuffer to construct a string.

This piece of code isn't performance-critical at all, but silences a
Coverity complaint.

Author: Heikki Linnakangas [email protected]

Avoid integer overflow.

The function returns long, but does the calculation first in int. If someone
sets the timeout to 600 hours in the URL, it will overflow, even though the
return value of the function is long and hence could return a larger value.

To silence a Coverity complaint.

Author: Heikki Linnakangas [email protected]

Plug some Statement leaks in metadata queries.

These are fairly harmless, nobody calls these metadata methods frequently
enough for the leaks to matter, and a regular Statement doesn't hold onto
any server resources anyway. But let's appease Coverity.

Author: Heikki Linnakangas [email protected]

Make sure file is closed on exception.

The system will eventually close the file anyway, and this read is highly
unlikely to throw an IOException in practice.

Also, use RandomAccessFile.readFully(byte[]) to slurp the file into byte
array, rather than FileInputStream.read(byte[]). The latter would need to
be called in a loop to protect from short reads.

Both issues were complained of by Coverity.

Author: Stephen Nelson [email protected]

Generate a non-Maven JAR filename using build-time version and JDBC API level.

Author: Stephen Nelson [email protected]

Build script changes to allow packaging and deployment to Maven central using maven-ant-tasks

Updated build.properties to contain the sonatype urls. Updated build.xml so that gpg signing works for each accompanying artifact type. Updated pom.xml to allow templated group and artifact ids.

Author: Craig Ringer [email protected]

NonValidatingFactory should be included in both JDBC3 and JDBC4

Author: Michael McCaskill [email protected]

Use proper System property

Using 'path.separator' results in malformed paths such as:
/default/dir:./postgresql/root.crt
This corrects the problem.

Author: Dave Cramer [email protected]

reset interrupted bit and throw unchecked exception if we get interrupted while trying to connect

Author: Dave Cramer [email protected]

add functions to allow LargeObjectMaager to commit on close from Marc Cousin

Author: tminglei [email protected]

add uuid array support (rename ArrayElementBuilder to ArrayAssistant)

Author: Nick White [email protected]

allow the first query to be binary

Author: Dave Cramer [email protected]

Merge pull request #107 from cchantep/rs-basic-tblname

Basic table name for resultset metadata

Author: Dave Cramer [email protected]

fixed bug PreparedStatement.getMetaData failed if result set was closed
reported by Emmanuel Guiton #bugfix#

Version 9.3-1100 (2013-11-01)

Author: Dave Cramer [email protected] Date: Thu Oct 17 08:29:07 2013 -0400

reset interrupted bit and throw unchecked exception if we get interrupted while trying to connect

Author: Dave Cramer [email protected] Date: Tue Oct 15 06:51:45 2013 -0400

add functions to allow LargeObjectMaager to commit on close from Marc Cousin

Author: halset [email protected] Date: Mon Sep 9 12:12:26 2013 +0200

fix for setBlob with large blob

Author: Dave Cramer [email protected] Date: Tue Sep 10 09:00:37 2013 -0400

fixed DatabaseMetaDataTest as per Sylvain Cuaz

Author: Dave Cramer [email protected] Date: Mon Jul 29 09:43:20 2013 -0400

fixed sort order for DatabaseMetaData

Author: Dave Cramer [email protected] Date: Sun Jul 21 13:18:26 2013 +0000

backpatched canceltimer bug reported by Andri-Redko

Author: Dave Cramer [email protected] Date: Wed May 22 04:03:58 2013 -0700

Merge pull request #60 from davecramer/REL9_2_STABLE

backpatch BaseDataSource

Author: Dave Cramer [email protected] Date: Tue May 21 21:03:21 2013 -0400

check for null before appending to url

Author: Dave Cramer [email protected] Date: Tue May 21 20:23:00 2013 -0400

initialize binaryTranferEnable to null

Author: Dave Cramer [email protected] Date: Tue May 21 20:08:27 2013 -0400

fixed tcpkeepalive as per Rui Zhu
pass stringtype on to url through properties from Mike O'Toole

Author: Dave Cramer [email protected]

Date: Wed Feb 20 06:58:59 2013 -0500

avoid NullPointerException from Derrik Hudson on User Defined Types

Author: Kris Jurka [email protected] Date: Tue Mar 26 05:33:45 2013 -0700

Lookup correct array delimiter in Connection.createArrayOf.

The old code had hardcoded a comma, but that's not true for all
datatypes.

Identification and fix by sumo in pull request #49, testcase by me.

Author: Dave Cramer [email protected] Date: Thu Nov 1 11:24:34 2012 -0400

fix toString to handle binary integer and float types

Author: Dave Cramer [email protected] Date: Wed Oct 31 10:23:23 2012 -0400

Fix performance regression introduced by using InetSocketAddress.getHostName()
Patch provided by Scott Harrington, improved upon by Kris Jurka

Author: Dave Cramer [email protected] Date: Thu Oct 18 07:44:06 2012 -0400

removed testSetObjectFromJavaArray out of jdbc2 tests

Author: Dave Cramer [email protected] Date: Wed Oct 17 14:22:03 2012 -0400

added BR translation class file

Author: Dave Cramer [email protected] Date: Thu Sep 27 09:38:25 2012 -0400

fixed missing isValid function

Author: Dave Cramer [email protected] Date: Fri Sep 21 14:58:00 2012 -0400

fixed attacl for servers below 8.3

Author: Craig Ringer [email protected] Date: Thu Sep 20 17:51:39 2012 +0800

Add some info to the README with contributor info

Discuss:
- Bug reporting
- Submitting patches
- Test matrix
- GitHub

Author: Craig Ringer [email protected] Date: Thu Sep 20 13:47:26 2012 +0800

Update URLs in README to refer to the Oracle page locations

Oracle has been doing a very poor job of maintaining old SUN URLs,
and it's likely that these will break at some point, so best update
them to reflect Oracle's control of Java now.

Added a link to the JDBC tutorial in the process.

Author: Craig Ringer [email protected] Date: Thu Sep 20 14:02:18 2012 +0800

Allow testing to continue when local host name doesn't resolve

It seems to be a common and default configuration on some Linux systems
for the local hostname not to resolve to the loopback IP address. This
causes testTimeoutOccurs(org.postgresql.test.jdbc2.LoginTimeoutTest)
to fail. I'm seeing this on Fedora 17 among others.

While it's best to fix such systems, not causing an easily avoided
and spurious failure in PgJDBC's test suite is probably worthwhile.
Spit out a warning and continue.

Author: Dave Cramer [email protected] Date: Fri Aug 24 14:24:31 2012 -0400

Fixed build to not delete pgjdbc.html, which breaks the website build

Author: Dave Cramer [email protected] Date: Thu Sep 13 07:48:52 2012 -0400

updated translations

Author: Dave Cramer [email protected] Date: Thu Sep 13 07:43:40 2012 -0400

Added explicit test case for array handling from Craig Ringer

Author: Dave Cramer [email protected] Date: Thu Sep 13 07:46:55 2012 -0400

added docs for send/recv buffer size

Author: Dave Cramer [email protected] Date: Wed Sep 12 05:11:02 2012 -0400

added test case for send/recv buffers sizes

Author: Dave Cramer [email protected] Date: Tue Sep 11 20:55:41 2012 -0400

patch from Bernd Helme for send recev buffer sizes

Author: Dave Cramer [email protected] Date: Tue Sep 11 20:12:13 2012 -0400

new translation from Euler Taveira

Author: Craig Ringer [email protected] Date: Thu Sep 20 16:07:43 2012 +0800

Fix breakage of JDBC3 builds with JDK5 by bddc05f939

Fixes:
  commit bddc05f939ac9227b682e85d1ba0a9b902da814c
  simple connection failover from Mikko Tiihonen

See:
  https://github.com/pgjdbc/pgjdbc/issues/6

These fixes only affect builds of the JDBC3 driver. The JDBC4 driver
appears fine.

Author: Dave Cramer [email protected] Date: Thu Sep 13 07:43:40 2012 -0400

added explicit test case for array handling from Craig Ringer

Author: Dave Cramer [email protected] Date: Mon Jun 4 08:56:38 2012 -0400

simple connection failover from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Sun Jun 3 07:49:37 2012 -0400

implemented setBinaryStream by Johann Oskarsson

Author: Dave Cramer [email protected] Date: Fri Jun 1 17:57:31 2012 -0400

fixed docs from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Fri Jun 1 17:18:05 2012 -0400

fixed urls in docs  from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Fri Jun 1 17:16:49 2012 -0400

fixed docs for loading in java 6.0 from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Tue May 15 20:35:51 2012 -0400

rest of Add hstore patch

Author: Dave Cramer [email protected] Date: Tue May 15 06:47:09 2012 -0400

Add support for hstore from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Tue May 15 06:24:34 2012 -0400

change Hashtable with Map from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Tue May 15 06:23:24 2012 -0400

change vector to list from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Wed May 2 14:12:17 2012 -0400

setProtocolVersion argument mis-spelled from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Wed May 2 14:09:28 2012 -0400

fix to build for java 1.8 from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Fri Apr 27 09:54:47 2012 -0400

check for array bounds before accessing the array

Author: Kris Jurka [email protected] Date: Mon Mar 12 17:57:55 2012 -0700

Fix setQueryTimeout test.

When setQueryTimeout was fixed to use the correct units, I
neglected to adjust the test at the same time.

Author: Kris Jurka [email protected] Date: Mon Mar 12 17:43:58 2012 -0700

Use a Set instead of a BitSet for tracking which types support
binary transfer.

A BitSet is a compact representation if we're only considering
builtin types that will have low oids, but if any user defined
types are enabled, all bets are off.  Once the oid counter exceeds
INT_MAX, database connections were failing outright even if no
high oid types used binary transfer because we represent these
oids with negative values that a BitSet cannot handle.

Author: Kris Jurka [email protected] Date: Mon Mar 12 17:33:40 2012 -0700

Fix ResultSetMetaData retrieval when the oid counter exceeds INT_MAX.

Since Java doesn't have unsigned ints we retrieve the values as long
and then truncate to int, so it may have a negative value.

As reported by Owen Tran.

Author: Kris Jurka [email protected] Date: Mon Mar 12 17:33:27 2012 -0700

Fix ResultSetMetaData retrieval when the oid counter exceeds INT_MAX.

Since Java doesn't have unsigned ints we retrieve the values as long
and then truncate to int, so it may have a negative value.

As reported by Owen Tran.

Author: Dave Cramer [email protected] Date: Mon Feb 13 16:43:57 2012 -0500

resolve ACL getTablePriveledges for later servers

Author: Kris Jurka [email protected] Date: Fri Feb 10 01:13:48 2012 -0800

Fix bugs in setQueryTimeout.

Setting a timeout of zero seconds should disable the timeout.
The timeout should be in seconds, but was implemented as milliseconds.

Author: Kris Jurka [email protected] Date: Fri Feb 10 00:34:59 2012 -0800

Move logic out of concrete JDBC version classes.

The concrete JDBC implementation classes should do as little work
as possible.  They exist solely to connect the right set of concrete
implementation classes, leaving all the real work to the Abstract
versions.  Some logic had started to creep out into these concrete
classes which is bad because it duplicates code in paths that aren't
likely to be tested by a developer who is working primarily with a
single JDK version.

Author: Kris Jurka [email protected] Date: Thu Feb 9 23:59:41 2012 -0800

Cache a copy of ResultSetMetaData in the ResultSet.

This solves a major performance problem for ResultSetMetaData users
which did not cache the ResultSetMetaData object.  One of the users
is the driver's own implementation of updatable ResultSets, so this
can't be worked around solely in end user code.

In the 9.0 and earlier releases, the Field objects were used to hold
database lookup results and these were longer lived than the
ResultSetMetaData object.  Now that ResultSetMetaData is holding
these database lookups we must hold onto the object to avoid
repeating the database queries.

Reported as bug #6293, fix by Steven Schlansker.

Author: Kris Jurka [email protected] Date: Mon Feb 6 13:09:48 2012 -0800

Convert .cvsignore files to .gitignore files.

Author: Kris Jurka [email protected] Date: Mon Feb 6 13:01:36 2012 -0800

Remove PostgreSQL CVS keyword expansion tags.

commit a57743f980a9de37877aa42a29e9c57514d5550e Author: Kris Jurka [email protected] Date: Mon Feb 6 13:01:28 2012 -0800

Remove PostgreSQL CVS keyword expansion tags.

Author: Dave Cramer [email protected] Date: Thu Jan 19 20:00:51 2012 +0000

added isValid implementation from Luis Flores

Author: Dave Cramer [email protected] Date: Thu Jan 19 12:06:44 2012 +0000

SSPI authentication support from Christian Ullrich

Author: Dave Cramer [email protected] Date: Mon Jan 16 21:00:51 2012 +0000

removed ssl tests for buildfarm

Author: Dave Cramer [email protected] Date: Thu Jan 5 01:12:44 2012 +0000

removed quotes around language specifier server no longer supports this

Author: Dave Cramer [email protected] Date: Tue Jan 3 15:27:55 2012 +0000

remove MakeSSL.java this is now generated

Author: Dave Cramer [email protected] Date: Mon Nov 28 11:24:19 2011 +0000

removed Override to compile with java 1.4 added extra docs for ssl from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Thu Nov 17 11:45:21 2011 +0000

docs for ssl from Andras Bodor

Author: Dave Cramer [email protected] Date: Thu Nov 17 11:27:51 2011 +0000

SSL implementation from Andras Bodor more closely follow libpq

Author: Dave Cramer [email protected] Date: Tue Oct 4 08:33:43 2011 +0000

stack overflow fix from Mike Fowler

Author: Dave Cramer [email protected] Date: Fri Sep 30 10:08:17 2011 +0000

small fixes to binary transfer code and unit tests from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Tue Sep 27 11:15:23 2011 +0000

more jdk 1.4 compatibility issues fixed from Mike Fowler

Author: Dave Cramer [email protected] Date: Mon Sep 26 15:16:05 2011 +0000

patch from Mike Fowler to fix broken builds

Author: Dave Cramer [email protected] Date: Mon Sep 26 12:52:31 2011 +0000

Mikko Tiihonen patches for binary types

Author: Dave Cramer [email protected] Date: Thu Sep 22 12:53:26 2011 +0000

binary protocol implementation from Mikko Tiihonen

Author: Dave Cramer [email protected] Date: Tue Sep 20 15:58:49 2011 +0000

forgot driver.java.in for cancel query implementation

Author: Dave Cramer [email protected] Date: Tue Sep 20 14:57:13 2011 +0000

implemented query timeout

Author: Dave Cramer [email protected] Date: Tue Sep 20 14:43:44 2011 +0000

changed name of table from testmetadata to metadatatest, test was failing due to confusion with test_statement tables

Author: Kris Jurka [email protected] Date: Sun Sep 11 01:39:32 2011 +0000

Open HEAD for 9.2 development.

Version 9.2-1004 (2013-10-31)

Author: Dave Cramer [email protected] Date: Tue Oct 29 14:32:44 2013 +0000

move default port back to 5432

Author: Dave Cramer [email protected] Date: Tue Oct 29 12:41:09 2013 +0000

resolved conflict

Author: Dave Cramer [email protected] Date: Tue Oct 29 05:38:39 2013 -0700

Merge pull request #96 from lordnelson/maven-to-9.2-branch

Build script changes to allow packaging and deployment to Maven central ...

Author: Stephen Nelson [email protected] Date: Sat Apr 13 00:20:36 2013 +0100

Build script changes to allow packaging and deployment to Maven central using maven-ant-tasks.

Updated build.properties to contain the sonatype urls. Updated build.xml so that gpg signing works for each accompanying artifact type. Updated pom.xml to allow templated group and artifact ids.

Use 1.4 version of gpg plugin for signing Maven upload.

Author: Craig Ringer [email protected] Date: Fri Oct 25 01:27:23 2013 -0700

Merge pull request #93 from ringerc/REL9_2_STABLE

Fix #92, missing NonValidatingFactory in JDBC3 driver

Author: Craig Ringer [email protected] Date: Fri Oct 25 16:18:10 2013 +0800

Fix #92, missing NonValidatingFactory in JDBC3 driver

See https://github.com/pgjdbc/pgjdbc/issues/92

You need this patch if attempts to use a URL like

    jdbc:postgresql://ipaddress:port/dbname?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

fails with:

    java.lang.ClassNotFoundException: org.postgresql.ssl.NonValidatingFactory

in the stack trace.

Author: Dave Cramer [email protected] Date: Thu Oct 17 08:29:07 2013 -0400

reset interrupted bit and throw unchecked exception if we get interrupted while trying to connect

Author: Dave Cramer [email protected] Date: Tue Oct 15 06:51:45 2013 -0400

add functions to allow LargeObjectMaager to commit on close from Marc Cousin

Author: Dave Cramer [email protected] Date: Tue Sep 10 07:25:06 2013 -0700

Merge pull request #87 from davecramer/REL9_2_STABLE

Fixed setBlob with large blob from Tore Halset

Author: halset [email protected] Date: Mon Sep 9 12:12:26 2013 +0200

fix for setBlob with large blob

Author: Dave Cramer [email protected] Date: Tue Sep 10 06:20:52 2013 -0700

Merge pull request #84 from davecramer/REL9_2_STABLE

Fixed sort order for DatabaseMetaData from Sylvain Cuaz

Author: Dave Cramer [email protected] Date: Tue Sep 10 09:00:37 2013 -0400

fixed DatabaseMetaDataTest as per Sylvain Cuaz

Author: Dave Cramer [email protected] Date: Mon Jul 29 09:43:20 2013 -0400

fixed sort order for DatabaseMetaData

Author: Dave Cramer [email protected] Date: Sun Jul 21 13:18:26 2013 +0000

backpatched canceltimer bug reported by Andri-Redko

Author: Dave Cramer [email protected] Date: Sun Jun 23 06:22:09 2013 -0700

Merge pull request #66 from davecramer/REL9_2_STABLE

fixed compile mistake

Author: Dave Cramer [email protected] Date: Sun Jun 23 09:17:27 2013 -0400

fixed compile mistake

Author: Dave Cramer [email protected] Date: Mon May 27 15:23:14 2013 -0700

Merge pull request #62 from davecramer/REL9_2_STABLE

incremented version to fix pushing a 1.7 build for maven

Version 9.2-1003 (2013-07-08)

Author: Dave Cramer Date: Mon Jul 8 03:23:25 2013 -0700

Merge pull request #68 from tomdcc/setobject-varchar-stringtype

Make PreparedStatement.setObject(pos, value, Types.VARCHAR) respect stringtype=unspecified

Author: Tom Dunstan Date: Sun Jul 7 16:20:41 2013 +0930

Make PreparedStatement.getObject() for an enum type return a string rather than a PGObject

Author: Tom Dunstan Date: Sun Jul 7 12:53:43 2013 +0930

Make PreparedStatement.setObject(pos, value, Types.VARCHAR) respect stringtype=unspecified

Author: Dave Cramer Date: Wed Jul 3 03:42:36 2013 -0700

Merge pull request #67 from njwhite/hstore

the driver will always return Maps for hstore columns

Author: Dave Cramer Date: Wed Jul 3 03:42:11 2013 -0700

Merge pull request #35 from fionatay/translations

Correct spelling in error messages and translations

Author: Nick White Date: Fri Jun 28 21:44:53 2013 -0400

the driver will always return Maps for hstore columns

Author: Dave Cramer Date: Tue Jun 25 08:31:34 2013 -0700

Merge pull request #64 from polarislabs/respect_ant_srcdir

Respect ant srcdir

Author: Bryan Varner Date: Fri Jun 21 11:39:35 2013 -0400

Respect the ${srcdir} property for all source file references in ant script.

This makes it possible to restructure the build (in the future?) so that source and artifact files (.java and .class) are not intermingled in the same directories on disk.

Author: Bryan Varner Date: Fri Jun 21 11:31:11 2013 -0400

Ignore netbeans and IDEA projects files.

Author: Dave Cramer Date: Mon Jun 10 09:19:51 2013 -0700

Merge pull request #52 from valgog/master

Consider search_path when looking up type OIDs in TypeInfoCache

Author: Dave Cramer Date: Wed May 22 08:05:11 2013 -0700

Merge pull request #61 from davecramer/master

expose URL in BaseDataSource

Author: Dave Cramer Date: Wed May 22 10:56:55 2013 -0400

expose URL property in BaseDataSource
make sure stringtype gets into url from properties

Author: Dave Cramer Date: Mon May 20 16:57:37 2013 -0700

Merge pull request #59 from davecramer/master

support for materialized views from Thomas Kellerer

Author: Dave Cramer Date: Mon May 20 19:56:30 2013 -0400

support for materialized views from Thomas Kelllerer

Author: Dave Cramer Date: Mon May 20 11:46:52 2013 -0700

Merge pull request #58 from davecramer/master

pgbouncer transaction patch

Author: Valentine Gogichashvili Date: Mon Apr 15 11:16:23 2013 +0200

Added another test case for searching objects using search_path

Author: Valentine Gogichashvili Date: Fri Apr 12 17:05:00 2013 +0200

search_path support should be working correctly even for complex cases

Author: Valentine Gogichashvili Date: Fri Apr 12 03:31:40 2013 +0200

Test is checking search_path usage dirctly on TypeInfo methods

Author: Valentine Gogichashvili Date: Fri Apr 12 02:35:27 2013 +0200

Consider search_path when resolving type names to OIDs

In case when types with the same name existed in several schemas,
TypeInfoCache did not consider the current search_path and was choosing
an OID of a type not deterministically. These change will make
the type from the current schema to be chosen. Also this change remains
backwards compatible with the previous implementation, still being anble
to find a type, that is not included into the current search_path.

Provided test fails now, as it does not TypeInfoCache
directly. So more work is to be done to make this test work.

Author: Kris Jurka Date: Tue Mar 26 05:33:45 2013 -0700

Lookup correct array delimiter in Connection.createArrayOf.

The old code had hardcoded a comma, but that's not true for all
datatypes.

Identification and fix by sumo in pull request #49, testcase by me.

Author: Kris Jurka Date: Tue Mar 26 05:27:06 2013 -0700

Remove plaintext README in favor of Markdown version.

Having two copies is just going to invite drift.

Author: Dave Cramer Date: Wed Mar 20 02:30:46 2013 -0700

Merge pull request #48 from ChenHuajun/master

Fix a simple mistake in Driver.getPropertyInfo()

Author: chj Date: Wed Mar 20 14:52:49 2013 +0800

fix a simple miss in getPropertyInfo()

Author: Dave Cramer Date: Wed Feb 27 04:27:55 2013 -0800

Merge pull request #45 from fathomdb/fix_default_password

Change default password to 'test'

Author: Dave Cramer Date: Wed Feb 27 04:27:26 2013 -0800

Merge pull request #44 from fathomdb/support_wrappers

Support for JDBC4 isWrapperFor & unwrap methods

Author: Justin Santa Barbara Date: Mon Feb 25 08:12:46 2013 -0800

Change default password to 'test'

./org/postgresql/test/README says the default password for unit tests is 'test',
but the default was actually 'password'

Author: Justin Santa Barbara Date: Mon Feb 25 07:57:24 2013 -0800

Added unit test for wrapper functions

Author: Justin Santa Barbara Date: Sat Feb 23 11:19:49 2013 -0800

Support for JDBC4 isWrapperFor & unwrap methods

Author: Dave Cramer Date: Wed Feb 20 09:32:12 2013 -0500

removed compile error with double ,

Author: Dave Cramer Date: Wed Feb 20 04:00:46 2013 -0800

Merge pull request #42 from davecramer/master

Avoid NPE on user defined types which have a value of null provided by Derrick Hudson

Author: Dave Cramer Date: Wed Feb 20 06:58:59 2013 -0500

avoid NullPointerException from Derrik Hudson on User Defined Types

Author: Dave Cramer Date: Wed Feb 20 03:42:10 2013 -0800

Merge pull request #41 from davecramer/master

Added constant for turning logging OFF

Author: Dave Cramer Date: Wed Feb 20 06:40:54 2013 -0500

added Loglevel.OFF to complete the settings

Author: lordnelson Date: Tue Feb 19 14:13:16 2013 +0000

Markdown version of the README

Author: Dave Cramer Date: Thu Feb 7 06:00:11 2013 -0800

Merge pull request #38 from davecramer/master

logging did not work properly when using a datasource, also many properties were not copied to the datasource

Author: Dave Cramer Date: Thu Feb 7 08:55:06 2013 -0500

log can not be output when using DataSource
property settings were not being copied to the datasource
these included logLevel, binaryTranfer, sslfactory, applicationName
patch provided by Chen Huajun

Author: Kris Jurka Date: Thu Jan 31 16:40:41 2013 -0800

Expose enhanced error message fields from constraint violations.

The server now provides the schema, table, column, datatype, and
constraint names for certain errors.  So expose that to users so
they don't have to go rummaging through the error text trying
to find it.

The server doesn't always provide all the fields and doesn't cover
all the error messages, but it's a good start.  In the future it
would be good to expose this information in a PGXXX class instead
of the supposedly private ServerErrorMessage.

Author: Dave Cramer Date: Tue Jan 29 02:36:13 2013 -0800

Merge pull request #37 from davecramer/master

fix loading of driver so that it checks for beginning of postgresql url before parsing anything

Author: Dave Cramer Date: Mon Jan 28 16:52:56 2013 -0500

make sure driver doesn't parse anything if the url isn't for us, also catch other possible errors, reported by Nathaniel Waisbrot

Author: Fiona Tay Date: Sun Jan 20 23:46:31 2013 -0800

Fix spelling of occurred in error message
- An error occurred while setting up the SSL connection

Author: Fiona Tay Date: Sun Jan 20 23:45:26 2013 -0800

Fix spelling of occurred in error message
- Something unusual has occurred to cause the driver to fail

Author: Fiona Tay Date: Sun Jan 20 23:44:02 2013 -0800

Fix spelling of occurred in error message
 - An I/O error occurred while sending to the backend.

Author: Dave Cramer Date: Fri Jan 11 11:38:17 2013 -0800

Merge pull request #33 from davecramer/master

fix bug where update_count not updated correctly

Author: Dave Cramer Date: Fri Jan 11 14:36:48 2013 -0500

fixed mistake where update_count not updated properly

Author: Dave Cramer Date: Fri Jan 11 10:25:55 2013 -0800

Merge pull request #32 from davecramer/master

Allow ParseException to be thrown

Author: Dave Cramer Date: Fri Jan 11 13:21:56 2013 -0500

Fixed my patch to deal with update counts over 2^32
Check to see if the update count is greater than Integer.MAX_VALUE before
setting the update_count to Statement.SUCCESS_NO_INFO
NumberFormatException will still be thrown if there is a problem
parsing it.

Author: Dave Cramer Date: Fri Jan 11 08:57:05 2013 -0800

Merge pull request #31 from davecramer/master

Bug reference 7766 reported by Zelaine Fong

Author: Dave Cramer Date: Fri Jan 11 11:54:20 2013 -0500

Bug reference 7766 reported by Zelaine Fong
if an insert or update or delete statement affects more than 2^32 rows
we now return Statement.SUCCESS_NO_INFO

Author: Dave Cramer Date: Fri Jan 11 08:38:06 2013 -0800

Merge pull request #30 from davecramer/master

Fix cancel timer bug reported by Andriy Redko

Author: Dave Cramer Date: Fri Jan 11 11:34:44 2013 -0500

fix cancelTimer bug reported by Andri Redko.
now cancel timer when connection is closed
make sure timer is cancelled if there is an exception in execute

Author: Dave Cramer Date: Fri Jan 11 06:11:41 2013 -0800

Merge pull request #29 from davecramer/master

DbKeyStoreSocketFactory was in wrong package

Author: Dave Cramer Date: Fri Jan 11 09:09:59 2013 -0500

changed package to org.postgresql.ssl

Author: Dave Cramer Date: Fri Jan 11 05:57:43 2013 -0800

Merge pull request #28 from davecramer/master

Japanese Translation spelling fixed by Tomonari Katsumata

Author: Dave Cramer Date: Fri Jan 11 08:56:22 2013 -0500

Japanese translation spelling corrected provided by Tomonari Katsumata

Author: Dave Cramer Date: Fri Jan 11 05:43:41 2013 -0800

Merge pull request #26 from stevenschlansker/read-only

Allow driver to set read-only based on a connection parameter.

Author: Dave Cramer Date: Fri Jan 11 05:43:24 2013 -0800

Merge pull request #25 from rkrzewski/backend_pid

Expose PID of the backend process serving a particular JDBC connection

Author: Dave Cramer Date: Fri Jan 11 05:41:51 2013 -0800

Merge pull request #27 from davecramer/master

DbKeyStoreFactory

Author: Dave Cramer Date: Fri Jan 11 08:37:06 2013 -0500

SSL client certificate via Keystore from a Resource file provided by Brendan Jurd

It seems that the most common way to deal with this situation is to
specify the keystore file and the password via system properties
(javax.net.ssl.keyStore et. al.), but that wasn't suitable in my case.
 I needed to be able to load the keystore from a Resource file
embedded in the compiled JAR.

The class I came up with is attached.  It builds on the WrappedFactory
provided in jdbc-postgres.  All the implementer needs to do is
override the two abstract methods to provide an InputStream of the key
store, and the password to access it.  The InputStream could be a
FileInputStream, or an InputStream returned by getResource(), or
whatever.

This class uses the same keystore for KeyManager (selecting the
key/cert to send as the client) and for TrustManager (verifying the
server's certificate against trusted CAs).  It could easily be
extended to allow for two separate keystores by adding another couple
of methods.

Author: Steven Schlansker Date: Sun Dec 30 11:06:43 2012 -0800

Allow driver to set read-only based on a connection parameter.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:

Dave Cramer (davec), Kris Jurka.


Version 9.2-1002 (2012-11-14)

  • fix Fix Statement.toString to handle binary integer and Float types Committed by davec.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:

Dave Cramer (davec).


Version 9.2-1001 (2012-10-31)

  • fix Fix performance regression introduced by using InetSocketAddress.getHostName Committed by davec. Thanks to Scott Harrington, Kris Jurka.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:
Dave Cramer (davec).

This is a list of other contributors:
Scott Harrington, Kris Jurka.


Version 9.2-1000 (2012-09-27)

  • add Implemented query timeout Committed by davec. Thanks to davec.
  • add First pass implementation of binary protocol Committed by davec. Thanks to Mikko Tiihonen.
  • add SSPI authentication support Committed by davec. Thanks to Christian Ullrich.
  • add isValid implementation Committed by davec. Thanks to Louis Flores.
  • add Add support for hstore Committed by davec. Thanks to Mikko Tiihonen.
  • add Implemented JDBC4 setBinaryStream Committed by davec. Thanks to Johann Oskarsson.
  • add Implementation of simple connection failover Committed by davec. Thanks to Mikko Tiihonen.
  • add Allow changing of send recv buffer sizes Committed by davec. Thanks to Bernd Helme.
  • fix Fixed broken jdk 1.4 builds Committed by davec. Thanks to Mike Fowler.
  • fix Stack overflow fix Committed by davec. Thanks to Mike Fowler.
  • fix A BitSet is a compact representation if we're only considering builtin types that will have low oids, but if any user defined types are enabled, all bets are off. Once the oid counter exceeds INT_MAX, database connections were failing outright even if no high oid types used binary transfer because we represent these oids with negative values that a BitSet cannot handle. Committed by jurka.
  • fix Fix attacl for servers below 8.3 Committed by davec.
  • update SSL implementation to mimic libpq more closely Committed by davec. Thanks to Andras Bodor.
  • update fix to build for java 1.8 Committed by davec. Thanks to Mikko Tiihonen.
  • update Updated Brazilian Portuguese translation. Committed by davec. Thanks to Euler Taveira de Oliveira.
  • update Documentation updates Committed by ringerc.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:

Dave Cramer (davec), Kris Jurka (jurka), Craig Ringer (ringerc).

This is a list of other contributors:

Andras Bodor, Bernd Helme, Christian Ullrich, davec, Euler Taveira de Oliveira, Johann Oskarsson, Louis Flores, Mike Fowler, Mikko Tiihonen.


Version 9.1-902 (2011-04-18)

  • fix Fix ResultSetMetaData retrieval when the oid counter exceeds INT_MAX. Since Java doesn't have unsigned ints we retrieve the values as long and then truncate to int, so it may have a negative value. Committed by jurka. Thanks to Owen Tran .
  • fix Cache a copy of ResultSetMetaData in the ResultSet. This solves a major performance problem for ResultSetMetaData users which did not cache the ResultSetMetaData object. One of the users is the driver's own implementation of updatable ResultSets, so this can't be worked around solely in end user code. In the 9.0 and earlier releases, the Field objects were used to hold database lookup results and these were longer lived than the ResultSetMetaData object. Now that ResultSetMetaData is holding these database lookups we must hold onto the object to avoid repeating the database queries. Committed by jurka. Thanks to Steven Schlansker.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:
Kris Jurka (jurka).

This is a list of other contributors:
Owen Tran Steven Schlansker.


Version 9.1-901 (2011-04-18)

  • update Set version to 901 for release Committed by jurka. Thanks to jurka.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:
Kris Jurka (jurka).

This is a list of other contributors:

jurka.


Version 9.1dev-900 (2011-04-18)

  • add Add support for setting application_name on both connection startup and later through Connection.setClientInfo. Committed by jurka.
  • add Fetch all metadata for the ResultSet in one query instead of making a trip for each attribute of each column. Committed by jurka.
  • add Bring getSchemas up to JDBC 4 compliance. Return the additional TABLE_CATALOG column that was added in JDBC 3. Additionally support the getSchemas method added in JDBC 4 which filters the returned schemas. Committed by jurka.
  • add Bring getProcedures/getProcedureColumns up to JDBC 4 compliance. Both methods have added a SPECIFIC_NAME column that can be used to differentiate between overloaded functions. getProcedureColumns has added some other additional columns to describe the datatype being returned. Committed by jurka. Thanks to Thor Michael Store.
  • add Allow the driver to support setObject with Types.DISTINCT. We report metadata indicating that values are of this type, so we'd better accept it coming back in. Committed by jurka. Thanks to Vitalii Tymchyshyn.
  • add Support building with the 1.7 JDK. Committed by jurka.
  • add Support returning generated keys from batch statement execution. Unfortunately we need to disable the actual batching that the driver does behind the scenes because now that it is returning potentially large result values we must avoid a deadlock. Committed by jurka.
  • fix Report permission metadata for a table with no permissions correctly. Committed by jurka. Thanks to danap.
  • fix Ensure that an XAConnection throws SQLExceptions appropriately even though it's a proxy class. Before this change it was throwing an InvocationTargetException instead of the actual cause. Committed by jurka. Thanks to Yaocl.
  • fix Make updatable ResultSets work with SQLXML data. Committed by jurka. Thanks to Michael Musset.
  • fix If a domain has a not null constraint, report that information in the metadata for both DatabaseMetaData.getColumns and ResultSetMetaData.isNullable. Committed by jurka. Thanks to Thomas Kellerer.
  • fix In DatabaseMetaData.getSchemas, return the user's own temp schemas, but no others. Previously it wasn't returning the users own temp schema, but was showing all toast temp schemas. Committed by jurka. Thanks to Thomas Kellerer.
  • fix Change ResultSetMetaData to return information on serial datatypes in getColumnTypeName to match up with the behaviour of DatabaseMetaData.getColumns. Committed by jurka.
  • fix Fix literals that are injected into a SQL query to contain the PG specific E'' marker if they are using the non-standard-conforming-strings backslash escaping. This will get rid of the warnings from escapestringwarning. Committed by jurka.
  • fix Clear the generated keys associated with a Statement at the next execution. If the next execution doesn't want generated keys, we don't want to leave the old keys around. Committed by jurka.
  • fix The 9.1 server canonicalizes the client_encoding setting, so if we ask for unicode we get utf8. This confused the driver because previous versions just echo back what we asked for. Ask for the canonical name now. Committed by jurka. Thanks to Mike Fowler.
  • fix When running tests, don't assume that we know the server's default transaction isolation level. Committed by jurka. Thanks to Kevin Grittner.
  • update Update default permissions to account for changes in different server versions. 8.2 removed the rule permission while 8.4 added a trunctate permission. Committed by jurka.
  • update Newer server versions (9.0+) allow extrafloatdigits to be set to 3 instead of the old limit of 2 to get the maximum precision of floating point values out of the server. Committed by jurka.
  • update Update the date tests for changes in the 1.6 JVM. Older versions allowed five digit years and single digit days and months. The latest code only allows a strict yyyy-mm-dd. This changed somewhere between 1.6.011 and 1.6.021. Committed by jurka. Thanks to Mike Fowler.
  • update Use slightly different SQL State error codes for the different types of connection setup failures to indicate which can be retried and which cannot. Committed by jurka. Thanks to Donald Fraser and Kevin Grittner.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:

Kris Jurka (jurka).

This is a list of other contributors:

danap, Donald Fraser and Kevin Grittner, Kevin Grittner, Michael Musset, Mike Fowler, Thomas Kellerer, Thor Michael Store, Vitalii Tymchyshyn, Yaocl.


Version 9.0-801 (2010-09-20)

  • add Implement returning ASC/DESC order information in getIndexInfo. Committed by jurka.
  • add Support PreparedStatement.setObject(int, Character). Committed by jurka. Thanks to Vitalii Tymchyshyn.
  • fix Work around a bug in the server's implementation of the binary copy protocol. Committed by jurka. Thanks to Matthew Wakeling.
  • fix Make ResultSetMetaData.getColumnType match the results of DatabaseMetaData.getColumns.DATA_TYPE for domain and composite types. Committed by jurka. Thanks to Thomas Kellerer.
  • fix Fix DatabaseMetaData.getColumns for 7.2 servers. This was accidentally broken in the previous release. Committed by jurka.
  • fix Fix a minor concurrency issue during the setup for processing escape functions. Committed by jurka. Thanks to Pierre Queinnec.
  • fix Fix DatabaseMetaData routines that return index information for a change in the 9.0 server that no longer renames the pg_attribute entries for the index, but only adjust the table's attributes on a column rename. Committed by jurka. Thanks to Adam Rauch.
  • fix Track the tail of the SQLWarning chain so we can quickly add a new element to it instead of having to walk the entire chain from the head. This is important for the performance of handling plpgsql functions which do a ton of RAISE NOTICES which get translated into warnings. Committed by jurka. Thanks to Altaf Malik.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:

Kris Jurka (jurka).

This is a list of other contributors:

Adam Rauch, Altaf Malik, Matthew Wakeling, Pierre Queinnec, Thomas Kellerer, Vitalii Tymchyshyn.


Version 9.0-dev800 (2010-05-11)

  • add Support reading the new hex escaped bytea format. Committed by jurka.
  • add Add support for returning the new TRUNCATE privilege, that was added in 8.4, to the list of known table privileges. Committed by jurka. Thanks to Thomas Kellerer.
  • add Add the partial index constraint to the FILTER_CONDITION column returned by DatabaseMetaData.getIndexInfo. Committed by jurka. Thanks to Mark Kirkwood.
  • add Japanese translation of error messages. Committed by jurka. Thanks to Hiroshi Saito.
  • add Bulgarian translation of error messages. Committed by jurka. Thanks to Viktor Usunov.
  • add Add some more specific types to the return value for DatabaseMetaData.getTables. Return composite types, temporary views, and temporary sequences with TABLE_TYPE values specifically for them. Committed by jurka. Thanks to Thomas Kellerer.
  • add Add loglevel and protocolversion options to DataSources. Committed by jurka.
  • fix Remove an unused Sun specific import that prevented compilation on non-Sun JDKs. Committed by jurka. Thanks to Tom Lane.
  • fix Change the processing of Statement.executeUpdate to complain if any of the results of a multi-statement query string return a ResultSet. Previously we were only checking the first result which resulted in silent partial execution of later SELECT statements. Committed by jurka. Thanks to Joseph Shraibman.
  • fix Check that a Connection hasn't been closed before allowing any operations on it. Committed by jurka. Thanks to Kevin Grittner.
  • fix Don't allow rollback or commit when a Connection is in autocommit mode. Committed by jurka. Thanks to Kevin Grittner.
  • fix Change the SQLStates reported for using a closed Connection and closed ResultSet to be more consistent. Report connectiondoesnotexist (08003) for a closed Connection and objectnotinstate (55000) for a ResultSet. Committed by jurka.
  • fix When a COPY operation is the first statement issued in a transaction, it was not sending the BEGIN necessary to start the transaction. Committed by jurka. Thanks to Maciek Sakrejda.
  • fix The 8.4 release added some code to avoid re-describing a statement if we already had the type information available by copying the resolved type information from the query to the parameters. Its goal was just to overwrite parameters without a type (unknown), but it was actually overwriting all types which could change the query's desired behaviour. Committed by jurka. Thanks to Hiroshi Saito.
  • fix Fix the ORDINALPOSITION in the DatabaseMetaData.getColumns. Previously we were returning simply pgattribute.attnum, but that doesn't work in the presence of dropped columns because later columns don't get their attnum decremented if a preceding column is dropped. Instead use the row_number window function for 8.4 and later servers to figure out the live column position. Committed by jurka.
  • fix Always specify an XA error code when creating an XAException. Otherwise a transaction manager won't know what to do with the error and may have to assume the worst. Committed by jurka. Thanks to Heikki Linnakangas, Justin Bertram.
  • fix LOB truncation didn't allow truncating to zero length because it was improperly using the positioning length checks which don't allow a zero length. Committed by jurka. Thanks to Simon Kissane.
  • fix Protocol sync was lost when a batch statement parameter had an embedded null byte. Committed by jurka. Thanks to Pierre Queinnec.
  • fix Fix a problem using the Copy API to copy data to the server from a Reader. After reading data out of the Reader and into a buffer, we were sending the entire buffer on to the server, not just the subset of it that was filled by the read operation. Committed by jurka. Thanks to Leonardo F.
  • fix A XA transaction should not change the autocommit setting of a Connection. Ensure that we restore this property correctly after the XA transaction completes. Committed by jurka. Thanks to Heikki Linnakangas, Achilleas Mantzios.
  • fix PoolingDataSources were not picking up all of the properties that were set for them. Notably it would not give you a SSL connection when asked. Committed by jurka. Thanks to Eric Jain.
  • fix When setNull is called with a TIME or TIMESTAMP type we cannot pass that type information on to the backend because we really don't know whether it is with or without a time zone. For a NULL value it doesn't matter, but we can't establish a type because a later call with a non-null value using the same PreparedStatement can potentially end up using a specific type that is incorrect. Committed by jurka. Thanks to Martti Jeenicke.

Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:

Kris Jurka (jurka).

This is a list of other contributors:

Eric Jain, Heikki Linnakangas, Achilleas Mantzios, Heikki Linnakangas, Justin Bertram, Hiroshi Saito, Joseph Shraibman, Kevin Grittner, Leonardo F, Maciek Sakrejda, Mark Kirkwood, Martti Jeenicke, Pierre Queinnec, Simon Kissane, Thomas Kellerer, Tom Lane, Viktor Usunov.


All Committers

This is a list of all people who have ever participated as committers on this project.

  • Kris Jurka (jurka)
  • Oliver Jowett (oliver)
  • Dave Cramer (davec)
  • Barry Lind (blind)
  • Craig Ringer (ringerc)


Privacy Policy | About PostgreSQL
Copyright © 1996-2021 The PostgreSQL Global Development Group