PackageTrack
Sign in Get early access

org.postgresql:postgresql

42.7.13 #982 most downloaded on Maven Central pgjdbc/pgjdbc

What this package is like to depend on

Last release 1 months ago

06 Jul 2026

Ships fairly regularly

a new release about every 3 months

Some releases are documented

notes for 72 of 202 stable releases

Nothing withdrawn

no release was ever pulled

13 years old

202 releases · first in 2013

6 releases in the last 12 months

see the full history below

Release timeline

202 releases · Apr 2013 to Jul 2026
2014 2016 2018 2020 2022 2024 2026
Release Pre-release

Releases

latest 60 of 202
  1. 42.7.13 06 Jul 2026
    Release notes

    Changes

    • docs: add 42.7.13 release changelog @davecramer (#4270)
    • Adjust EditorConfig für Makefile @BaumiCoder (#4279)
    • fix(scram): fail closed on channel-binding downgrade (no scram bump) @vlsi (#4272)
    • Bump pgjdbc version from 42.7.12 to 42.7.13 @davecramer (#4269)
    • chore: remove test-anorm-sbt module and its disabled CI wiring @vlsi (#4261)
    • refactor(test-gss): convert to Java/JUnit 5 submodule of the main build @vlsi (#4166)
    • ci: derive PG test versions from a Renovate-managed maxPgVersion @vlsi (#4218)
    • feat(insert): cap reWriteBatchedInserts by the protocol limit, not 128 @vlsi (#4207)
    • refactor(metadata): derive getPrimaryKeys from pg_constraint.conkey @vlsi (#4202)
    • fix(protocol): defer flushes until response processing @vlsi (#4196)
    • fix(build): resolve the Temurin 8 test toolchain by vendor @vlsi (#4257)
    • build: include multi-release source sets in the JaCoCo coverage report @vlsi (#4256)
    • fix(ci): read java_vendor before overwriting java_distribution @vlsi (#4255)
    • ci: generate the whole matrix in one batch, coverage job included @vlsi (#4253)
    • ci: pass CODECOV_TOKEN so protected-branch coverage uploads succeed @vlsi (#4254)
    • ci: collect coverage on one pinned job @vlsi (#4245)
    • ci: apply -DqueryTimeout from the matrix query_timeout axis @vlsi (#4246)
    • ci: make Codecov project and patch statuses informational @vlsi (#4244)
    • fix(build): restore JaCoCo XML report so Codecov receives coverage @vlsi (#4240)
    • test(replication): shrink big-transaction inserts to avoid CI timeouts @vlsi (#4243)
    • update maintainers @davecramer (#4222)
    • test: add hermetic test for localSocketAddress @vlsi (#4224)
    • docs(translation): clean up leftover German header in ja.po @vlsi (#4206)
    • Update ja.po @davecramer (#2004)
    • test: add PostgreSQL 18 to the CI test matrix @vlsi (#4198)
    • test: silence expected SSPI warning stack trace in SSPIClientWaffleTest @vlsi (#4197)
    • fix(ssl): build PKIX trust anchors without a KeyStore so FIPS-mode JVMs can load sslrootcert @vlsi (#4193)
    • test: fix flaky sentLocationEqualToLastReceiveLSN replication test @vlsi (#4175)
    • build: promote MethodCanBeStatic to error level @vlsi (#4172)
    • Fix PGInterval.setSeconds to reject out of range and NaN values @sehrope (#4194)
    • Replace connectThreadFactory with connectExecutor @sehrope (#4165)
    • Fix deleting temp file when spooling large stream to disk in StreamWrapper @sehrope (#4190)
    • chore: Add top level /scratch to gitignore @sehrope (#4164)
    • refactor: favour composition over inheritance for Driver.ConnectTask @vlsi (#4160)
    • Fix NumberParser.getFastLong(...) handling of overlong values @sehrope (#4163)
    • build: produce a multi-release jar from reduced-pom.xml on Java 11+ @vlsi (#4157)
    • Add connectThreadFactory and refactor Driver to use FutureTask for loginTimeout connection attempts @sehrope (#4120)
    • test: verify custom properties reach socket factory @vlsi (#4125)
    • test: fix LazyCleanerTest timeouts for the lingering Java 8 cleanup thread @vlsi (#4122)
    • test: stabilise StatementTest.fastCloses on Windows @vlsi (#4121)
    • fix: append default non-proxy hosts when socksNonProxyHosts is set @davecramer (#4045)
    • test: budget terminating Sync in BatchDeadlockTest small-RETURNING branch @vlsi (#4116)
    • test: make message assertions locale-independent @vlsi (#4113)
    • build: drop xgettext default keywords; regenerate translations @vlsi (#4100)
    • ci: opt-in scheduled workflows via ENABLE_SCHEDULED_JOBS repo variable @vlsi (#4085)
    • Avoid direct java.lang.management dependency in maxResultBuffer parser @mblakley-casana (#4069)
    • fix: restore pre-describe for generated-key batches @bilalshehata (#4014)
    • revert: drop unrelated whitespace changes in CHANGELOG.md @dfa1 (#4065)
    • fix: getCharacterStream wraps String in StringReader @dfa1 (#4063)

    🚀 Features

    • feat: invalidate prepared statement cache via search_path GUC_REPORT (PG 18+) @vlsi (#4259)
    • feat: add classLoaderStrategy for thread-context classloader fallback @vlsi (#4167)

    🐛 Bug Fixes

    • fix(jdbc): reject empty timestamp/date/time text with a clear error @vlsi (#4278)
    • fix: flush LargeObject output stream before marking closed @davecramer (#4248)
    • fix(jdbc): classify updatable result set by search_path visibility @vlsi (#4214)
    • fix: render bytea text parameters in PreparedStatement#toString @vlsi (#4201)
    • feat: invalidate prepared statement cache via search_path GUC_REPORT (PG 18+) @vlsi (#4259)
    • fix: detect native CALL preceded by a comment in CallableStatement (#2538) @vlsi (#4209)
    • fix(jdbc): return null CHAR_OCTET_LENGTH for non-character columns @vlsi (#4231)
    • fix(jdbc): honor scale in ResultSet.getBigDecimal(int, int) @vlsi (#4211)
    • fix(largeobject): correct BlobInputStream mark/reset position and add efficient skip @vlsi (#4204)
    • fix(core): detect search_path changes case-insensitively @vlsi (#4216)
    • fix(build): restore checker-qual and waffle-jna in the published pom @vlsi (#4199)
    • fix: clear ResourceBundle cache on deregister so the driver can unload @vlsi (#4237)
    • fix: support java.time values in updatable ResultSet updateRow()/insertRow() @devs-lair (#3848)
    • fix: skip autosave savepoint for SET LOCAL/SESSION TRANSACTION (#3307) @vlsi (#4203)
    • fix: simplify implementation of Statement#cancel @vlsi (#1827)
    • fix: auto-detect SSL key format instead of relying on .key extension @vlsi (#3946)
    • fix: avoid AssertionError in BatchResultHandler when the connection is closed @vlsi (#4187)
    • fix: close socket when PgConnection setup fails after connect @vlsi (#4161)
    • fix: avoid nulling contextClassLoader on shared commonPool workers @vlsi (#4156)
    • fix: keep LazyCleanerImpl cleanup task alive across transient empty queue @vlsi (#4038)
    • fix: PGXAConnection no longer saves and restores the caller's autoCommit @vlsi (#4114)
    • i18n: use MessageFormat placeholders in three GT.tr call sites @vlsi (#4105)
    • feat: flushCacheOnDdl — transparent re-prepare after CREATE/DROP/ALTER @vlsi (#4067)
    • fix: make sure GSS connection uses gssResponseTimeout rather than sslResponseTimeout @vlsi (#4076)

    📝 Documentation

    • Maintain consistency with the use of the word maintainer vs comitter @davecramer (#4234)
    • test: guard authentication-plugin test against trust auth (#2442) @vlsi (#4239)
    • feat: invalidate prepared statement cache via search_path GUC_REPORT (PG 18+) @vlsi (#4259)
    • docs: note PKCS-12 client certificate chain requirement @vlsi (#4200)
    • docs: clarify search_path correctness for server-prepared statements @vlsi (#4227)
    • i18n(it): fill untranslated messages salvaged from #1278 @vlsi (#4225)
    • docs: advertise RSS feeds with an autodiscovery link @vlsi (#4250)
    • docs: redirect legacy documentation URLs to their new Hugo pages @vlsi (#4238)
    • docs: remove null check that can never fail @djarnis73 (#4242)
    • fix: reject SQL_TSI_FRAC_SECOND with an explicit, explained error @vlsi (#4229)
    • i18n(zh_CN): fill untranslated messages salvaged from #2123 @vlsi (#4208)
    • docs: clarify URL connection options fixes Issue #2526 @davecramer (#2532)
    • docs: add 42.7.11 release changelog @vlsi (#4078)
    • i18n: russian translation @vlsi (#1280)

    🧰 Maintenance

    • build: check docs/ and .github/ formatting with Autostyle @vlsi (#4276)
    • ci: skip Codecov upload on failed branch builds @vlsi (#4260)
    • feat(core): add OID constants for geometric arrays, RECORD, refcursor @vlsi (#4220)
    • ci: upload heap dumps from all modules and on push failures @vlsi (#4236)
    • fix: reject null URL in Driver.acceptsURL with a clear NullPointerException @vlsi (#4205)
    • refactor(core): drop unused encoding Writer plumbing from PGStream @vlsi (#4215)
    • build: verify benchmarks under check and CI, skip Jandex for them @vlsi (#4235)
    • fix: attach the released jar and signature to the GitHub release @vlsi (#3814)
    • build: ignore .codex-review scratch folder @vlsi (#4219)
    • test: add CI testing against PostgreSQL HEAD @vlsi (#3257)
    • ci: group Renovate updates by Maven groupId @vlsi (#4184)
    • build: tidy .gitattributes for generated files and java diffs @vlsi (#4118)
    • build: use explicit fileTree for gettext .po inputs @vlsi (#4106)
    • i18n: convert ISO-8859-x .po files to UTF-8 @vlsi (#4115)
    • ci: validate renovate.json on push and pull request @vlsi (#4112)
    • ci(renovate): cap junit-bom <6.0 and checkerframework <4.0 @vlsi (#4111)

    ⬆️ Dependencies

    45 changes

    Note truncated.

    Open source →
    Release notes

    Added

    • feat: invalidate the prepared-statement cache when the server reports a search_path change via GUC_REPORT (PostgreSQL 18+), so cached plans are no longer used against the wrong schema PR #4259
    • feat: reWriteBatchedInserts now merges up to 32768 rows into one multi-values INSERT (bounded by the 65535 bind-parameter limit on the extended protocol) instead of capping at 128, which speeds up batches of few-column rows. The new reWriteBatchedInsertsSize connection property lowers that cap when set; the default of 0 uses that maximum. PR #4207
    • feat: invalidate the prepared-statement cache after CREATE/DROP/ALTER so callers no longer trip on "cached plan must not change result type" without opting into autosave=ALWAYS. Controlled by the new flushCacheOnDdl connection property (default true); set to false for the prior behaviour. PR #4067
    • feat: add connectExecutor connection property to customize the Executor used to run the worker task that performs the connection attempt when loginTimeout is in effect. The value is the fully qualified name of a class implementing java.util.concurrent.Executor. With a null value, the default, the driver retains the prior behavior of running the connection attempt on a daemon thread named "PostgreSQL JDBC driver connection thread". The executor must run the task on a thread other than the caller's. Running the attempt on a named thread lets applications that monitor driver-created threads identify it. PR #4165
    • feat: add classLoaderStrategy connection property to control which classloaders the driver searches when loading a class named by a connection property, for example socketFactory. The default driver-first now falls back to the thread context classloader when the driver's classloader cannot resolve the class, which fixes class loading in non-flat class paths such as Quarkus and OSGi. Set driver to keep the previous driver-classloader-only behaviour, or context-first to prefer the thread context classloader Issue #2112 PR #4167
    • feat: add OID constants for geometric arrays, RECORD, and refcursor PR #4220
    • feat: LargeObject BlobInputStream now skips by seeking instead of reading, and the driver exposes the server version so it can select the 64-bit large-object API where available PR #4204

    Changed

    • refactor: the worker that runs the connection attempt under loginTimeout is now a FutureTask (ConnectTask) instead of the hand-rolled ConnectThread. When the caller hits the timeout, the task is now cancelled with cancel(true), which interrupts the worker thread rather than letting it run to completion. This makes the connection attempt interruptible, so loginTimeout can stop a slow connection attempt instead of leaking a thread. As before, a connection that the worker still manages to establish after the caller gives up is closed by the worker so that it does not leak. There are no public API changes and this should only lead to faster background resource cleanup for connections that time out. PR #4120
    • chore: PGXAConnection.ConnectionHandler now rejects setAutoCommit(false) and setSavepoint(...) during an active XA branch, in addition to the long-rejected setAutoCommit(true) / commit() / rollback(). The setSavepoint rejection was already meant to be in place but the guard misspelled the method name as setSavePoint, so savepoints silently went through. Both changes bring the proxy in line with JTA 1.2 §3.4. PR #4114
    • chore: commitPrepared / rollback-of-prepared now return XAER_RMFAIL instead of XAER_RMERR when the underlying connection is left in a non-idle TransactionState. Transaction managers (Geronimo, Narayana, Atomikos) treat XAER_RMFAIL as retryable on a fresh XAResource; the prepared transaction is no longer abandoned. PR #4114
    • refactor: derive getPrimaryKeys from pg_constraint.conkey PR #4202

    Fixed

    • fix: the published GitHub release now ships the released postgresql-<version>.jar and its detached PGP signature, taken from the same signed build that is uploaded to Maven Central, instead of a leftover SNAPSHOT jar Issue #3812 PR #3814
    • fix: simplify the Statement#cancel state machine by dropping the redundant CANCELLED state. killTimerTask now waits for the state to return to IDLE directly, which removes a spin-forever case when more than one thread observes the cancel completing PR #1827.
    • perf: defer simple-query flushes until the driver reads the response, allowing BEGIN and the following query to share a network flush Issue #3894 PR #4196
    • fix: reWriteBatchedInserts no longer throws IllegalArgumentException when batching a parameterless INSERT (for example INSERT INTO t VALUES (1, 2)) of 256 rows or more PR #4207
    • fix: a comment before CALL in a CallableStatement no longer hides the native call, so OUT parameter registration works for /* comment */ call proc(?, ?) and similar. Parser.modifyJdbcCall now skips leading whitespace and SQL comments (both -- and /* */) before the call, tolerates a trailing comment after a { ... } escape, and no longer adds a spurious comma when moving an OUT parameter into a call whose arguments are only a comment Issue #2538 PR #4209
    • fix: PreparedStatement.toString() no longer throws for a bytea value supplied as text via PGobject. Hex-format values (\x...) are validated and rendered as a bytea literal, and escape-format values are quoted and cast like any other literal Issue #3757 PR #4201
    • fix: the driver no longer nulls the contextClassLoader of shared ForkJoinPool.commonPool() worker threads, which previously left unrelated tasks on those threads running with a null classloader Issue #4155 PR #4156
    • fix: PgResultSet#getCharacterStream wraps String in a StringReader PR #4063
    • fix: PGXAConnection no longer saves and restores the underlying connection's JDBC autoCommit flag. All XA-protocol SQL (BEGIN, PREPARE TRANSACTION, COMMIT, ROLLBACK, COMMIT PREPARED, ROLLBACK PREPARED, the recover() SELECT) is sent through QUERY_SUPPRESS_BEGIN, so the caller's autoCommit value is invariant across every XAResource call. Fixes the "2nd phase commit must be issued using an idle connection" failure during recovery on managed datasources that pool connections with autoCommit=false (TomEE, WildFly, WebSphere Liberty) PR #4114
    • fix: PGXAConnection.prepare() now mutates XA state only after PREPARE TRANSACTION succeeds. A failed PREPARE previously left the driver thinking the branch was already prepared, so the follow-up rollback(xid) tried ROLLBACK PREPARED against a non-existent gid and returned XAER_RMERR. Transaction managers (Narayana) escalated this to HeuristicMixedException. With the fix, rollback(xid) takes the active-branch path and issues a plain ROLLBACK, which the server accepts cleanly. Fixes Issue #3153, Issue #3123. PR #4114
    • fix: an updatable result set over an unqualified table name is now classified using only the table visible through search_path. When two schemas held a table with the same name and the same primary or unique index name but a different set of key columns, the driver took the union of both schemas' columns, so the result set could be wrongly rejected as not updatable PR #4214. Supersedes PR #3400.
    • fix: LargeObject.close() now flushes a buffered output stream before marking the object closed, so closing a large object without an explicit flush() no longer drops buffered writes. The flush runs while the object is still open (it calls back into LargeObject.write()), and lo_close always runs afterward; a failure from lo_close no longer masks an earlier flush error, and the transaction is not committed when the flush failed Issue #4247 PR #4248.
    • fix: reject empty timestamp, timestamptz, and date text with a clear SQLException (SQLState 22007) instead of an ArrayIndexOutOfBoundsException PR #4278
    • fix: return null CHAR_OCTET_LENGTH for non-character columns PR #4231
    • fix: honor scale in ResultSet.getBigDecimal(int, int) PR #4211
    • fix: support java.time values in an updatable ResultSet updateRow() / insertRow() PR #3848
    • fix: improve batching when the RETURNING clause contains varchar or numeric types PR #4014
    • fix: correct estimatedReceiveBufferBytes accounting after a forced Sync PR #4014
    • fix: avoid creating a transient ResultSet for describe-statement purposes, and restore the pre-describe path for generated-key batches PR #4014
    • fix: add an explicit failure message when a multi-statement command executes in a batch PR #4014
    • fix: detect search_path changes case-insensitively PR #4216
    • fix: auto-detect the SSL key format instead of relying on the .key extension PR #3946
    • fix: build PKIX trust anchors without a KeyStore so FIPS JVMs work PR #4193
    • fix: use gssResponseTimeout rather than sslResponseTimeout for GSS connections PR #4076
    • fix: skip the autosave savepoint for SET LOCAL / SET SESSION TRANSACTION PR #4203
    • fix: do not throw AssertionError from BatchResultHandler on a closed connection PR #4187
    • fix: reject SQL_TSI_FRAC_SECOND with an explicit, explained error PR #4229
    • fix: reject a null URL in Driver.acceptsURL with a clear NullPointerException PR #4205
    • fix: reject overlong inputs in NumberParser.getFastLong instead of silently wrapping PR #4163
    • fix: reject out-of-range and NaN values in PGInterval.setSeconds PR #4194
    • fix: close the socket when PgConnection setup fails after connect PR #4161
    • fix: keep the LazyCleanerImpl cleanup task alive across a transient empty queue PR #4038
    • fix: append the default non-proxy hosts when socksNonProxyHosts is set PR #4045
    • fix: clear the ResourceBundle cache on deregister so the driver can unload PR #4237
    • fix: delete the temp file when spooling a stream to disk fails with an IOException PR #4190
    • fix: avoid a direct java.lang.management dependency in the maxResultBuffer parser PR #4069
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.13 Released date: 2026-07-06 10:18:00 -0400 categories: - new release version: 42.7.13 summary: "Adds search_path GUC_REPORT cache invalidation (PG 18+), flushCacheOnDdl, connectExecutor, classLoaderStrategy properties; caps reWriteBatchedInserts to protocol limit; improves batching performance; fixes updatable ResultSet search_path visibility, XA autoCommit, BlobInputStream seek, SSL key-format detection, FIPS trust anchors, and many more."

    Notable changes

    Added

    • feat: invalidate prepared statement cache via search_path GUC_REPORT (PG 18+) PR #4259
    • feat: flushCacheOnDdl — re-prepare server statements after CREATE/DROP/ALTER PR #4067
    • feat: connectExecutor (Executor) instead of connectThreadFactory (ThreadFactory) PR #4165
    • feat: add classLoaderStrategy for thread-context classloader fallback PR #4167
    • feat: cap reWriteBatchedInserts by the protocol limit, not 128 PR #4207
    • feat(core): add OID constants for geometric arrays, RECORD, refcursor PR #4220
    • feat(largeobject): skip in BlobInputStream by seeking instead of reading PR #4204
    • feat(largeobject): expose server version for 64-bit LO API selection PR #4204

    Changed

    • refactor(metadata): derive getPrimaryKeys from pg_constraint.conkey PR #4202
    • refactor(core): drop unused encoding Writer plumbing from PGStream PR #4215
    • refactor: favour composition over inheritance for Driver.ConnectTask PR #4160
    • refactor(test-gss): convert GSS tests to Java/JUnit 5 submodule PR #4166
    • chore: remove test-anorm-sbt module and its CI wiring PR #4261
    • build: produce a multi-release jar from reduced-pom.xml on Java 11+ PR #4157
    • build: verify benchmarks under check and CI, skip Jandex for them PR #4235
    • build: promote MethodCanBeStatic to error level PR #4172
    • i18n: convert ISO-8859-x .po files to UTF-8 PR #4115
    • i18n: fill untranslated Italian, Simplified Chinese messages PR #4225 PR #4208
    • i18n: revise Russian translations in ru.po PR #1280
    • docs: note PKCS-12 client certificate chain requirement PR #4200
    • docs: clarify search_path correctness for server-prepared statements PR #4227
    • docs: fix invalid jdbc:postgresql:/ URL form in connection guide PR #2532
    • docs: redirect legacy documentation URLs to their new Hugo pages PR #4238

    Fixed

    • fix(jdbc): classify updatable result set by search_path visibility PR #4214
    • fix: render bytea text parameters in PreparedStatement#toString PR #4201
    • fix: PGXAConnection no longer saves and restores the caller's autoCommit PR #4114
    • fix: detect native CALL preceded by a comment in CallableStatement PR #4209
    • fix(jdbc): return null CHAR_OCTET_LENGTH for non-character columns PR #4231
    • fix(jdbc): honor scale in ResultSet.getBigDecimal(int, int) PR #4211
    • fix: support java.time values in updatable ResultSet updateRow()/insertRow() PR #3848
    • fix: PgResultSet#getCharacterStream wraps String in StringReader PR #4063
    • fix(protocol): defer flushes until response processing PR #4196
    • fix: improve batching when RETURNING contains varchar, numeric types PR #4014
    • fix: correct estimatedReceiveBufferBytes accounting after forced Sync PR #4014
    • fix: avoid creating transient ResultSet for describe statement purposes PR #4014
    • fix: restore pre-describe for generated-key batches PR #4014
    • fix: add explicit failure message when multi-statement executes in batch PR #4014
    • fix(core): detect search_path changes case-insensitively PR #4216
    • fix(largeobject): reset BlobInputStream relative to the LargeObject position PR #4204
    • fix(largeobject): flush a buffered output stream before marking the object closed, and do not let lo_close mask a flush failure Issue #4247 PR #4248
    • fix: auto-detect SSL key format instead of relying on .key extension PR #3946
    • fix(ssl): build PKIX trust anchors without a KeyStore so FIPS JVMs work PR #4193
    • fix: make sure GSS connection uses gssResponseTimeout rather than sslResponseTimeout PR #4076
    • fix: skip autosave savepoint for SET LOCAL/SESSION TRANSACTION PR #4203
    • fix: do not throw AssertionError from BatchResultHandler on a closed connection PR #4187
    • fix: reject SQL_TSI_FRAC_SECOND with an explicit, explained error PR #4229
    • fix: reject null URL in Driver.acceptsURL with a clear NullPointerException PR #4205
    • fix: reject overlong inputs in NumberParser.getFastLong instead of wrapping PR #4163
    • fix: reject out of range and NaN values in PGInterval.setSeconds PR #4194
    • fix: close socket when PgConnection setup fails after connect PR #4161
    • fix: avoid nulling contextClassLoader on shared commonPool workers PR #4156
    • fix: keep LazyCleanerImpl cleanup task alive across transient empty queue PR #4038
    • fix: append default non-proxy hosts when socksNonProxyHosts is set PR #4045
    • fix: simplify implementation of Statement#cancel PR #1827
    • fix: clear ResourceBundle cache on deregister so the driver can unload PR #4237
    • fix: delete temp file when spooling a stream to disk fails with IOException PR #4190
    • fix: avoid direct java.lang.management dependency in maxResultBuffer parser PR #4069
    • fix: reWriteBatchedInserts no longer throws IllegalArgumentException for a parameterless INSERT of 256+ rows PR #4207
    • fix: ship the released jar and detached signature on the GitHub release instead of a SNAPSHOT PR #3814
    • fix: reject empty timestamp, timestamptz, and date text with a clear error instead of ArrayIndexOutOfBoundsException PR #4278

    Commits by author

    Vladimir Sitnikov (104 commits)

    Sehrope Sarkuni (11 commits)

    Dave Cramer (5 commits)

    James Howe (2 commits)

    Davide Angelocola (1 commit)

    Devs (1 commit)

    Mark Blakley (1 commit)

    Jens Teglhus Møller (1 commit)

    bshehata (1 commit)

    Michael Baumgartner (1 commit)

    Contributors to this release

    We also thank the translators whose work ships in this release: Federico Campoli (Italian) and Feng Zhihao (Simplified Chinese), and Sergey Mokhov for reviewing the Russian catalog.

    Open source →
  2. 42.7.12 29 Jun 2026
    Release notes

    Silent channel-binding authentication downgrade (CVE-2026-54291)

    channelBinding=require connections can be silently downgraded from SCRAM-SHA-256-PLUS (with channel binding) to plain SCRAM-SHA-256 (without it), losing the man-in-the-middle protection the setting is meant to guarantee. An attacker who can intercept the TLS connection triggers the downgrade with a certificate whose signature algorithm has no tls-server-end-point channel-binding hash. Examples are Ed25519, Ed448, and post-quantum algorithms.

    Two issues combine in releases 42.7.4 through 42.7.11:

    The bundled com.ongres.scram:scram-client (3.1 or 3.2) returns an empty byte array instead of failing when it cannot derive the binding hash for such a certificate. This is the library issue tracked as GHSA-p9jg-fcr6-3mhf.

    pgJDBC does not enforce channelBinding=require where it matters. ScramAuthenticator checks only that the server advertised a -PLUS mechanism; it neither rejects the empty binding nor checks that the negotiated mechanism uses channel binding. The connection therefore downgrades silently.

    Only connections that set channelBinding=require are affected. Under the default prefer policy, and under allow or disable, falling back to plain SCRAM is the documented behaviour.

    Releases before 42.7.4 are unaffected, because they do not support channel binding.

    Open source →
    Release notes

    Security

    • fix: Enforce SCRAM channel-binding policy and prevent silent downgrade. Under channelBinding=require, the driver silently downgraded from SCRAM-SHA-256-PLUS (with channel binding) to plain SCRAM-SHA-256 (without it) when the server presented a certificate whose signature algorithm has no tls-server-end-point channel-binding hash (e.g. Ed25519, Ed448, or post-quantum algorithms). An attacker who can intercept the TLS connection could exploit this to strip channel-binding protection. The fix enforces channel binding in the driver's own code: it now fails the connection when no binding data can be extracted, and verifies the negotiated mechanism uses channel binding (-PLUS) when require is set. Only connections that set channelBinding=require are affected. The default prefer policy and releases before 42.7.4 (which introduced channel-binding support) are unaffected. See the Security Advisory for more detail. The following CVE-2026-54291 has been issued.
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.12 Released date: 2026-06-29 12:00:00 -0400 categories: - new release version: 42.7.12 summary: "Security release: fixes silent channel-binding downgrade (CVE-2026-54291). Under channelBinding=require, a server presenting a certificate with an unsupported signature algorithm (e.g. Ed25519) could cause the driver to silently fall back to plain SCRAM-SHA-256, losing man-in-the-middle protection."

    Notable changes

    Security

    • fix: Enforce SCRAM channel-binding policy and prevent silent downgrade. Under channelBinding=require, the driver silently downgraded from SCRAM-SHA-256-PLUS (with channel binding) to plain SCRAM-SHA-256 (without it) when the server presented a certificate whose signature algorithm has no tls-server-end-point channel-binding hash (e.g. Ed25519, Ed448, or post-quantum algorithms). An attacker who can intercept the TLS connection could exploit this to strip channel-binding protection. The fix enforces channel binding in the driver's own code: it now fails the connection when no binding data can be extracted, and verifies the negotiated mechanism uses channel binding (-PLUS) when require is set. Only connections that set channelBinding=require are affected. The default prefer policy and releases before 42.7.4 (which introduced channel-binding support) are unaffected. See the Security Advisory for more detail. The following CVE-2026-54291 has been issued.
    Open source →
  3. 42.7.11 28 Apr 2026
    Release notes

    Security

    • fix: Limit SCRAM PBKDF2 iterations accepted from the server.
      pgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.
      See the Security Advisory for more detail.
      The following CVE-2026-42198 has been issued.

    Changes

    • fix: Add sources and javadocs to shaded published lib generation @sehrope (#4043)
    • update Changelog and website for release of 42.7.11 @davecramer (#4042)
    • Fix scram fix location in changelog and update published artifact developer list @sehrope (#4041)
    • Restrict test with scram_iterations to v16+ and release notes @sehrope (#4040)
    • chore(deps): update ubuntu:24.04 docker digest to 84e77de @renovate-bot (#4017)
    • test: add tests for QueryExecutor#getTransactionState @vlsi (#4006)
    • chore(deps): update actions/create-github-app-token action to v2.2.2 @renovate-bot (#3983)
    • fix: fix flaky CopyBothResponseTest by using WAL flush LSN @vlsi (#3979)
    • fix: fix flaky replication restart tests by waiting for confirmed_flush_lsn @vlsi (#3975)
    • test: fix flaky LogicalReplicationStatusTest by polling pg_stat_replication @vlsi (#3974)
    • chore: replace Appveyor with ikalnytskyi/action-setup-postgres @vlsi (#3966)
    • test: move test table creation from @beforeeach to @BeforeAll @vlsi (#3967)
    • Return jsonb as PGObject fixes Issue #3926 @davecramer (#3956)
    • Update docker scripts @davecramer (#3958)
    • implement require_auth, this is pretty much how libpq does this. @davecramer (#3895)
    • docs: add SCRAM authentication test setup section to TESTING.md @emmaeng700 (#3945)
    • Add RequireServerVersion annotation for tests @sehrope (#3939)

    🐛 Bug Fixes

    • fix: ensure extended protocol messages end with Sync message @vlsi (#3728)
    • fix: enable cursor-based fetching in extended protocol when transaction started via SQL command @vlsi (#3996)
    • fix: retry with SSL on IOException when sslMode=ALLOW @vlsi (#3973)
    • fix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in @vlsi (#3968)
    • fix: catch SecurityException from setContextClassLoader on ForkJoinPool workers @vlsi (#3962)
    • fix: use compareTo for LogSequenceNumber comparison @vlsi (#3961)
    • fix: release COPY lock on IOException to prevent connection hang (#3957) @vlsi (#3960)

    🧰 Maintenance

    • style: replace @exception with @throws in getBoolean javadoc @vlsi (#4035)
    • chore: use @vlsi/github-actions-random-matrix npm package @vlsi (#4008)
    • chore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres @vlsi (#4007)
    • chore: bump errorprone to 2.48.0 @vlsi (#4005)
    • test: add @DisableLogger annotation to suppress expected log warnings in tests @vlsi (#3971)
    • chore: suppress deprecations in test code to reduce build verbosity @vlsi (#3972)
    • chore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed @vlsi (#3970)
    • chore: use greedy pairwise coverage for CI matrix generation @vlsi (#3965)
    • chore: use full version tags in GitHub Actions comments @vlsi (#3963)

    ⬆️ Dependencies

    36 changes
    Open source →
    Release notes

    Security

    • fix: Limit SCRAM PBKDF2 iterations accepted from the server. pgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins. See the Security Advisory for more detail. The following CVE-2026-42198 has been issued.

    Added

    • feat: implement require_auth connection property, aligning with libpq behavior PR #3895

    Changed

    • chore: replace Appveyor CI with ikalnytskyi/action-setup-postgres PR #3966
    • chore: upgrade Gradle to v9 PR #3978

    Fixed

    • fix: ensure extended protocol messages end with Sync message PR #3728
    • fix: enable cursor-based fetching in extended protocol when transaction started via SQL command PR #3996
    • fix: retry with SSL on IOException when sslMode=ALLOW PR #3973
    • fix: make sure the driver honours connectTimeout when retrying the connection PR #3968
    • fix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in PR #3968
    • fix: catch SecurityException from setContextClassLoader on ForkJoinPool workers PR #3962
    • fix: use compareTo for LogSequenceNumber comparison to handle unsigned values correctly PR #3961
    • fix: release COPY lock on IOException to prevent connection hang PR #3957
    • fix: return jsonb as PGObject instead of String PR #3956
    • fix: align SSL key file permission check with libpq PR #3952
    • fix: guard connection closed flag with a reentrant lock to protect against concurrent close PR #3905
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.11 Released date: 2026-04-28 16:00:00 -0400 categories: - new release version: 42.7.11 summary: "Security release: caps SCRAM PBKDF2 iterations (CVE-2026-42198). Adds require_auth, fixes cursor fetching after BEGIN, SSL fallback/timeout handling, COPY hang on IOException, and more."

    Notable changes

    Security

    • fix: Limit SCRAM PBKDF2 iterations accepted from the server. pgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (default 100000) to cap iteration counts before computation begins. See the Security Advisory for more detail. The following CVE-2026-42198 has been issued.

    Added

    • feat: implement require_auth connection property, aligning with libpq behaviour PR #3895

    Changed

    • chore: bump Gradle to 9.4.1, org.checkerframework to 1.0.2, com.gradleup.shadow to 9.4.0 PR #3978
    • chore: bump errorprone to 2.48.0 PR #4005
    • chore: replace Appveyor with ikalnytskyi/action-setup-postgres PR #3966
    • chore: use tag names for pinning GitHub Actions, pin ikalnytskyi/action-setup-postgres PR #4007
    • chore: use full version tags in GitHub Actions comments PR #3963
    • chore: use @vlsi/github-actions-random-matrix npm package PR #4008
    • chore: use greedy pairwise coverage for CI matrix generation PR #3965
    • chore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed PR #3970
    • chore: suppress deprecations in test code to reduce build verbosity PR #3972
    • ci: pass ${{ }} expressions via env to avoid shell injection PR #4006
    • style: replace @exception with @throws in getBoolean javadoc PR #4035
    • fix: Add sources and javadocs to shaded published lib generation PR #4043
    • docs: add SCRAM authentication test setup section to TESTING.md PR #3945
    • docs: fix location of 42.7.4 changelogs PR #3839
    • test: add tests for QueryExecutor#getTransactionState PR #4006
    • test: replace @DisabledIfServerVersion annotations with @EnabledForServerVersionRange PR #3939
    • test: increase timeouts for LogicalReplicationTest
    • test: move test table creation from @BeforeEach to @BeforeAll PR #3967
    • test: add @DisableLogger annotation to suppress expected log warnings in tests PR #3971

    Fixed

    • fix: ensure extended protocol messages end with Sync message PR #3728
    • fix: enable cursor-based fetching in extended protocol when transaction started via SQL command PR #3996
    • fix: retry with SSL on IOException when sslMode=ALLOW PR #3973
    • fix: make sure the driver honours connectTimeout when retrying the connection PR #3968
    • fix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in PR #3968
    • fix: catch SecurityException from setContextClassLoader on ForkJoinPool workers PR #3962
    • fix: use compareTo for LogSequenceNumber comparison to handle unsigned values correctly PR #3961
    • fix: release COPY lock on IOException to prevent connection hang PR #3957
    • fix: return jsonb as PGObject instead of String PR #3956
    • fix: align SSL key file permission check with libpq PR #3952
    • fix: guard connection closed flag with a reentrant lock to protect against concurrent close PR #3905
    • fix: flaky CopyBothResponseTest by using WAL flush LSN PR #3979
    • fix: flaky replication restart tests by waiting for confirmed_flush_lsn PR #3975
    • fix: flaky LogicalReplicationStatusTest by polling pg_stat_replication PR #3974
    • fix: update docker scripts so max_locks_per_transaction is the same in the replica as the primary; correct is_pg_version_less_than PR #3958
    • fix: add users to pg_hba.conf for head so require_auth tests pass PR #3954

    Dependency updates

    • deps: Update Gradle to v9.4.1
    • deps: Update checkerframework to v3.55.1
    • deps: Update errorprone to v2.48.0
    • deps: Update logback to v1.5.32
    • deps: Update dependency net.bytebuddy:byte-buddy-parent to v1.18.8
    • deps: Update dependency net.bytebuddy:byte-buddy-agent to v1.18.8
    • deps: Update dependency org.junit:junit-bom to v5.14.3
    • deps: Update dependency org.mockito:mockito-bom to v5.23.0
    • deps: Update dependency org.ow2.asm:asm-bom to v9.9.1
    • deps: Update dependency org.apache.bcel:bcel to v6.12.0
    • deps: Update dependency org.roaringbitmap:roaringbitmap to v1.6.14
    • deps: Update dependency org.ops4j.pax.url:pax-url-aether to v3.0.2
    • deps: Update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.30.0
    • deps: Update com.gradleup.shadow Gradle plugin to v9.4.1
    • deps: Update com.gradleup.nmcp to v1.4.4
    • deps: Update plugin com.gradle.develocity to v4.4.0
    • deps: Update plugin biz.aqute.bnd.builder to v7.2.3
    • deps: Update plugin org.gradlex.build-parameters to v1.4.5
    • deps: Update plugin org.jetbrains.kotlin.jvm to v2.3.20
    • deps: Update plugin com.github.lburgazzoli.karaf to v0.5.7
    • deps: Update plugin com.github.burrunan.s3-build-cache to v1.9.5
    • deps: Update release-drafter/release-drafter action to v6.4.0
    • deps: Update github/codeql-action action to v3.35.1
    • deps: Update codecov/codecov-action action to v5.5.4
    • deps: Update actions/checkout action to v6
    • deps: Update actions/configure-pages action to v6
    • deps: Update actions/create-github-app-token action to v3
    • deps: Update sbt/sbt to v1.12.9
    • deps: Update ubuntu:24.04 docker digest

    Commits by author

    Vladimir Sitnikov (27 commits)

    Sehrope Sarkuni (9 commits)

    Dave Cramer (6 commits)

    Harinath Kanchu (1 commit)

    Emmanuel Oppong (1 commit)

    pbe-axelor (1 commit)

    Open source →
  4. 42.7.10 11 Feb 2026
    Release notes

    Changes

    🐛 Bug Fixes

    • fix: process pending responses before fastpath to avoid protocol errors @vlsi (#3913)

    ⬆️ Dependencies

    Open source →
    Release notes

    Changed

    • chore: Migrate to Shadow 9 PR 3931
    • style: fix empty line before javadoc for checkstyle compliance PR #3925
    • style: fix lambda argument indentation for checkstyle compliance PR #3922
    • test: add autosave=always|never|conservative and cleanupSavepoints=true|false to the randomized CI jobs PR #3917

    Fixed

    • fix: non-standard strings failing test for version 19 PR #3934
    • fix: small issues in ConnectionFactoryImpl PR #3929
    • fix: process pending responses before fastpath to avoid protocol errors PR # 3913
    • doc: use.md, fix typos PR #3911
    • doc: datasource.md, fix minor formatting issue PR #3912
    • doc: add the new PGP signing key to the official documentation PR #3912

    Reverted

    • Revert "fix: make all Calendar instances proleptic Gregorian (#3837) (#3887)" PR #3932
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.10 Released date: 2026-02-11 10:00:00 -0500 categories: - new release version: 42.7.10

    Notable changes

    Changed

    • chore: Migrate to Shadow 9 PR 3931
    • style: fix empty line before javadoc for checkstyle compliance PR #3925
    • style: fix lambda argument indentation for checkstyle compliance PR #3922
    • test: add autosave=always|never|conservative and cleanupSavepoints=true|false to the randomized CI jobs PR #3917

    Fixed

    • fix: non-standard strings failing test for version 19 PR #3934
    • fix: small issues in ConnectionFactoryImpl PR #3929
    • fix: process pending responses before fastpath to avoid protocol errors PR # 3913
    • doc: use.md, fix typos PR #3911
    • doc: datasource.md, fix minor formatting issue PR #3912
    • doc: add the new PGP signing key to the official documentation PR #3912

    Reverted

    • Revert "fix: make all Calendar instances proleptic Gregorian (#3837) (#3887)" PR #3932

    Commits by author

    Dave Cramer (5 commits)

    Vladimir Sitnikov (3 commits)

    mjschwaiger (2 commits)

    Praveen Kumar (1 commit)

    Kairav Mittal (1 commit)

    Goooler (1 commit)

    Open source →
  5. 42.7.9 15 Jan 2026
    Release notes

    Changes

    🐛 Bug Fixes

    • fix: close temporary lob descriptors that are used internally in PreparedStatement#setBlob @vlsi (#3903)
    • fix: avoid memory leaks in Java <= 21 caused by Thread.inheritedAccessControlContext @vlsi (#3886)

    📝 Documentation

    • doc: add the new PGP signing key to the official documentation @vlsi (#3813)

    🧰 Maintenance

    • chore: remove unused com.github.spotbugs Gradle plugin dependency @vlsi (#3868)
    • chore: drop SpotBugs as we do not seem to use it @vlsi (#3834)
    • chore: bump version to 42.7.9 after 42.7.8 release @vlsi (#3810)

    ⬆️ Dependencies

    45 changes
    Open source →
    Release notes

    Added

    • feat: query timeout property PR #3705
    • feat: Add PEMKeyManager to handle PEM based certs and keys PR #3700

    Changed

    • perf: optimize PGInterval.getValue() by replacing String.format with StringBuilder
    • doc: update property quoteReturningIdentifiers default value PR #3847
    • security: Use a static method forName to load all user supplied classes. Use the Class.forName 3 parameter method and do not initilize it unless it is a subclass of the expected class

    Fixed

    • fix: incorrect pg_stat_replication.reply_time calculation PR #3906
    • fix: close temporary lob descriptors that are used internally in PreparedStatement#setBlob
    • fix: PGXAConnection.prepare(Xid) should return XA_RDONLY if the connection is read only PR #3897
    • fix: make all Calendar instances proleptic Gregorian PR #3837
    • fix: Simplify concurrency guards on QueryExecutorBase#transaction and QueryExecutorBase#standardConformingStrings PR #3897
    • fix: avoid memory leaks in Java <= 21 caused by Thread.inheritedAccessControlContext PR #3886
    • fix: Issue #3784 pgjdbc can't decode numeric arrays containing special numbers like NaN PR #3838
    • fix: use ssl_is_used() to check for ssl connection PR #3867
    • fix: the classloader is nullable PR #3907
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.9 Released date: 2026-01-15 10:37:00 -0500 categories: - new release version: 42.7.9

    Notable changes

    Added

    • feat: query timeout property PR #3705
    • feat: Add PEMKeyManager to handle PEM based certs and keys PR #3700

    Changed

    • perf: optimize PGInterval.getValue() by replacing String.format with StringBuilder
    • chore: drop SpotBugs as we do not seem to use it
    • doc: update property quoteReturningIdentifiers default value PR #3847
    • security: Use a static method forName to load all user supplied classes. Use the Class.forName 3 parameter method and do not initilize it unless it is a subclass of the expected class

    Fixed

    • fix: incorrect pg_stat_replication.reply_time calculation PR #3906
    • fix: close temporary lob descriptors that are used internally in PreparedStatement#setBlob
    • fix: PGXAConnection.prepare(Xid) should return XA_RDONLY if the connection is read only PR #3897
    • fix: make all Calendar instances proleptic Gregorian PR #3837
    • fix: Simplify concurrency guards on QueryExecutorBase#transaction and QueryExecutorBase#standardConformingStrings PR #3897
    • fix: avoid memory leaks in Java <= 21 caused by Thread.inheritedAccessControlContext PR #3886
    • fix: Issue #3784 pgjdbc can't decode numeric arrays containing special numbers like NaN PR #3838
    • fix: use ssl_is_used() to check for ssl connection PR #3867
    • fix: the classloader is nullable PR #3907
    • deps: Update dependency org.junit:junit-bom to v5.14.1
    • deps: Update dependency org.apache.bcel:bcel to v6.11.0
    • deps: Update dependency org.mockito:mockito-bom to v5.20.0
    • deps: Update dependency net.bytebuddy:byte-buddy-parent to v1.18.2
    • deps: Update logback to v1.5.21
    • deps: Update dependency jacoco to v0.8.14
    • deps: Update dependency it.unimi.dsi:fastutil to v8.5.18
    • deps: Update checkerframework

    Commits by author

    Vladimir Sitnikov (9 commits)

    Dave Cramer (7 commits)

    Atsushi Torikoshi (1 commit)

    Manon van Tilburg (1 commit)

    Harinath Kanchu (1 commit)

    shenfeng (1 commit)

    Sanne Grinovero (2 commits)

    Sodekim (1 commit)

    Christian Fredriksson (1 commit)

    Open source →
  6. 42.7.8 18 Sep 2025
    Release notes

    Notable changes:

    • Releases are signed with a new PGP key which is generated at GitHub Actions and stored only there @vlsi (#3701)

    Changes

    • fix: Update release plugin config to use .set(...) for props and inject nexus secrets via props @sehrope (#3802)
    • update version to 42.7.8 @davecramer (#3801)
    • change logs for version 42.7.8 @davecramer (#3797)
    • Fix getNotifications() documentation @pdewacht (#3800)
    • fix(deps): update dependency om.ongres.scram:scram-client to 3.2 @jorsol (#3799)
    • Add configurable boolean-to-numeric conversion for ResultSet getters @vwassan (#3796)
    • Update CONTRIBUTING.md @davecramer (#3794)
    • perf: remove QUERY_ONESHOT flag when calling getMetaData @ShenFeng312 (#3783)
    • test: add bench for batch insert via unnest with arrays @lantalex (#3782)
    • fix: Change "PST" timezone in TimestampTest to "Pacific Standard Time" @simon-greatrix (#3774)
    • Use BufferedInputStream with FileInputStream @jgardn3r (#3750)
    • Fix #3747: Incorrect class comparison in PGXmlFactoryFactory validation @eitch (#3748)
    • fix: traverse the current dimension to get the correct pos in PgArray#calcRemainingDataLength @sly461 (#3746)
    • test: add channelBinding to SslTest @vlsi (#3665)
    • fix: remove excessive ReentrantLock.lock usages @vlsi (#3703)
    • test: add ossf-scorecard security scanning @vlsi (#3695)
    • fix indentation to let CI pass @mohitsatr (#3682)
    • test: extract pgjdbc/testFixtures to testkit project @vlsi (#3666)
    • fix: make sure getImportedExportedKeys returns columns in consistent order @vlsi (#3663)
    • feat: use PreparedStatement for DatabaseMetaData.getCrossReference, getImportedKeys, getExportedKeys @vlsi (#3641)
    • Add "SELF_REFERENCING_COL_NAME" field to getTables' ResultSetMetaData to fix NullPointerException @SophiahHo (#3660)

    🐛 Bug Fixes

    • fix: avoid IllegalStateException: Timer already cancelled when StatementCancelTimerTask.run throws a runtime error @vlsi (#3778)
    • fix: avoid NullPointerException when cancelling a query if cancel key is not known yet @vlsi (#3780)
    • fix: unable to open replication connection to servers < 12 @vlsi (#3678)

    🧰 Maintenance

    • chore: fix published project name @vlsi (#3809)
    • chore: update publish to Central Portal task name after bumping nmcp @vlsi (#3808)
    • fix(deps): update com.gradleup.nmcp to 1.1.0 @vlsi (#3807)
    • Revert "fix: Update release plugin config to use .set(...) for props and inject nexus creds via gradle props" @vlsi (#3803)
    • chore: group com.gradleup.nmcp version updates @vlsi (#3805)
    • chore: use bump org.apache.bcel:bcel test dependency in testCompileClasspath as well @vlsi (#3775)
    • Fix typo in PGReplicationStream.java @atorik (#3758)
    • chore: remove JDK versions from the key workflow names @vlsi (#3759)
    • chore: add GitHub Actions workflow for generating release PGP key @vlsi (#3701)
    • chore: replace StandardCharsets with Charsets to simplify code @vlsi (#3751)
    • chore: migrate publish workflow to Central Portal publishing via com.gradleup.nmcp @vlsi (#3686)
    • chore: adjust the default branch name for ossf scorecard scan @vlsi (#3697)
    • chore: add top-level read-only permissions for GitHub Actions when missing @vlsi (#3696)
    • chore: use config:best-practices preset for Renovate @vlsi (#3687)
    • refactor: pass ChannelBinding to ScramAuthenticator instead of passing full Properties @vlsi (#3667)
    • chore: update JUnit to 5.13, use @ParameterizedClass @vlsi (#3652)

    ⬆️ Dependencies

    59 changes
    Open source →
    Release notes

    Added

    • feat: Add configurable boolean-to-numeric conversion for ResultSet getters PR #3796

    Changed

    • perf: remove QUERY_ONESHOT flag when calling getMetaData PR #3783
    • perf: use BufferedInputStream with FileInputStream PR #3750
    • perf: enable server-prepared statements for DatabaseMetaData

    Fixed

    • fix: avoid NullPointerException when cancelling a query if cancel key is not known yet
    • fix: Change "PST" timezone in TimestampTest to "Pacific Standard Time" PR #3774
    • fix: traverse the current dimension to get the correct pos in PgArray#calcRemainingDataLength PR #3746
    • fix: make sure getImportedExportedKeys returns columns in consistent order
    • fix: Add "SELF_REFERENCING_COL_NAME" field to getTables' ResultSetMetaData to fix NullPointerException PR #3660
    • fix: unable to open replication connection to servers < 12
    • fix: avoid closing statement caused by driver's internal ResultSet#close()
    • fix: return empty metadata for empty catalog names as it was before
    • fix: Incorrect class comparison in PGXmlFactoryFactory validation
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.8 Released date: 2025-09-18 06:00:00 -0400 categories: - new release version: 42.7.8

    Notable changes

    Added

    • feat: Add configurable boolean-to-numeric conversion for ResultSet getters PR #3796

    Changed

    • perf: remove QUERY_ONESHOT flag when calling getMetaData PR #3783
    • perf: use BufferedInputStream with FileInputStream PR #3750
    • perf: enable server-prepared statements for DatabaseMetaData

    Fixed

    • fix: avoid IllegalStateException: Timer already cancelled when StatementCancelTimerTask.run throws a runtime error PR #3778

    • fix: avoid NullPointerException when cancelling a query if cancel key is not known yet

    • fix: Change "PST" timezone in TimestampTest to "Pacific Standard Time" PR #3774

    • fix: traverse the current dimension to get the correct pos in PgArray#calcRemainingDataLength PR #3746

    • fix: make sure getImportedExportedKeys returns columns in consistent order

    • fix: Add "SELF_REFERENCING_COL_NAME" field to getTables' ResultSetMetaData to fix NullPointerException PR #3660

    • fix: unable to open replication connection to servers < 12

    • fix: avoid closing statement caused by driver's internal ResultSet#close()

    • fix: return empty metadata for empty catalog names as it was before

    • fix: Incorrect class comparison in PGXmlFactoryFactory validation

    • deps: Update dependency om.ongres.scram:scram-client to 3.2

      Commits by author

    Vladimir Sitnikov (46 commits)

    • fix: avoid IllegalStateException: Timer already cancelled when StatementCancelTimerTask.run throws a runtime error
    • feat: use PreparedStatement for DatabaseMetaData.getCrossReference, getImportedKeys, getExportedKeys
    • perf: enable server-prepared statements for DatabaseMetaData
    • fix: avoid NullPointerException when cancelling a query if cancel key is not known yet
    • fix: avoid closing statement caused by driver's internal ResultSet#close()
    • fix: make sure getImportedExportedKeys returns columns in consistent order
    • fix: return empty metadata for empty catalog names as it was before
    • fix: unable to open replication connection to servers < 12
    • fix: remove excessive ReentrantLock.lock usages
    • Various infrastructure, testing, and code quality improvements

    Dave Cramer (2 commits)

    Vivek Wassan (1 commit)

    shenfeng (1 commit)

    sly461 (1 commit)

    Sophiah Ho (1 commit)

    Simon Greatrix (1 commit)

    Robert von Burg (1 commit)

    • fix: Incorrect class comparison in PGXmlFactoryFactory validation

    Mohit-Attry (1 commit)

    Joshua Gardner (1 commit)

    Atsushi Torikoshi (1 commit)

    • Fix a typo in PGReplicationStream.java

    Aleksander Lantsov (1 commit)

    Jorge Solorzano (1 commit)

    Open source →
  7. 42.7.7 11 Jun 2025
    Release notes

    Changes

    Security

    • security: Client Allows Fallback to Insecure Authentication Despite channelBinding=require configuration.
      Fix channel binding required handling to reject non-SASL authentication
      Previously, when channel binding was set to "require", the driver would silently ignore this
      requirement for non-SASL authentication methods. This could lead to a false sense of security
      when channel binding was explicitly requested but not actually enforced. The fix ensures that when
      channel binding is set to "require", the driver will reject connections that use
      non-SASL authentication methods or when SASL authentication has not completed properly.
      See the Security Advisory for more detail. Reported by George MacKerron
      The following CVE-2025-49146 has been issued

    Added

    • test: Added ChannelBindingRequiredTest to verify proper behavior of channel binding settings

    🐛 Bug Fixes

    • fix: ensure Connection.isValid() returns true even if prepared statements deallocate @vlsi (#3655)

    🧰 Maintenance

    • chore: bump slf4j and logback versions used for pgjdbc-osgi-test @vlsi (#3653)
    • chore: fix the default branch name for dependency-submission action @vlsi (#3650)
    • chore: add gradle/actions/dependency-submission so GitHub shows all dependencies used when building pgjdbc @vlsi (#3646)

    ⬆️ Dependencies

    12 changes
    • chore: bump slf4j and logback versions used for pgjdbc-osgi-test @vlsi (#3653)
    • chore(deps): update oracle-actions/setup-java action to v1.4.2 @renovate-bot (#3643)
    • fix(deps): update dependency checkstyle to v10.25.0 @renovate-bot (#3644)
    • chore: add gradle/actions/dependency-submission so GitHub shows all dependencies used when building pgjdbc @vlsi (#3646)
    • fix(deps): update dependency org.codehaus.groovy:groovy-all to v3.0.25 @renovate-bot (#3648)
    • fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.7.0 @renovate-bot (#3649)
    • chore(deps): update plugin com.gradle.develocity to v4.0.2 @renovate-bot (#3647)
    • chore(deps): update codecov/codecov-action digest to 15559ed @renovate-bot (#3636)
    • chore(deps): update dependency gradle to v8.14.1 @renovate-bot (#3637)
    • chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.21 - autoclosed @renovate-bot (#3638)
    • chore(deps): update dependency sbt/sbt to v1.11.0 @renovate-bot (#3640)
    • fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.13 @renovate-bot (#3639)
    Open source →
    Release notes

    Security

    • security: Client Allows Fallback to Insecure Authentication Despite channelBinding=require configuration. Fix channel binding required handling to reject non-SASL authentication Previously, when channel binding was set to "require", the driver would silently ignore this requirement for non-SASL authentication methods. This could lead to a false sense of security when channel binding was explicitly requested but not actually enforced. The fix ensures that when channel binding is set to "require", the driver will reject connections that use non-SASL authentication methods or when SASL authentication has not completed properly. See the Security Advisory for more detail. Reported by George MacKerron The following CVE-2025-49146 has been issued

    Added

    • test: Added ChannelBindingRequiredTest to verify proper behavior of channel binding settings
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.7 Released date: 2025-06-11 05:00:00 -0400 categories: - new release version: 42.7.7

    Notable changes

    Security

    • security: Client Allows Fallback to Insecure Authentication Despite channelBinding=require configuration. Fix channel binding required handling to reject non-SASL authentication Previously, when channel binding was set to "require", the driver would silently ignore this requirement for non-SASL authentication methods. This could lead to a false sense of security when channel binding was explicitly requested but not actually enforced. The fix ensures that when channel binding is set to "require", the driver will reject connections that use non-SASL authentication methods or when SASL authentication has not completed properly. See the Security Advisory for more detail. Reported by George MacKerron The following CVE-2025-49146 has been issued
    Open source →
  8. 42.7.6 28 May 2025
    Release notes

    Changes

    • Prepare release notes for release 42_7_6 (new format) @davecramer (#3628)
    • fix: isValid incorrectly called execute, instead of executeWithFlags fixes Issue #3630 @davecramer (#3631)
    • add override @davecramer (#3629)
    • add the ability to turn off automatic LSN flush @davecramer (#3403)
    • test: add tests with reWriteBatchedInserts=true @vlsi (#3616)
    • test: add CI executions with adaptive_fetch=true by default @vlsi (#3615)
    • test: simplify TestUtil.openDB, add tests with various assumeMinServerVersion values @vlsi (#3614)
    • Deprecate group startup parms @davecramer (#3613)
    • Add back application name setting @joejensen (#3509)
    • Copr: Use Java 21 as the build dependency @mkoncek (#3607)
    • fix indentation of return child to allow built pass in Checkstyle's CIs @mohitsatr (#3611)
    • Set column name explicitely when using current_database() in queries @kneth (#3526)
    • add PgMessageType and use static variables for protocol literals @davecramer (#3609)
    • Handle protocol 3.2 and wider cancel keys. @davecramer (#3592)
    • refactor empty resultset to use empty result set if the catalog is not correct @davecramer (#3588)
    • Use query to find the current catalog instead of relying on the database in the connection URL or connection properties as this could be different if connected through a pooler or proxy @davecramer (#3565)
    • ci: add Java 24 tests @davecramer (#3580)
    • docs: Relabel 42.7.4 as past version as it is no longer the latest @sehrope (#3586)
    • test: remove stale logging message from SslTest @vlsi (#3584)
    • chore: appply the latest byte-buddy version for tests so we support the latest Java versions @vlsi (#3583)
    • fix: make PgConnection#abort compatible with Java 24 @vlsi (#3582)
    • chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.8.5 @renovate-bot (#3573)
    • Fix JavadocTagContinuationIndentation in AfterBeforeParameterResolver @Anmol202005 (#3566)
    • Revert "use in row values instead of union all (#3510)" @vlsi (#3524)
    • use in row values instead of union all @davecramer (#3510)
    • feat: enhanced DatabaseMetadata.getIndexInfo() method, added index comment as REMARKS property @raminorujov (#3513)
    • Nit: correct message in main.yml test action @ecki (#3503)
    • chore: use import instead of require to support modern NodeJS @vlsi (#3502)
    • chore: use PostgreSQL 17 rather than 17rc1 for CI tests @vlsi (#3501)
    • chore: add ErrorProne verification to catch bugs ealier @vlsi (#3493)
    • fix: ArrayIndexOutOfBounds when write big object into GSS enabled connection, make GSSInputStream robust in face of streams that produce incomplete reads @vlsi (#3500)
    • refactor: factor out duplicated .getBytes() when converting date/time to Date/Time/Timestamp @vlsi (#3497)
    • chore: exclude Oracle Java 17 from CI tests @vlsi (#3499)
    • chore: remove unused Travis CI configuration @vlsi (#3498)
    • Undeprecate sslfactoryarg connection property @sehrope (#3496)
    • fix:Fix sending extra_float_digits @davecramer (#3491)

    🐛 Bug Fixes

    • fix: EOFException on PreparedStatement#toString with unset bytea parameter since 42.7.4 @MrEasy (#3369)

    🧰 Maintenance

    • chore: use Java 21 for building pgjdbc by default @vlsi (#3612)

    ⬆️ Dependencies

    55 changes

    What's Changed

    • fix:Fix sending extra_float_digits by @davecramer in #3491
    • chore(deps): update plugin com.gradle.develocity to v3.19.1 by @renovate-bot in #3488
    • Undeprecate sslfactoryarg connection property by @sehrope in #3496
    • fix(deps): update dependency checkstyle to v10.21.1 by @renovate-bot in #3489
    • fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.2 by @renovate-bot in #3486
    • chore(deps): update codecov/codecov-action digest to 0da7aa6 by @renovate-bot in #3484
    • chore: remove unused Travis CI configuration by @vlsi in #3498
    • chore: exclude Oracle Java 17 from CI tests by @vlsi in #3499
    • refactor: factor out duplicated .getBytes() when converting date/time to Date/Time/Timestamp by @vlsi in #3497
    • fix: ArrayIndexOutOfBounds when write big object into GSS enabled connection, make GSSInputStream robust in face of streams that produce incomplete reads by @vlsi in #3500
    • chore: add ErrorProne verification to catch bugs ealier by @vlsi in #3493
    • fix(deps): update checkerframework by @renovate-bot in #3485
    • chore: use PostgreSQL 17 rather than 17rc1 for CI tests by @vlsi in #3501
    • chore: use import instead of require to support modern NodeJS by @vlsi in #3502
    • Nit: correct message in main.yml test action by @ecki in #3503
    • feat: enhanced DatabaseMetadata.getIndexInfo() method, added index comment as REMARKS property by @raminorujov in #3513
    • chore(deps): update codecov/codecov-action digest to 5efa07b by @renovate-bot in #3516
    • fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.4 by @renovate-bot in #3521
    • use in row values instead of union all by @davecramer in #3510
    • Revert "use in row values instead of union all (#3510)" by @vlsi in #3524
    • fix(deps): update dependency checkstyle to v10.21.3 by @renovate-bot in #3520
    • chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.10 by @renovate-bot in #3519
    • chore(deps): update dependency gradle to v8.12.1 by @renovate-bot in #3517
    • fix(deps): update dependency org.ops4j.pax.url:pax-url-aether to v2.6.16 by @renovate-bot in #3487
    • chore(deps): update plugin me.champeau.jmh to v0.7.3 by @renovate-bot in #3518
    • fix(deps): update dependency org.codehaus.groovy:groovy-all to v3.0.24 by @renovate-bot in #3540
    • fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.6 by

    Note truncated.

    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.6 Released date: 2025-05-27 05:00:00 -0500 categories: - new_release version: 42.7.6

    Notable changes

    Features

    • fix: Enhanced DatabaseMetadata.getIndexInfo() method, added index comment as REMARKS property PR #3513

    Performance Improvements

    • performance: Improve ResultSetMetadata.fetchFieldMetaData by using IN row values instead of UNION ALL for improved query performance (later reverted) PR #3510
    • feat:Use a single simple query for all startup parameters, so groupStartupParameters is no longer needed PR #3613

    Bug Fixes

    Protocol & Connection Handling

    • fix: Send extra_float_digits=3 for PostgreSQL 12+ as well PR #3491
    • fix: Fixed handling of protocol 3.2 and wider cancel keys PR #3592
    • fix: Made PgConnection#abort compatible with Java 24 PR #3582
    • fix: Fixed ArrayIndexOutOfBounds when writing big objects into GSS enabled connections PR #3500
    • fix: Added back application name setting PR #3509

    Metadata & Catalog Handling

    • fix: Set column name explicitly when using current_database() in queries PR #3526
    • fix: Use query to find the current catalog instead of relying on the database in the connection URL pull #3565
    • fix: Refactored empty resultset to use empty result set if the catalog is not correct PR #3588

    API Improvements

    • fix: Undeprecated Fastpath API and fixed deprecation warnings PR #3493
    • fix: Undeprecated sslfactoryarg PR #3496
    • fix: Added PgMessageType and used static variables for protocol literals PR #3609
    • fix: Add the ability to turn off automatic LSN flush PR #3403
    • fix: isValid incorrectly called execute, instead of executeWithFlags PR #3631. Fixes Issue #3630
    • fix: EOFException on PreparedStatement#toString with unset bytea parameter since 42.7.4 Commit 0a88ea4. Fixes Issue #3365

    Infrastructure & Build Improvements

    Java Support

    • update: Updated to use Java 21 for building pgjdbc by default PR #3612
    • update: Updated Java 21 as the build dependency for copr PR #3607
    • update: Updated latest JDK to version 24 PR #3580
    • update: Applied the latest byte-buddy version for tests to support the latest Java versions PR #3583

    Testing & Quality

    • test: Added ErrorProne verification to detect bugs earlier PR #3493
    • test: Simplified TestUtil.openDB, added tests with various assumeMinServerVersion values PR #3624
    • test: Updated to use PostgreSQL 17 rather than 17rc1 for CI tests PR #3501
    • test: Removed stale logging message from SslTest PR #3584
    • test: Added CI executions with adaptive_fetch=true by default for performance testing PR #3615
    • test: Added tests with reWriteBatchedInserts=true PR #3616

    Code Quality

    Dependency Updates

    • Updated numerous dependencies including:
    • Gradle to 8.14
    • Checkerframework to v3.49.3
    • JUnit to v5.12.2
    • Spotbugs to v4.9.3
    • Checkstyle to v10.23.1
    • Hamcrest to v3
    • Error Prone Core to v2.38.0
    • Byte Buddy to v1.17.5
    • JaCoCo to v0.8.13

    Documentation

    Removed

    • chore: Removed unused Travis CI configuration PR #3498
    • chore: Excluded Oracle Java 17 from CI tests PR #3499
    • fix: Removed workaround which was needed for an old checkstyle commit #4500ea04

    Commits by author

    Dave Cramer (13 commits)

    Vladimir Sitnikov (30 commits)

    Sehrope Sarkuni (2 commits)

    mkoncek (1 commit)

    Ramin Orujov (1 commit)

    Kenneth Geisshirt (1 commit)

    Joe Jensen (1 commit)

    Bernd (1 commit)

    Mohit-Attry (1 commit)

    • Code formatting fixes

    Anmol Sharma (1 commit)

    • Test framework improvements

    Kim Johan Andersson (1 commit)

    Open source →
  9. 42.7.5 14 Jan 2025
    Release notes

    Added

    Fixed

    • regression: revert change in fc60537 PR #3476
    • fix: PgDatabaseMetaData implementation of catalog as param and return value PR #3390
    • fix: Support default GSS credentials in the Java Postgres client PR #3451
    • fix: return only the transactions accessible by the current_user in XAResource.recover PR #3450
    • feat: don't force send extra_float_digits for PostgreSQL >= 12 fix Issue #3432 PR #3446
    • fix: exclude "include columns" from the list of primary keys PR #3434
    • perf: Enhance the meta query performance by specifying the oid. PR #3427
    • feat: support getObject(int, byte[].class) for bytea PR #3274
    • docs: document infinity and some minor edits PR #3407
    • fix: Added way to check for major server version, fixed check for RULE PR #3402
    • docs: fixed remaining paragraphs PR #3398
    • docs: fixed paragraphs in javadoc comments PR #3397
    • fix: Reuse buffers and reduce allocations in GSSInputStream addresses Issue #3251 PR #3255
    • chore: Update Gradle to 8.10.2 PR #3388
    • fix: getSchemas() PR #3386
    • fix: Update rpm postgresql-jdbc.spec.tpl with scram-client PR #3324
    • fix: Clearing thisRow and rowBuffer on close() of ResultSet Issue #3383 PR #3384
    • fix: Package was renamed to maven-bundle-plugin PR #3382
    • fix: As of version 18 the RULE privilege has been removed PR #3378
    • fix: use buffered inputstream to create GSSInputStream PR #3373
    • test: get rid of 8.4, 9.0 pg versions and use >= jdk version 17 PR #3372
    • Changed docker-compose version and renamed script file in instructions to match the real file name PR #3363
    • test:Do not assume "test" database in DatabaseMetaDataTransactionIsolationTest PR #3364
    • try to categorize dependencies PR #3362
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.5 Released date: 2025-01-14 08:00:00 -0400 categories: - new_release version: 42.7.5

    Notable changes

    Added

    Fixed

    • regression: revert change in fc60537 PR #3476
    • fix: PgDatabaseMetaData implementation of catalog as param and return value PR #3390
    • fix: Support default GSS credentials in the Java Postgres client PR #3451
    • fix: return only the transactions accessible by the current_user in XAResource.recover PR #3450
    • feat: don't force send extra_float_digits for PostgreSQL >= 12 fix Issue #3432 PR #3446
    • fix: exclude "include columns" from the list of primary keys PR #3434
    • perf: Enhance the meta query performance by specifying the oid. PR #3427
    • feat: support getObject(int, byte[].class) for bytea PR #3274
    • docs: document infinity and some minor edits PR #3407
    • fix: Added way to check for major server version, fixed check for RULE PR #3402
    • docs: fixed remaining paragraphs PR #3398
    • docs: fixed paragraphs in javadoc comments PR #3397
    • fix: Reuse buffers and reduce allocations in GSSInputStream addresses Issue #3251 PR #3255
    • chore: Update Gradle to 8.10.2 PR #3388
    • fix: getSchemas() PR #3386
    • fix: Update rpm postgresql-jdbc.spec.tpl with scram-client PR #3324
    • fix: Clearing thisRow and rowBuffer on close() of ResultSet Issue #3383 PR #3384
    • fix: Package was renamed to maven-bundle-plugin PR #3382
    • fix: As of version 18 the RULE privilege has been removed PR #3378
    • fix: use buffered inputstream to create GSSInputStream PR #3373
    • test: get rid of 8.4, 9.0 pg versions and use >= jdk version 17 PR #3372
    • Changed docker-compose version and renamed script file in instructions to match the real file name PR #3363
    • test:Do not assume "test" database in DatabaseMetaDataTransactionIsolationTest PR #3364
    • try to categorize dependencies PR #3362

    Commits by author

    Alexander Nesterenok (1):

    • feat: support getObject(int, byte[].class) for bytea PR #3274

    Dave Cramer (8):

    • Update CHANGELOG.md
    • try to categorize dependencies PR #3362
    • get rid of 8.4, 9.0 pg versions and use >= jdk version 17 PR #3372
    • As of version 18 the RULE privilege has been removed PR #3378
    • Reuse buffers and reduce allocations in GSSInputStream addresses Issue #3251 PR #3255
    • Added way to check for major server version, fixed check for RULE PR #3402
    • document infinity and some minor edits PR #3407
    • regression: revert change in https://github.com/pgjdbc/pgjdbc/commit/fc60537 PR #3476

    Jorge Solórzano (3):

    • Update rpm postgresql-jdbc.spec.tpl with scram-client
    • ci: Test with Java 23 and PG 17rc1 PR #3381
    • chore: Update Gradle to 8.10.2 PR #3388

    Lukas Javorsky (1):

    • fedora-ci: Package was renamed to maven-bundle-plugin PR #3382

    Matthias Hanisch (1):

    • fix: Clearing thisRow and rowBuffer on close() of ResultSet PR #3384

    Mauryan Kansara (2):

    • fixed paragraphs in javadoc commentsPR #3397
    • fixed remaining paragraphsPR #3398

    Mohanad Khaled (1):

    • Changed docker-compose version and renamed script file in instructions to match the real file name PR #3363

    Nathan VanBenschoten (1):

    • Do not assume "test" database in DatabaseMetaDataTransactionIsolationTest PR #3364

    Nick Hall (1):

    • Support default GSS credentials in the Java Postgres client PR #3451

    Pavel Raiskup (1):

    • fedora-ci: provide the python binary for source build on F41

    Pritesh Ranjan (1):

    • fix: exclude include columns from the list of primary keys PR #3434

    Sasasu (1):

    • fix: use buffered inputstream to create GSSInputStream PR #3373

    Sophiah Ho (2):

    • Fix getSchemas() PR #3386
    • Fix PgDatabaseMetaData implementation of catalog as param and return value PR #3390

    Vladimir Sitnikov (4):

    • chore: bump setup-java from v1 to v4 in codeql.yml
    • fix: return only the transactions accessible by the current_user in XAResource.recoverPR #3450
    • chore: replace deprecated gradle-enterprise with com.gradle.develocity
    • chore: replace deprecated dirMode and fileMode with permissions api in build scripts

    damienb-opt (1):

    dh-cloud (1):

    • Enhance the meta query performance by specifying the oid. PR #3427
    Open source →
  10. 42.7.4 22 Aug 2024
    Release notes

    Added

    • chore: SCRAM dependency to 3.1 and support channel binding PR #3188
    • chore: Add PostgreSQL 15, 16, and 17beta1 to CI tests PR #3299
    • test: Update to 17beta3 PR #3308
    • chore: Implement direct SSL ALPN connections PR #3252
    • translation: Add Korean translation file PR #3276

    Fixed

    • fix: PgInterval ignores case for represented interval string PR #3344
    • perf: Avoid extra copies when receiving int4 and int2 in PGStream PR #3295
    • fix: Add support for Infinity::numeric values in ResultSet.getObject PR #3304
    • fix: Ensure order of results for getDouble PR #3301
    • perf: Replace BufferedOutputStream with unsynchronized PgBufferedOutputStream, allow configuring different Java and SO_SNDBUF buffer sizes PR #3248
    • fix: Fix SSL tests PR #3260
    • fix: Support bytea in preferQueryMode=simple PR #3243
    • fix: Fix #3234 - Return -1 as update count for stored procedure calls PR #3235
    • fix: Fix #3224 - conversion for TIME '24:00' to LocalTime breaks in binary-mode PR #3225
    • perf: Speed up getDate by parsing bytes instead of String PR #3141
    • fix: support PreparedStatement.setBlob(1, Blob) and PreparedStatement.setClob(1, Clob) for lobs that return -1 for length PR #3136
    • fix: Validates resultset Params in PGStatement constructor. uses assertThro… PR #3171
    • fix: Validates resultset parameters PR #3167
    • docs: Replace greater to with greater than PR #3315
    • docs: Clarify binaryTransfer and prepareThreshold PR #3338
    • docs: use.md, typo PR #3314
    • test: Use docker v2 which changes docker-compose to docker compose #3339
    • refactor: Merge PgPreparedStatement#setBinaryStream int and long methods PR #3165
    • test: Test both binaryMode=true,false when creating connections in DatabaseMetaDataTest PR #3231
    • docs: Fixed typos in all source code and documentations PR #3242
    • chore: Remove self-hosted runner PR #3227
    • docs: Add cancelSignalTimeout in README PR #3190
    • docs: Document READ_ONLY_MODE in README PR #3175
    • test: Test for +/- infinity double values PR #3294
    • test: Switch localhost and auth-test around for test-gss PR #3343
    • fix: remove preDescribe from internalExecuteBatch PR #2883
    • deps: Update dependency om.ongres.scram:scram-client to 3.2

    Deprecated

    • test: Deprecate all PostgreSQL versions older than 9.1 PR #3335
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.4 Released date: 2024-08-22 08:00:00 -0400 categories: - new_release version: 42.7.4

    Notable changes

    Added

    • chore: SCRAM dependency to 3.1 and support channel binding PR #3188
    • chore: Add PostgreSQL 15, 16, and 17beta1 to CI tests PR #3299
    • test: Update to 17beta3 PR #3308
    • chore: Implement direct SSL ALPN connections PR #3252
    • translation: Add Korean translation file PR #3276

    Fixed

    • fix: PgInterval ignores case for represented interval string PR #3344
    • perf: Avoid extra copies when receiving int4 and int2 in PGStream PR #3295
    • fix: Add support for Infinity::numeric values in ResultSet.getObject PR #3304
    • fix: Ensure order of results for getDouble PR #3301
    • perf: Replace BufferedOutputStream with unsynchronized PgBufferedOutputStream, allow configuring different Java and SO_SNDBUF buffer sizes PR #3248
    • fix: Fix SSL tests PR #3260
    • fix: Support bytea in preferQueryMode=simple PR #3243
    • fix: Fix #3234 - Return -1 as update count for stored procedure calls PR #3235
    • fix: Fix #3224 - conversion for TIME '24:00' to LocalTime breaks in binary-mode PR #3225
    • perf: Speed up getDate by parsing bytes instead of String PR #3141
    • fix: support PreparedStatement.setBlob(1, Blob) and PreparedStatement.setClob(1, Clob) for lobs that return -1 for length PR #3136
    • fix: Validates resultset Params in PGStatement constructor. uses assertThro… PR #3171
    • fix: Validates resultset parameters PR #3167
    • docs: Replace greater to with greater than PR #3315
    • docs: Clarify binaryTransfer and prepareThreshold PR #3338
    • docs: use.md, typo PR #3314
    • test: Use docker v2 which changes docker-compose to docker compose #3339
    • refactor: Merge PgPreparedStatement#setBinaryStream int and long methods PR #3165
    • test: Test both binaryMode=true,false when creating connections in DatabaseMetaDataTest PR #3231
    • docs: Fixed typos in all source code and documentations PR #3242
    • chore: Remove self-hosted runner PR #3227
    • docs: Add cancelSignalTimeout in README PR #3190
    • docs: Document READ_ONLY_MODE in README PR #3175
    • test: Test for +/- infinity double values PR #3294
    • test: Switch localhost and auth-test around for test-gss PR #3343
      • fix: remove preDescribe from internalExecuteBatch PR 2883

    Deprecated

    • test: Deprecate all PostgreSQL versions older than 9.1 PR #3335

    Commits by author

    Alan (1): Document READ_ONLY_MODE in README PR 3175

    Chris [SpareParts365] (1): docs: clarify binaryTransfer and prepareThreshold PR 3338

    Christian Beikov (1): Fix PR 3234 - Return -1 as update count for stored procedure calls (#3235)

    Dave Cramer (13): bump version to 42.7.4 PR 3164 correct download for jre7 PR 3198 Speed up getDate by parsing bytes instead of String PR 3141 remove self-hosted runner PR 3227 Fix SSL tests PR 3260 Test for +/- infinity double values PR 3294 chore: add PostgreSQL 15, 16, and 17beta1 to CI tests PR 3299 Ensure order of results for getDouble PR 3301 chore: implement direct SSL ALPN connections PR 3252 use docker v2 which changes docker-compose to docker compose PR 3339 Update to 17beta3 PR 3308 switch localhost and auth-test around PR 3343

    Guoyu Feng (2): merge two setBinaryStream methodsPR 3165 Fix the bug with incorrect parameters in the setNull method.PR 3165

    Hans Ginzel (1): Update use.md, typo PR 3314

    Japin Li (1): Replace greater to with greater than PR 3315

    Jorge Solórzano (3): Update SCRAM dependency to 3.1 and support channel binding PR 3188 Deprecate all PostgreSQL versions older than 9.1 PR 3335

    Philipp Menke (1): Fix PR 3224 - conversion for TIME '24:00' to LocalTime breaks in binary-mode (#3225)

    SheerazMajeedM (2): Fixed typos in all source code and documentations PR 3242 Add translation file PR 3276

    Vishal Raj (4): validates resultset parameters PR 3167 bug report: PgInterval ignores case for represented interval string PR 3344

    Vladimir Sitnikov (9): fix: support PreparedStatement.setBlob(1, Blob) and PreparedStatement.setClob(1, Clob) for lobs that return -1 for length PR 3136 test: test both binaryMode=true,false when creating connections in DatabaseMetaDataTest PR 3231 fix: support bytea in preferQueryMode=simplePR 3243 perf: replace BufferedOutputStream with unsynchronized PgBufferedOutputStream, increase the send buffer size PR 3248 perf: remove PGStream.streamBuffer and reuse PgBufferedOutputStream's buffer when sending data from InputStream PR 3248 feat: add maxSendBufferSize connection property PR 3248 test: improve tests for writeZeros PR 3248 perf: optimize Set<Integer> which are used for checking if oid should be transferred with binary or text PR #3249 fix: remove preDescribe from internalExecuteBatch PR 2883

    imran zaheer (1): Docs: Add cancelSignalTimeout in README PR 3190

    mmm444 (1): Add support for Infinity::numeric values in ResultSet.getObject PR 3304

    Open source →
  11. 42.7.3 14 Mar 2024
    Release notes

    Changed

    • chore: gradle config enforces 17+ PR #3147

    Fixed

    • fix: boolean types not handled in SimpleQuery mode PR #3146
      • make sure we handle boolean types in simple query mode
      • support uuid as well
      • handle all well known types in text mode and change else if to switch
    • fix: released new versions of 42.2.29, 42.3.10, 42.4.5, 42.5.6, 42.6.2 to deal with NoSuchMethodError on ByteBuffer#position when running on Java 8
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.3 Released date: 2024-03-14 14:51:00 -0400 categories: - new_release version: 42.7.3

    Notable changes

    Changed

    • chore: gradle config enforces 17+ PR #3147

    Fixed

    • fix: boolean types not handled in SimpleQuery mode PR #3146 *make sure we handle boolean types in simple query mode
      • support uuid as well
      • handle all well known types in text mode and change else if to switch
    • fix: released new versions of 42.2.29, 42.3.10, 42.4.5, 42.5.6, 42.6.2 to deal with NoSuchMethodError on ByteBuffer#position when running on Java 8
    • fix: Fix 2 changelog entry titles PR #3142

    Commits by author

    James Howe (1):

    • chore: gradle config enforces 17+ PR #3147

    Dave Cramer (1):

    • fix: fix Issue # 3145 boolean types not handled in SimpleQuery mode (#3146)

    John Harvey (1):

    Open source →
  12. 42.7.2 20 Feb 2024
    Release notes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.

    Changed

    • fix: Use simple query for isValid. Using Extended query sends two messages checkConnectionQuery was never ever set or used, removed PR #3101
    • perf: Avoid autoboxing bind indexes by @bokken in PR #1244
    • refactor: Document that encodePassword will zero out the password array, and remove driver's default encodePassword by @vlsi in PR #3084

    Added

    • feat: Add PasswordUtil for encrypting passwords client side PR #3082
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.2 Released date: 2024-02-21 8:23:00 -0500 categories: - new_release version: 42.7.2

    Notable changes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.

    Changed

    • fix: Use simple query for isValid. Using Extended query sends two messages checkConnectionQuery was never ever set or used, removed PR #3101
    • perf: Avoid autoboxing bind indexes PR #1244
    • refactor: Document that encodePassword will zero out the password array, and remove driver's default encodePassword PR #3084

    Added

    • feat: Add PasswordUtil for encrypting passwords client side PR #3082

    Commits by author

    Vladimir Sitnikov (1): refactor: Document that encodePassword will zero out the password array, and remove driver's default encodePassword PR #3084

    Brett Okken (1): perf: Avoid autoboxing bind indexes PR #1244

    Dave Cramer (1):

    • fix: Apply connectTimeout before SSLSocket.startHandshake to avoid infinite wait in case the connection is broken PR #3040

    Sehrope Sarkini (1):

    • feat: Add PasswordUtil for encrypting passwords client side PR #3082
    Open source →
  13. 42.7.1 06 Dec 2023
    Release notes

    Changed

    • perf: improve performance of PreparedStatement.setBlob, BlobInputStream, and BlobOutputStream with dynamic buffer sizing PR #3044

    Fixed

    • fix: Apply connectTimeout before SSLSocket.startHandshake to avoid infinite wait in case the connection is broken PR #3040
    • fix: support waffle-jna 2.x and 3.x by using reflective approach for ManagedSecBufferDesc PR #2720 Fixes Issue #2690.
    • fix: NoSuchMethodError on ByteBuffer#position When Running on Java 8 when accessing arrays, fixes Issue #3014
    • Revert "PR #2925 Use canonical DateStyle name" PR #3035 Fixes Issue #3008
    • Revert "PR ##2973 feat: support SET statements combining with other queries with semicolon in PreparedStatement" PR #3010 Fixes Issue #3007
    • fix: avoid timezone conversions when sending LocalDateTime to the database #2852 Fixes Issue #1390 ,Issue #2850 Closes [Issue #1391(https://github.com/pgjdbc/pgjdbc/issues/1391)
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.1 Released date: 2023-12-06 0:34:33 -0500 categories: - new_release version: 42.7.1

    Notable changes

    Changed

    • perf: improve performance of PreparedStatement.setBlob, BlobInputStream, and BlobOutputStream with dynamic buffer sizing PR #3044

    Fixed

    • fix: Apply connectTimeout before SSLSocket.startHandshake to avoid infinite wait in case the connection is broken PR #3040
    • fix: support waffle-jna 2.x and 3.x by using reflective approach for ManagedSecBufferDesc PR #2720 Fixes Issue #2690.
    • fix: NoSuchMethodError on ByteBuffer#position When Running on Java 8 when accessing arrays, fixes Issue #3014
    • Revert "PR #2925 Use canonical DateStyle name" PR #3035 Fixes Issue #3008
    • Revert "PR ##2973 feat: support SET statements combining with other queries with semicolon in PreparedStatement" PR #3010 Fixes Issue #3007
    • fix: avoid timezone conversions when sending LocalDateTime to the database #2852 Fixes Issue #1390 ,Issue #2850 Closes Issue #1391

    <!--more-->

    Commits by author

    Vladimir Sitnikov (4):

    • Revert "PR #2925 Use canonical DateStyle name" PR #3035
    • Revert "PR ##2973 feat: support SET statements combining with other queries with semicolon in PreparedStatement" PR #3010
    • fix: NoSuchMethodError on ByteBuffer#position When Running on Java 8 when accessing arrays, fixes Issue #3014
    • fix: avoid timezone conversions when sending LocalDateTime to the database #2852

    Dave Cramer (1):

    • fix: Apply connectTimeout before SSLSocket.startHandshake to avoid infinite wait in case the connection is broken PR #3040

    Christian Ullrich (1):

    • fix: support waffle-jna 2.x and 3.x by using reflective approach for ManagedSecBufferDesc PR #2720
    Open source →
  14. 42.7.0 20 Nov 2023
    Release notes

    Changed

    • fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to java.desktop module. PR #2967
    • feat: return all catalogs for getCatalogs metadata query closes ISSUE #2949 PR #2953
    • feat: support SET statements combining with other queries with semicolon in PreparedStatement PR ##2973

    Fixed

    • chore: add styleCheck Gradle task to report style violations PR #2980
    • fix: Include currentXid in "Error rolling back prepared transaction" exception message PR #2978
    • fix: add varbit as a basic type inside the TypeInfoCache PR #2960
    • fix: Fix failing tests for version 16. PR #2962
    • fix: allow setting arrays with ANSI type name PR #2952
    • feat: Use KeepAlive to confirm LSNs PR #2941
    • fix: put double ' around log parameter PR #2936 fixes ISSUE #2935
    • fix: Fix Issue #2928 number of ports not equal to number of servers in datasource PR #2929
    • fix: Use canonical DateStyle name (#2925) fixes pgbouncer issue
    • fix: Method getFastLong should be able to parse all longs PR #2881
    • docs: Fix typos in info.html PR #2860
    • fix: Return correct default from PgDatabaseMetaData.getDefaultTransactionIsolation PR #2992 fixes Issue #2991
    • test: fix assertion in RefCursorFetchTestultFetchSize rows
    • test: use try-with-resources in LogicalReplicationStatusTest
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.7.0 Released date: 2023-11-20 08:09:33 -0500 categories: - new_release version: 42.7.0

    Notable changes

    Known Issues

    Fixes issues introduced in 42.7.0:

    • NoSuchMethodError on ByteBuffer#position When Running on Java 8 when accessing arrays, issue https://github.com/pgjdbc/pgjdbc/issues/3014
    • SET followed by SHOW in one statement returns wrong result, issue https://github.com/pgjdbc/pgjdbc/issues/3007
    • 42.7.0 updated DateStyle from ISO to ISO, MDY (it aligns with PostgreSQL defaults), and it will return the wrong results when server uses non-default DateStyle (see https://github.com/pgjdbc/pgjdbc/issues/3008)

    Changed

    • fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to java.desktop module. PR #2967
    • feat: return all catalogs for getCatalogs metadata query closes ISSUE #2949 PR #2953
    • feat: support SET statements combining with other queries with semicolon in PreparedStatement PR ##2973

    Fixed

    • chore: add styleCheck Gradle task to report style violations PR #2980
    • fix: Include currentXid in "Error rolling back prepared transaction" exception message PR #2978
    • fix: add varbit as a basic type inside the TypeInfoCache PR #2960
    • fix: Fix failing tests for version 16. PR #2962
    • fix: allow setting arrays with ANSI type name PR #2952
    • feat: Use KeepAlive to confirm LSNs PR #2941
    • fix: put double ' around log parameter PR #2936 fixes ISSUE #2935
    • fix: Fix Issue #2928 number of ports not equal to number of servers in datasource PR #2929
    • fix: Use canonical DateStyle name (#2925) fixes pgbouncer issue
    • fix: Method getFastLong should be able to parse all longs PR #2881
    • docs: Fix typos in info.html PR #2860
    • fix: Return correct default from PgDatabaseMetaData.getDefaultTransactionIsolation PR #2992 fixes Issue #2991

    <!--more-->

    Commits by author

    Brendan MacDonell (1):

    • fix: allow setting arrays with ANSI type name PR #2952

    Dave Cramer (7):

    • fix: rename changelog for 42.6.0 to the correct name PR #2858
    • fix: bump version for next release PR #2859
    • fix: un-deprecate SSL_FACTORY_ARG
    • fix: Fix Issue #2928 number of ports not equal to number of servers in datasource PR #2929
    • fix: put double ' around log parameter PR #2936
    • docs: added ADOPTERS.md PR #2951
    • fix: Fix failing tests for version 16. PR #2962

    Declan Murphy (1):

    • feat: Use KeepAlive to confirm LSNs PR #2941

    Faizan Qazi (1):

    • fix: add varbit as a basic type inside the TypeInfoCache PR #2960

    George Gastaldi (1):

    • fix: Include currentXid in "Error rolling back prepared transaction" exception message PR #2978

    Jelte Fennema (1):

    • fix: Use canonical DateStyle name PR #2925

    Martin Desruisseaux (1):

    • fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to java.desktop module. PR #2967

    Nathan VanBenschoten (1):

    • fix: Return correct default from PgDatabaseMetaData.getDefaultTransactionIsolation PR #2992

    Vladimir Sitnikov (3):

    • chore: configure Renovate to bump all com.github.vlsi dependencies at once
    • chore: remove com.gradle.plugin-publish dependency
    • chore: add styleCheck Gradle task to report style violations PR #2980

    maffe (1):

    pip25 (1):

    • feat: return all catalogs for getCatalogs metadata query PR #2949

    zhurs (1):

    • Method getFastLong should be able to parse all longs PR #2881
    Open source →
  15. 42.6.2 13 Mar 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.6.2 Released date: 2024-03-14 08:23:00 -0400 categories: - new_release version: 42.6.2

    Notable changes

    Fixed

    • Fix: Due to building the release using Java 17 version 42.6.1, would throw an exception NoSuchMethodError on ByteBuffer#position When Running on Java 8
    • Fix: In SimpleQuery mode SimpleParameterList did not support type casting for all well known types.
    Open source →
  16. 42.6.1 21 Feb 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.6.1 Released date: 2024-02-21 8:23:00 -0500 categories: - new_release version: 42.6.1

    Notable changes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.
    Open source →
  17. 42.6.0 17 Mar 2023
    Release notes

    Changed

    • fix: use PhantomReferences instead of Obejct.finalize() to track Connection leaks PR #2847

      The change replaces all uses of Object.finalize with PhantomReferences. The leaked resources (Connections) are tracked in a helper thread that is active as long as there are connections in use. By default, the thread keeps running for 30 seconds after all the connections are released. The timeout is set with pgjdbc.config.cleanup.thread.ttl system property.

    • refactor:(loom) replace the usages of synchronized with ReentrantLock PR #2635 Fixes Issue #1951

    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.6.0 Released date: 2023-02-17 15:34:34 -0400 categories: - new_release version: 42.6.0

    Notable changes

    Fixed

    • fix: use PhantomReferences instead of Object.finalize() to track Connection leaks PR #2847
      The change replaces all uses of Object.finalize() with PhantomReferences. The leaked resources (Connections) are tracked in a helper thread that is active as long as there are connections in use. By default, the thread keeps running for 30 seconds after all the connections are released. The timeout is set with pgjdbc.config.cleanup.thread.ttl system property.

    • refactor:(loom) replace the usages of synchronized with ReentrantLock PR #2635 Fixes Issue #1951

    <!--more-->

    Commits by author

    Rob Bygrave (1):

    • refactor:(loom) replace the usages of synchronized with ReentrantLock PR #2635

    Vladimir Sitnikov (1):

    • fix: use PhantomReferences instead of Object.finalize() to track Connection leaks PR #2847
    Open source →
  18. 42.5.6 13 Mar 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.5.6 Released date: 2024-03-13 8:23:00 -0500 categories: - new_release version: 42.5.6

    Notable changes

    Fixed

    • Fix: Due to building the release using Java 17 version 42.5.5, would throw an exception NoSuchMethodError on ByteBuffer#position When Running on Java 8
    • Fix: In SimpleQuery mode SimpleParameterList did not support type casting for all well known types.
    Open source →
  19. 42.5.5 21 Feb 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.5.5 Released date: 2024-02-21 8:23:00 -0500 categories: - new_release version: 42.5.5

    Notable changes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.
    Open source →
  20. 42.5.4 16 Feb 2023
    Release notes

    Fixed

    • fix: fix testGetSQLTypeQueryCache by searching for xid type. We used to search for box type but it is now cached. xid is not cached, this nuance is required for the test.
    • fix OidValueCorrectnessTest BOX_ARRAY OID, by adding BOX_ARRAY to the oidTypeName map [PR #2810]((https://github.com/pgjdbc/pgjdbc/pull/2810).
    • fixes Issue #2804.
    • fix: Make sure that github CI runs tests on all PRs #2809.
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.5.4 Released date: 2023-02-16 08:21:02 -0500 categories: - new_release version: 42.5.4

    Notable changes

    Fixed

    • fix: fix testGetSQLTypeQueryCache by searching for xid type. We used to search for box type but it is now cached. xid is not cached, this nuance is required for the test.\
    • fix OidValueCorrectnessTest BOX_ARRAY OID, by adding BOX_ARRAY to the oidTypeName map [PR #2810]((https://github.com/pgjdbc/pgjdbc/pull/2810)
    • fixes Issue #2804.\
    • fix: Make sure that github CI runs tests on all PRs #2809.

    <!--more-->

    Commits by author

    Dave Cramer (5):

    • Make sure that github CI runs tests on all PRs PR 2809\
    • fix: fix testGetSQLTypeQueryCache by searching for xid type. We used to search for box type but it is now cached PR 2810
    Open source →
  21. 42.5.3 03 Feb 2023
    Release notes

    Fixed

    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.5.3 Released date: 2023-02-03 08:24:49 -0500 categories: - new_release version: 42.5.3

    Fixed

    <!--more-->

    Commits by author

    Dave Cramer (2):

    • Fix: regression in PgResultSet LONG_MIN copy and paste error fixes Issue (#2749) PR 2748\
    • Add box to TypeInfoCache, fixes Issue (#2747) PR 2746
    Open source →
  22. 42.5.2 31 Jan 2023
    Release notes

    Changed

    • regression: This release has 2 known regressions which make it unusable see the notes above. We advise people to use 42.5.3 instead.
    • docs: specify that timeouts are in seconds and there is a maximum. Housekeeping on some tests fixes #Issue 2671 PR #2686
    • docs: clarify binaryTransfer and add it to README PR# 2698
    • docs: Document the need to encode reserved characters in the connection URL PR #2700
    • feat: Define binary transfer for custom types dynamically/automatically fixes Issue #2554 PR #2556

    Added

    • fix: added gssResponseTimeout as part of PR #2687 to make sure we don't wait forever on a GSS RESPONSE

    Fixed

    • fix: Ensure case of XML tags in Maven snippet is correct PR #2682
    • fix: Make sure socket is closed if an exception is thrown in createSocket fixes Issue #2684 PR #2685
    • fix: Apply patch from Issue #2683 to fix hanging ssl connections PR #2687
    • fix - binary conversion of (very) long numeric values (longer than 4 * 2^15 digits) PR #2697 fixes Issue #2695
    • minor: enhance readability connection of startup params PR #2705
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.5.2 Released date: 2023-01-31 14:30:44 -0500 categories:

    • new_release version: 42.5.2

    Changed

    • regression: This release has 2 known regressions which make it unusable see the notes in 42.5.3. We advise people not to use 42.5.2.
    • docs: specify that timeouts are in seconds and there is a maximum. Housekeeping on some tests fixes #Issue 2671 PR #2686\
    • docs: clarify binaryTransfer and add it to README PR# 2698\
    • docs: Document the need to encode reserved characters in the connection URL PR #2700\
    • feat: Define binary transfer for custom types dynamically/automatically fixes Issue #2554 PR #2556

    Added

    • fix: added gssResponseTimeout as part of PR #2687 to make sure we don't wait forever on a GSS RESPONSE

    Fixed

    • fix: Ensure case of XML tags in Maven snippet is correct PR #2682\
    • fix: Make sure socket is closed if an exception is thrown in createSocket fixes Issue #2684 PR #2685\
    • fix: Apply patch from Issue #2683 to fix hanging ssl connections PR #2687\
    • fix: binary conversion of (very) long numeric values (longer than 4 * 2^15 digits) PR #2697 fixes Issue #2695\
    • minor: enhance readability connection of startup params PR #2705\
    • fix: improve thread safety of PgResultSet#getTimestamp PR #2726 fixes Issue #2723

    <!--more-->

    Commits by author

    Dave Cramer (2):

    • fix: binary conversion of (very) long numeric values (longer than 4 * 2^15 digits) PR #2697\
    • fix: Apply patch from Issue #2683 provided by James Courtney to fix hanging ssl connections PR #2687\
    • fix: Make sure socket is closed if an exception is thrown in createSocket fixes Issue #2684 PR #2685

    Sebastian Baumhekel(1): [email protected]

    • feat: Define binary transfer for custom types dynamically/automatically fixes Issue #2554 PR #2556

    sz-liva(1):

    Open source →
  23. 42.5.1 23 Nov 2022
    Release notes

    Security

    • security: StreamWrapper spills to disk if setText, or setBytea sends very large Strings or arrays to the server. createTempFile creates a file which can be read by other users on unix like systems (Not macos). This has been fixed in this version fixes CVE-2022-41946 see the security advisory for more details. Reported by Jonathan Leitschuh This has been fixed in versions 42.5.1, 42.4.3 42.3.8, 42.2.27.jre7. Note there is no fix for 42.2.26.jre6. See the security advisory for work arounds.

    Fixed

    • fix: make sure we select array_in from pg_catalog to avoid duplicate array_in functions fixes #Issue 2548 PR #2552
    • fix: binary decoding of bool values PR #2640
    • perf: improve performance of PgResultSet getByte/getShort/getInt/getLong for float-typed columns PR #2634
    • chore: fix various spelling errors PR #2592
    • chore: Feature/urlparser improve URLParser PR #2641
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.5.1 Released date: 2022-11-23 10:14:47 -0500 categories: - new_release version: 42.5.1

    Security

    • security: StreamWrapper spills to disk if setText, or setBytea sends very large Strings or arrays to the server. createTempFile creates a file which can be read by other users on unix like systems (Not macos).
      This has been fixed in this version fixes CVE-2022-41946 see the security advisory for more details.
      Reported by Jonathan Leitschuh
      This has been fixed in versions 42.5.1, 42.4.3 42.3.8, 42.2.27.jre7.
      Note there is no fix for 42.2.26.jre6. See the security advisory for work arounds.

    Fixed

    • fix: make sure we select array_in from pg_catalog to avoid duplicate array_in functions fixes #Issue 2548 PR #2552
    • fix: binary decoding of bool values PR #2640
    • perf: improve performance of PgResultSet getByte/getShort/getInt/getLong for float-typed columns PR #2634
    • chore: fix various spelling errors PR #2592
    • chore: Feature/urlparser improve URLParser PR #2641

    <!--more-->

    Commits by author

    Dave Cramer (13):

    • Update README.md PR 2609
    • Ignore simplequery for postgresql 8.4 PR 2614
    • Single commit to move newdocs into master PR 2618
    • update versions PR 2619
    • fix grammar, fix downloads, minor edits PR 2626
    • fix: make sure we select array_in from pg_catalog to avoid duplicate array_in functions fixes #Issue 2548 PR 2552
    • clarify prepared statement usage PR 2629
    • fix maven coordinates PR 2631
    • remove javadoc links for java 17 and above PR 2637
    • revert change to PGProperty.get() to keep the API the same PR 2644
    • exclude ArrayTest versions less than 9.1 PR 2645

    Evgeniy Devyatykh (1):

    • perf: improve performance of PgResultSet getByte/getShort/getInt/getLong for float-typed columns PR 2634

    Josh Soref (1):

    • chore: fix various spelling errors PR 2592

    Kevin222004 (1):

    Knut Olav Løite (1):

    • fix: binary decoding of bool values PR 2640

    Marek Läll (1):

    • Feature/urlparser improve3 pr1 PR 2641

    Vladimir Sitnikov (4):

    • docs: clarify we ship security fixes by default for the latest 42.x and 42.2 only PR 2586

    μtkarsh (1):

    Open source →
  24. 42.5.0 24 Aug 2022
    Release notes

    Changed

    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.5.0 Released date: 2022-08-24 08:30:09 -0400 version: 42.5.0

    Changed

    <!--more-->

    Commits by author

    Dave Cramer (5):

    • fix: revert change in PR 2597 where float was aliased to float4 from float8. float now aliases to float8 (#2598)
    Open source →
  25. 42.4.5 13 Mar 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.4.5 Released date: 2024-03-13 15:43:00 -0400 categories: - new_release version: 42.4.5

    Notable changes

    Fixed

    • Fix: Due to building the release using Java 17 version 42.4.4, would throw an exception NoSuchMethodError on ByteBuffer#position When Running on Java 8
    • Fix: In SimpleQuery mode SimpleParameterList did not support type casting for all well known types.
    Open source →
  26. 42.4.4 21 Feb 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.4.4 Released date: 2024-02-21 8:23:00 -0500 categories: - new_release version: 42.4.4

    Notable changes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.
    Open source →
  27. 42.4.3 23 Nov 2022

    Nothing published for this version

  28. 42.4.2 17 Aug 2022
    Release notes

    Changed

    • fix: add alias to the generated getUDT() query for clarity (PR #2553)[https://github.com/pgjdbc/pgjdbc/pull/2553]

    Added

    • fix: make setObject accept UUID array PR #2587

    Fixed

    • fix: regression with GSS. Changes introduced to support building with Java 17 caused failures Issue #2588
    • fix: set a timeout to get the return from requesting SSL upgrade. PR #2572
    • feat: synchronize statement executions (e.g. avoid deadlock when Connection.isValid is executed from concurrent threads)
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.4.2 Released date: 2022-08-17 10:33:37 -0400 version: 42.4.2

    Changed

    • fix: add alias to the generated getUDT() query for clarity PR #2553

    Added

    • fix: make setObject accept UUID array PR #2587

    Fixed

    • fix: regression with GSS. Changes introduced to support building with Java 17 caused failures Issue #2588
    • fix: set a timeout to get the return from requesting SSL upgrade. PR #2572
    • feat: synchronize statement executions (e.g. avoid deadlock when Connection.isValid is executed from concurrent threads)

    <!--more-->

    Commits by author

    Dave Cramer (7):

      Revert revert commits made in PR 2580 [PR 2583](https://github.com/pgjdbc/pgjdbc/pull/2583)
      fix mismatched types for invokeExact. Have to tell invokeExact what type we are expecting [PR 2589](https://github.com/pgjdbc/pgjdbc/pull/2589)
      update last copyright year [PR 2593](https://github.com/pgjdbc/pgjdbc/pull/2593)
      fix erroneous method signature and null subjectCallAs [PR 2595](https://github.com/pgjdbc/pgjdbc/pull/2595)
    

    Sasa Vilic (1):

      fix: make setObject accept UUID array [PR 2587](https://github.com/pgjdbc/pgjdbc/pull/2587)
    

    Andrei Lurie (1):

      fix: add alias to the generated getUDT() query for clarity (PR #2553)[https://github.com/pgjdbc/pgjdbc/pull/2553]
    
    Open source →
  29. 42.4.1 03 Aug 2022
    Release notes

    Security

    • fix: CVE-2022-31197 Fixes SQL generated in PgResultSet.refresh() to escape column identifiers so as to prevent SQL injection.
      • Previously, the column names for both key and data columns in the table were copied as-is into the generated SQL. This allowed a malicious table with column names that include statement terminator to be parsed and executed as multiple separate commands.
      • Also adds a new test class ResultSetRefreshTest to verify this change.
      • Reported by Sho Kato

    Changed

    • chore: skip publishing pgjdbc-osgi-test to Central
    • chore: bump Gradle to 7.5
    • test: update JUnit to 5.8.2

    Added

    • chore: added Gradle Wrapper Validation for verifying gradle-wrapper.jar
    • chore: added "permissions: contents: read" for GitHub Actions to avoid unintentional modifications by the CI
    • chore: support building pgjdbc with Java 17
    • feat: synchronize statement executions (e.g. avoid deadlock when Connection.isValid is executed from concurrent threads)
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.4.1 Released date: 2022-08-03 08:09:07 -0400 version: 42.4.1

    Security

    • fix: CVE-2022-31197 Fixes SQL generated in PgResultSet.refresh() to escape column identifiers so as to prevent SQL injection.
      • Previously, the column names for both key and data columns in the table were copied as-is into the generated SQL. This allowed a malicious table with column names that include statement terminator to be parsed and executed as multiple separate commands.
      • Also adds a new test class ResultSetRefreshTest to verify this change.
      • Reported by Sho Kato

    Changed

    • chore: skip publishing pgjdbc-osgi-test to Central
    • chore: bump Gradle to 7.5
    • test: update JUnit to 5.8.2

    Added

    • chore: added Gradle Wrapper Validation for verifying gradle-wrapper.jar
    • chore: added "permissions: contents: read" for GitHub Actions to avoid unintentional modifications by the CI
    • chore: support building pgjdbc with Java 17

    <!--more-->

    Commits by author

    Dave Cramer (9):

      bump gradle to version 3 to fix compile errors with jdk17 [PR 2550](https://github.com/pgjdbc/pgjdbc/pull/2550)
      update the website content [PR 2578](https://github.com/pgjdbc/pgjdbc/pull/2578)
    

    Sehrope Sarkuni (1):

    Fix SQL generated in PgResultSet.refresh() to escape column identifiers so as to prevent SQL injection.
    

    Vladimir Sitnikov (34):

    bump system-stubs-jupiter to 2.0.1 to support Java 16+
    update JUnit to 5.8.2
    migrate DriverTest to JUnit5
    bump Gradle to 7.5
    
    Open source →
  30. 42.4.0 09 Jun 2022
    Release notes

    Changed

    • fix: added GROUP_STARTUP_PARAMETERS boolean property to determine whether or not to group startup parameters in a transaction (default=false like 42.2.x) fixes Issue #2425 pgbouncer cannot deal with transactions in statement pooling mode PR #2425

    Fixed

    • fix: queries with up to 65535 (inclusive) parameters are supported now (previous limit was 32767) PR #2525, Issue #1311
    • fix: workaround JarIndex parsing issue by using groupId/artifactId-version directory namings. Regression since 42.2.13. PR #2531, issue #2527
    • fix: use Locale.ROOT for toUpperCase() toLowerCase() calls
    • doc: add Vladimir Sitnikov's PGP key
    • fix: return correct base type for domain from getUDTs PR #2520 Issue #2522
    • perf: utcTz static and renamed to UTC_TIMEZONE PR #2519
    • doc: fix release version for #2377 (it should be 42.3.6, not 42.3.5)
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.4.0 Released date: 2022-06-09 08:14:50 -0400 version: 42.4.0

    Changed

    • fix: added GROUP_STARTUP_PARAMETERS boolean property to determine whether or not to group startup parameters in a transaction (default=false like 42.2.x) fixes Issue #2425 pgbouncer cannot deal with transactions in statement pooling mode PR #2425

    Fixed

    • fix: queries with up to 65535 (inclusive) parameters are supported now (previous limit was 32767) PR #2525, Issue #1311
    • fix: workaround JarIndex parsing issue by using groupId/artifactId-version directory namings. Regression since 42.2.13. PR #2531, issue #2527
    • fix: use Locale. ROOT for toUpperCase() toLowerCase() calls
    • doc: add Vladimir Sitnikov's PGP key
    • fix: return correct base type for domain from getUDTs PR #2520 Issue #2522
    • perf: utcTz static and renamed to UTC_TIMEZONE PR #2519
    • doc: fix release version for #2377 (it should be 42.3.6, not 42.3.5)

    <!--more-->

    Commits by author

    Andrei Lurie (1):

      fix: return correct base type for domain from getUDTs [PR 2520](https://github.com/pgjdbc/pgjdbc/pull/2520) (#2522)
    

    Dave Cramer (3):

      fix: added GROUP_STARTUP_PARAMETERS boolean property to determine whether or not to group startup parameters in a transaction or not fixes Issue 2423 pgbouncer cannot deal with transactions in statement pooling mode [PR 2425](https://github.com/pgjdbc/pgjdbc/pull/2425)
    

    Jorge Solórzano (1):

      chore: Make the readme version agnostic [PR 2540](https://github.com/pgjdbc/pgjdbc/pull/2540)
    

    Sven Diedrichsen (1):

      Made utcTz static and renamed to UTC_TIMEZONE [PR 2519](https://github.com/pgjdbc/pgjdbc/pull/2519)
    

    Vladimir Sitnikov (24):

      doc: fix release version for [PR 2377](https://github.com/pgjdbc/pgjdbc/pull/2377) (it should be 42.3.6, not 42.3.5)
    
    Open source →
  31. 42.3.10 13 Mar 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.3.10 Released date: 2024-03-13 15:42:00 -0400 categories: - new_release version: 42.3.10

    Notable changes

    Fixed

    • Fix: Due to building the release using Java 17 version 42.3.9, would throw an exception NoSuchMethodError on ByteBuffer#position When Running on Java 8
    • Fix: In SimpleQuery mode SimpleParameterList did not support type casting for all well known types.
    Open source →
  32. 42.3.9 21 Feb 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.3.9 Released date: 2024-02-21 8:23:00 -0500 categories: - new_release version: 42.3.9

    Notable changes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.
    Open source →
  33. 42.3.8 23 Nov 2022

    Nothing published for this version

  34. 42.3.7 06 Sep 2022

    Nothing published for this version

  35. 42.3.6 24 May 2022
    Release notes

    Changed

    Added

    Fixed

    • fix: close refcursors when underlying cursor==null instead of relying on defaultRowFetchSize PR #2377
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.6 Released date: 2022-05-24 08:52:25 -0400 version: 42.3.6

    Changed

    Added

    Fixed

    • fix: close refcursors when underlying cursor==null instead of relying on defaultRowFetchSize PR #2377

    <!--more-->

    Commits by author

    Dave Cramer (2):

      Fix heading format for version numbers [PR 2504](https://github.com/pgjdbc/pgjdbc/pull/2504)
    

    Vladimir Sitnikov (1):

      fix: close refcursors when underlying cursor==null instead of relying on defaultRowFetchSize [PR #2377](https://github.com/pgjdbc/pgjdbc/pull/2377)
    
    Open source →
  36. 42.3.5 04 May 2022
    Release notes

    Changed

    • test: polish TimestampUtilsTest
    • chore: use GitHub Action concurrency feature to terminate CI jobs on fast PR pushes

    Added

    • Added KEYS file to allow for verifying artifacts PR 2499

    Fixed

    • perf: enable tcpNoDelay by default PR 2495. This is a regression from 42.2.x versions where tcpNoDelay defaulted to true
    • docs: fix readme.md after PR 2495 PR 2496
    • feat: targetServerType=preferPrimary connection parameter PR 2483
    • fix: revert removal of toOffsetDateTime(String timestamp) fixes Issue #2497 PR 2501
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.5 Released date: 2022-05-04 08:48:32 -0400 version: 42.3.5

    Known issues

    • Regression since 42.3.2: "cursor <unnamed portal 1> does not exist" when using ResultSet.setFetchSize from CallableStatement, fixed in 42.3.6 (see PG #2377)

    Changed

    • test: polish TimestampUtilsTest
    • chore: use GitHub Action concurrency feature to terminate CI jobs on fast PR pushes

    Added

    • Added KEYS file to allow for verifying artifacts PR 2499

    Fixed

    • perf: enable tcpNoDelay by default PR 2495. This is a regression from 42.2.x versions where tcpNoDelay defaulted to true
    • docs: fix readme.md after PR 2495 PR 2496
    • feat: targetServerType=preferPrimary connection parameter PR 2483
    • fix: revert removal of toOffsetDateTime(String timestamp) fixes Issue #2497 PR 2501

    <!--more-->

    Commits by author

    Dave Cramer (4):

      move version to 42.3.5 [PR 2493](https://github.com/pgjdbc/pgjdbc/pull/2493)
      Added KEYS file to allow for verifying artifacts [PR 2499](https://github.com/pgjdbc/pgjdbc/pull/2499)
      fix: revert removal of toOffsetDateTime(String timestamp)  fixes #Issue 2497 [PR 2501](https://github.com/pgjdbc/pgjdbc/pull/2501)
    

    Dmitriy Mukhin (1):

      feat: targetServerType=preferPrimary connection parameter [PR 2483](https://github.com/pgjdbc/pgjdbc/pull/2483)
    

    Olivier Bourgain (2):

      perf: enable tcpNoDelay by default [PR 2495](https://github.com/pgjdbc/pgjdbc/pull/2495)
      docs: fix readme.md after [PR 2495](https://github.com/pgjdbc/pgjdbc/pull/2495) (#2496)
    

    Vladimir Sitnikov (1):

      test: polish TimestampUtilsTest
      chore: use GitHub Action concurrency feature to terminate CI jobs on fast PR pushes
    
    Open source →
  37. 42.3.4 15 Apr 2022
    Release notes

    Changed

    • fix: change name of build cache PR 2471
    • feat: add support for ResultSet#getObject(OffsetTime.class) and PreparedStatement#setObject(OffsetTime.class) PR 2467
    • fix: Use non-synchronized getTimeZone in TimestampUtils PR 2451
    • docs: Fix CHANGELOG.md misformatted markdown headings PR 2461
    • docs: remove loggerLevel and loggerFile from docs and issues PR 2489
    • feat: use direct wire format -> LocalDate conversion without resorting to java.util.Date, java.util.Calendar, and default timezones PR 2464 fixes Issue #2221

    Added

    Fixed

    • docs: Update testing documentation PR 2446
    • fix: Throw an exception if the driver cannot parse the URL instead of returning NULL fixes Issue #2421 PR 2441
    • fix: Use PGProperty instead of the property names directly PR 2444
    • docs: update changelog, missing links at bottom and formatting PR 2460
    • fix: Remove isDeprecated from PGProperty. It was originally intended to help produce automated docs. Fixes Issue #2479 PR 2480
    • fix: change PGInterval parseISO8601Format to support fractional second PR 2457
    • fix: GSS login to use TGT from keytab fixes Issue #2469 PR 2470
    • fix: More test and fix for issues discovered by PR #2476 PR #2488
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.4 Released date: 2022-04-15 11:00:00 -0400 version: 42.3.4

    Known issues

    • Regression since 42.3.2: "cursor <unnamed portal 1> does not exist" when using ResultSet.setFetchSize from CallableStatement, fixed in 42.3.6 (see PG #2377)

    Changed

    • fix: change name of build cache PR 2471
    • feat: add support for ResultSet#getObject(OffsetTime.class) and PreparedStatement#setObject(OffsetTime.class) PR 2467
    • fix: Use non-synchronized getTimeZone in TimestampUtils PR 2451
    • docs: Fix CHANGELOG.md misformatted markdown headings PR 2461
    • docs: remove loggerLevel and loggerFile from docs and issues #2489
    • feat: use direct wire format -> LocalDate conversion without resorting to java.util. Date, java.util. Calendar, and default timezones PR 2464 fixes Issue #2221

    Added

    Fixed

    • docs: Update testing documentation PR 2446
    • fix: Throw an exception if the driver cannot parse the URL instead of returning NULL fixes Issue #2421 PR 2441
    • fix: Use PGProperty instead of the property names directly PR 2444
    • docs: update changelog, missing links at bottom and formatting PR 2460
    • fix: Remove isDeprecated from PGProperty. It was originally intended to help produce automated docs. Fixes #Issue 2479 PR 2480
    • fix: change PGInterval parseISO8601Format to support fractional second PR 2457
    • fix: More test and fix for issues discovered by PR #2476 PR #2488

    <!--more-->

    Commits by author

    Dave Cramer (8):

    • docs: Update testing documentation PR 2446
    • fix: Throw an exception if the driver cannot parse the URL instead of returning NULL fixes Issue PR 2421 (#2441)
    • fix: Use PGProperty instead of the property names directly PR 2444
    • docs: update changelog, missing links at bottom and formatting PR 2460
    • added post for 42.2.25 PR 2466
    • change name of build cache PR 2471
    • Remove isDeprecated from PGProperty. It was originally intended to help produce automated docs. Fixes #Issue 2479 PR 2480

    Fabio Cechinel Veronez (1):

    • docs: Fix CHANGELOG.md misformatted markdown headings PR 2461

    Uwe Schindler (2):

    • feat: add support for ResultSet#getObject(OffsetTime.class) and PreparedStatement#setObject(OffsetTime.class) PR 2467

    Wei Su (1):

    paulo-kluh (1):

    • fix: change PGInterval parseISO8601Format to support fractional second PR 2457

    吴伟杰 (1):

    • Use non-synchronized getTimeZone in TimestampUtils PR 2451

    Contributors to this release

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

    Uwe Schindler

    Wei Su

    Fabio Cechinel Veronez

    paulo-kluh

    吴伟杰

    Open source →
  38. 42.3.3 15 Feb 2022
    Release notes

    Changed

    • fix: Removed loggerFile and loggerLevel configuration. While the properties still exist. They can no longer be used to configure the driver logging. Instead use java.util.logging configuration mechanisms such as logging.properties.

    Added

    Fixed

    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.3 Released date: 2022-02-15 11:32:22 -0500 version: 42.3.3

    Known issues

    • Regression since 42.3.2: "cursor <unnamed portal 1> does not exist" when using ResultSet.setFetchSize from CallableStatement, fixed in 42.3.6 (see PG #2377)

    Changed

    • fix: Removed loggerFile and loggerLevel configuration. While the properties still exist. They can no longer be used to configure the driver logging. Instead use java.util.logging configuration mechanisms such as logging.properties .

    Added

    Fixed

    <!--more-->

    Commits by author

    Dave Cramer (5):

    Contributors to this release

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

    Sehrope Sarkuni

    Open source →
  39. 42.3.2 01 Feb 2022
    Release notes

    Security

    • CVE-2022-21724 pgjdbc instantiates plugin instances based on class names provided via authenticationPluginClassName, sslhostnameverifier, socketFactory, sslfactory, sslpasswordcallback connection properties. However, the driver did not verify if the class implements the expected interface before instantiating the class. This would allow a malicious class to be instantiated that could execute arbitrary code from the JVM. Fixed in commit

    Changed

    • perf: read in_hot_standby GUC on connection PR #2334
    • test: materialized view privileges PR #2209 fixes Issue #2060
    • docs: add info about convenience maven project PR #2407
    • docs: Document timezone reversal from POSIX to ISO PR #2413
    • fix: we will ask the server if it supports GSS Encryption if gssEncryption is prefer or require PR #2396 remove the need to have a ticket in the cache before asking the server if gss encryptions are supported
    • docs: remove Java 6 and 7 references from contributing PR #2385
    • style: remove Java 8 / JDBC 4.2 checks PR #2383 Remove all remaining checks whether the source is lower than Java 8 or JDBC 4.2.
    • fix: throw SQLException for #getBoolean BIT(>1) PR #2386 Throw SQLException instead of ClassCastException when calling CallableStatement#getBoolean(int) on BIT(>1).
    • style: import java.time types in more classes PR #2382 Use imports for java.time types in all remaining classes.
    • style: import java.time types in TimestampUtils PR #2380 Use imports for java.time types in TimestampUtils.
    • refactor: Change internal constructors to pass only connection Properties Changes internal constructors for PgConnection and related classes to only accept the connection properties object and remove the user and password arguments. Any locations that required those fields can retrieve them from the properties map.
    • test: Fix DatabaseMetadataTest to perform mview tests only on 9.3+
    • perf: read in_hot_standby GUC on connection PR #2334
    • doc: improv doc around binary decoding of numeric data #2331
    • Add cert key type checking to chooseClientAlias PR #2417

    Added

    • feat: Add authenticationPluginClassName option to provide passwords at runtime Adds authenticationPluginClassName connection property that allows end users to specify a class that will provide the connection passwords at runtime. Users implementing that interface must ensure that each invocation of the method provides a new char[] array as the contents will be filled with zeroes by the driver after use.Call sites within the driver have been updated to use the char[] directly wherever possible. This includes direct usage in the GSS authentication code paths that internally were already converting the String password into a char[] for internal usage. This allows configuring a connection with a password that must be generated on the fly or periodically changes. PR #2369 original issue Issue #2102
    • feat: add tcpNoDelay option PR #2341 fixes Issue #2324
    • feat: pg_service.conf and .pgpass support (jdbc:postgresql://?service=my-service) PR #2260 fixes Issue #2278

    Fixed

    • Use local TimestampUtil in PgStatement and PgResultset for thread safety PR #2291 fixes Issue #921 synchronize modification of shared calendar
    • fix: PgObject isNull() was reporting the opposite fixes Issue #2411 PR #2414
    • fix: default file name is ".pg_service.conf" on Windows (not "pg_service.conf") PR #2398 fixes Issue #2278
    • test: Fix RefCursorFetchTest on older platforms
    • fix: do not close refcursor after reading if fetchsize has been set fixes Issue #2227 PR #2371
    • fix: rework gss authentication to use the principal name to get the credentials fixes Issue #2235 PR #2352
    • fix: return getIndexInfo metadata columns in UPPER CASE PR #2368
    • fix: Connection leak in ConnectionFactoryImpl#tryConnect PR #2350 Issue #2351
    • fix: Fix For IS_AUTOGENERATED Flag PR #2348
    • fix: parsing service file tests for windows PR #2347
    • fix: The spec says that calling close() on a closed connection is a noop. PR #2345 fixes Issue #2300
    • fix: add microsecond precision to getTimestamp() called on sql TIME(6) Currently, "when fetching a value of type TIME(6) through resultSet.getTimestamp() only ms precision is retained, the microsecond fractional digits are lost." This change will retain the microsecond precision when .getTimestamp() is called on TIME(6). PR #2181 Closes Issue #1537
    • test: materialized view privileges PR #2209 add and drop a materialized view Add to TestUtil and also to DatabaseMetaData setup and teardown fixes Issue #2060
    • fix: typo in connect.md PR #2338 OutOfMemoryException => OutOfMemoryError
    • fix: use local TimestampUtil in PgStatement and PgResultset for thread safety TimestampUtil is not thread safe. It raises exceptions when multiple threads use ResultSets of one connection. PR #2291 fixes Issue #921 If PgStatement and PgResultSet use their own TimestampUtil no synchronize is needed.
    • fix: typo in CONTRIBUTING.md PR #2332 seccion => section
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.2 Released date: 2022-02-01 07:35:28 -0500 version: 42.3.2

    Known issues

    • Regression since 42.3.2: "cursor <unnamed portal 1> does not exist" when using ResultSet.setFetchSize from CallableStatement, fixed in 42.3.6 (see PG #2377)

    Security

    • CVE-2022-21724 pgjdbc instantiates plugin instances based on class names provided via authenticationPluginClassName, sslhostnameverifier, socketFactory, sslfactory, sslpasswordcallback connection properties. However, the driver did not verify if the class implements the expected interface before instantiating the class. This would allow a malicious class to be instantiated that could execute arbitrary code from the JVM. Fixed in commit

    Changed

    • perf: read in_hot_standby GUC on connection PR #2334
    • test: materialized view privileges PR #2209 fixes Issue #2060
    • docs: add info about convenience maven project PR #2407
    • docs: Document timezone reversal from POSIX to ISO PR #2413
    • fix: we will ask the server if it supports GSS Encryption if gssEncryption is prefer or require PR #2396 remove the need to have a ticket in the cache before asking the server if gss encryptions are supported
    • docs: remove Java 6 and 7 references from contributing PR #2385
    • style: remove Java 8 / JDBC 4.2 checks PR #2383 Remove all remaining checks whether the source is lower than Java 8 or JDBC 4.2.
    • fix: throw SQLException for #getBoolean BIT(>1) PR #2386 Throw SQLException instead of ClassCastException when calling CallableStatement#getBoolean(int) on BIT(>1).
    • style: import java.time types in more classes PR #2382 Use imports for java.time types in all remaining classes.
    • style: import java.time types in TimestampUtils PR #2380 Use imports for java.time types in TimestampUtils.
    • refactor: Change internal constructors to pass only connection Properties Changes internal constructors for PgConnection and related classes to only accept the connection properties object and remove the user and password arguments. Any locations that required those fields can retrieve them from the properties map.
    • test: Fix DatabaseMetadataTest to perform mview tests only on 9.3+
    • perf: read in_hot_standby GUC on connection PR #2334
    • doc: improv doc around binary decoding of numeric data #2331
    • Add cert key type checking to chooseClientAlias PR #2417

    Added

    • feat: Add authenticationPluginClassName option to provide passwords at runtime Adds authenticationPluginClassName connection property that allows end users to specify a class that will provide the connection passwords at runtime. Users implementing that interface must ensure that each invocation of the method provides a new char[] array as the contents will be filled with zeroes by the driver after use. Call sites within the driver have been updated to use the char[] directly wherever possible. This includes direct usage in the GSS authentication code paths that internally were already converting the String password into a char[] for internal usage. This allows configuring a connection with a password that must be generated on the fly or periodically changes. PR #2369 original issue Issue #2102
    • feat: add tcpNoDelay option PR #2341 fixes Issue #2324
    • feat: pg_service.conf and .pgpass support (jdbc:postgresql://?service=my-service) PR #2260 fixes Issue #2278

    Fixed

    • Use local TimestampUtil in PgStatement and PgResultset for thread safety PR #2291 fixes Issue #921 synchronize modification of shared calendar
    • fix: PgObject isNull() was reporting the opposite fixes Issue #2411 PR #2414
    • fix: default file name is ".pg_service.conf" on Windows (not "pg_service.conf") PR #2398 fixes Issue #2278
    • test: Fix RefCursorFetchTest on older platforms
    • fix: do not close refcursor after reading if fetchsize has been set fixes Issue #2227 PR #2371
    • fix: rework gss authentication to use the principal name to get the credentials fixes Issue #2235 PR #2352
    • fix: return getIndexInfo metadata columns in UPPER CASE PR #2368
    • fix: Connection leak in ConnectionFactoryImpl#tryConnect PR #2350 Issue #2351
    • fix: Fix For IS_AUTOGENERATED Flag PR #2348
    • fix: parsing service file tests for windows PR #2347
    • fix: The spec says that calling close() on a closed connection is a noop. PR #2345 fixes Issue #2300
    • fix: add microsecond precision to getTimestamp() called on sql TIME(6) Currently, "when fetching a value of type TIME(6) through resultSet.getTimestamp() only ms precision is retained, the microsecond fractional digits are lost." This change will retain the microsecond precision when .getTimestamp() is called on TIME(6). PR #2181 Closes Issue #1537
    • test: materialized view privileges PR #2209 add and drop a materialized view Add to TestUtil and also to DatabaseMetaData setup and teardown fixes Issue #2060
    • fix: typo in connect.md PR #2338 OutOfMemoryException => OutOfMemoryError
    • fix: use local TimestampUtil in PgStatement and PgResultset for thread safety TimestampUtil is not thread safe. It raises exceptions when multiple threads use ResultSets of one connection. PR #2291 fixes Issue #921 If PgStatement and PgResultSet use their own TimestampUtil no synchronize is needed.
    • fix: typo in CONTRIBUTING.md PR #2332 seccion => section

    <!--more-->

    Commits by author

    Andrei Paikin (1):

    • minor: fix checkstyle violations for empty lines in enum PR 2426

    Brett Okken (1):

    • doc: improv doc around binary decoding of numeric data PR 2331

    Dave Cramer (21):

    • move comment to appropriate place and add explanation PR 2336
    • bump version in readme and gradle.properties PR 2335
    • add entries for latest changes PR 2339
    • Ms goodman time gettimestamp micros PR 2181
    • add TCP No Delay option fixes Issue PR 2324 (#2341)
    • fix Issue PR 2300. The spec says that calling close() on a closed connection is a noop. (#2345)
    • fix: parsing service file tests for windows PR 2347
    • fix: return getIndexInfo metadata columns in UPPER CASE PR 2368
    • fix: rework gss authentication to use the principal name to get the credentials fixes Issue PR 2235 (#2352)
    • Removed unsafe package and native kerberos ticket check PR 2363
    • log4jmessage PR 2370
    • Put back GSSCallbackHandler. Avoid using forbidden api PR 2373
    • fix: do not close refcursor after reading if fetchsize has been set fixes ISSUE PR 2227 (#2371)
    • perf: add read(b, o, l) to BlobInputStream PR 2376
    • change the default directory returned on windows to APPDATA/postgresql since that is what we end up using anyway PR 2402
    • fix: we will ask the server if it supports GSS Encryption if gssEncryption is prefer or require PR 2396
    • docs: Document timezone reversal from POSIX to ISO PR 2413
    • fix: PgObject isNull() was reporting the opposite fixes Issue PR 2411 (#2414)
    • remove skipjre6 and skipjre7 PR 2415
    • Revert "perf: add read(b, o, l) to BlobInputStream PR 2376" (#2422)
    • Changelog42.3.2 PR 2418

    JoelRabinovitch (1):

    • fixForIsAutoGenerated Fix For IS_AUTOGENERATED Flag PR 2348

    Marek Läll (2):

    • Issue 2278 ; jdbc:postgresql://?service= ; pg_service.conf ; .pgpass PR 2282
    • fix: default file name is ".pg_service.conf" on Windows (not "pg_service.conf") PR 2398

    Mark Grobaker (1):

    • test: materialized view privileges PR 2209

    Michał Wyrzykowski (1):

    • fix: Connection leak in ConnectionFactoryImpl#tryConnect PR 2350 (#2351)

    Nick Burgan (1):

    • Add cert key type checking to chooseClientAlias PR 2417

    Philippe Marschall (6):

    • style: fix typos in pgobject javadoc PR 2379
    • style: import java.time types in TimestampUtils PR 2380
    • style: import java.time types in more classes PR 2382
    • fix: throw SQLException for #getBoolean BIT(>1) PR 2386
    • style: remove Java 8 / JDBC 4.2 checks PR 2383
    • docs: remove Java 6 and 7 references from contributing PR 2385

    Sehrope Sarkuni (9):

    • feat: Change AuthenticationPlugin interface to use char[] rather than String PR 2420
    • test: Disable no-arg callable statement tests in simple query mode PR 2419
    • test: Remove extra catch-fail in RefCursorFetchTest PR 2391
    • test: Fix RefCursorFetchTest on older platforms PR 2391
    • feat: Add authenticationPluginClassName option to provide passwords at runtime PR 2369
    • test: Add TestUtil.assumeHaveMinimumServerVersion(...) helper PR 2369
    • refactor: Change internal constructors to pass only connection Properties PR 2369
    • refactor: Use multi-catch for exceptions in ConnectionFactoryImpl PR 2369
    • test: Fix DatabaseMetadataTest to perform mview tests only on 9.3+ PR 2340

    Sergey Nuyanzin (4):

    • [typo] typo in CONTRIBUTING.md PR 2332
    • [typo] in connect.md PR 2338
    • Misprint in messages_ru.java PR 2358

    Sergey Prytkov (1):

    • perf: read in_hot_standby GUC on connection PR 2334

    Zuzana Miklankova (1):

    • docs: add info about convenience maven project PR 2407

    marcmuel (1):

    • fix: use local TimestampUtil in PgStatement and PgResultset for thread safety PR 2291

    Contributors to this release

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

    Pavel Raiskup

    Sehrope Sarkuni

    Andrei Paikin

    Nick Burgan

    Zuzana Miklankova

    Marek Läll

    Philippe Marschall

    Sergey Nuyanzin

    Michał Wyrzykowski

    JoelRabinovitch

    Mark Grobaker

    Sergey Prytkov

    marcmuel

    Brett Okken

    Open source →
  40. 42.3.1 29 Oct 2021
    Release notes

    Changed

    • improv: Arrays in Object[] PR 2330 when an Object[] contains other arrays, treat as though it were a multi-dimensional array the one exception is byte[], which is not supported.
    • improv: Use jre utf-8 decoding PR 2317 Remove use of custom utf-8 decoding.
    • perf: improve performance of bytea string decoding PR 2320 improve the parsing of bytea hex encoded string by making a lookup table for each of the valid ascii code points to the 4 bit numeric value
    • feat: intern/canonicalize common strings PR 2234

    Added

    Fixed

    • numeric binary decode for even 10 thousands PR #2327 fixes Issue 2326 binary numeric values which represented integers multiples of 10,000 from 10,000-9,990,000 were not decoded correctly
    • [typo] typo in certdir/README.md PR #2309 certificatess => certificates
    • [typo] typo in TimestampUtils.java PR #2314 Change Greagorian to Gregorian.
    • remove check for negative pid in cancel request. Apparently pgbouncer can send one fixes Issue 2317 PR #2319
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.1 Released date: 2021-10-29 15:09:25 +0000 version: 42.3.1

    Changed

    • improv: Arrays in Object[] PR 2330 when an Object[] contains other arrays, treat as though it were a multi-dimensional array the one exception is byte[], which is not supported.
    • improv: Use jre utf-8 decoding PR 2317 Remove use of custom utf-8 decoding.
    • perf: improve performance of bytea string decoding PR 2320 improve the parsing of bytea hex encoded string by making a lookup table for each of the valid ascii code points to the 4 bit numeric value
    • feat: intern/canonicalize common strings PR 2234

    Added

    Fixed

    • numeric binary decode for even 10 thousands PR #2327 fixes Issue 2326 binary numeric values which represented integers multiples of 10, 000 from 10, 000-9, 990, 000 were not decoded correctly
    • [typo] typo in certdir/README.md PR #2309 certificatess => certificates
    • [typo] typo in TimestampUtils.java PR #2314 Change Greagorian to Gregorian.
    • remove check for negative pid in cancel request. Apparently pgbouncer can send one fixes Issue 2317 PR #2319

    <!--more-->

    Commits by author

    Brett Okken (6):

    Dave Cramer (5):

    Sergey Nuyanzin (1):

    吴伟杰 (1):

    Contributors to this release

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

    Brett Okken

    Dave Cramer

    Sergey Nuyanzin

    吴伟杰

    Open source →
  41. 42.3.0 15 Oct 2021
    Release notes

    Changed

    • No longer build for Java 6 or Java 7
    • If assumeMinServerVersion is not defined and server is at least 9.0, group startup statements into a single transaction PR #1977

    Added

    • Support for pg_service.conf file and jdbc URL syntax: "jdbc:postgresql://?service=service1". Resource can be provided using 1) property "-Dorg.postgresql.pgservicefile=file1" 2) environment variable PGSERVICEFILE=file2 3) default location "$HOME/.pg_service.conf" 4) environment variable PGSYSCONFDIR=dir1 looks for file "dir1/pg_service.conf".
    • Support for .pgpass file. Resource can be provided using 1) property "-Dorg.postgresql.pgpassfile=file1" 2) environment variable PGPASSFILE=file2 3) default location "$HOME/.pgpass"

    Fixed

    • Rework OSGi bundle activator so it does not rely on exception message to check DataSourceFactory presence PR #507
    • Fix database metadata getFunctions() and getProcedures() to ignore search_path when no schema pattern is specified PR #2174
    • Fix refreshRow made the row readOnly. [PR #2195](https://github.com/pgjdbc/pgjdbc/pull/2195 Fixes Issue #2193
    • Fix do not add double quotes to identifiers already double quoted PR #2224 Fixes Issue #2223 Add a property QUOTE_RETURNING_IDENTIFIERS which determines if we put double quotes around identifiers that are provided in the returning array.
    • Fix Provide useful error message for empty or missing passwords for SCRAM auth PR #2290 fixes Issue #2288
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.3.0 Released date: 2021-10-18 15:05:25 +0000 version: 42.3.0

    Changed

    • No longer build for Java 6 or Java 7
    • If assumeMinServerVersion is not defined and server is at least 9.0, group startup statements into a single transaction PR #1977

    Added

    Fixed

    • Rework OSGi bundle activator so it does not rely on exception message to check DataSourceFactory presence PR #507
    • Fix database metadata getFunctions() and getProcedures() to ignore search_path when no schema pattern is specified PR #2174
    • Fix refreshRow made the row readOnly. PR #2195 Fixes Issue #2193
    • Fix do not add double quotes to identifiers already double quoted PR #2224 Fixes Issue #2223 Add a property QUOTE_RETURNING_IDENTIFIERS which determines if we put double quotes around identifiers that are provided in the returning array.
    • Fix Provide useful error message for empty or missing passwords for SCRAM auth PR #2290 fixes Issue #2288

    Contributors to this release

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

    Abhishek-kumar09

    adrklos

    Agata Naomichi

    Andrew Dunstan

    Brett Okken

    costa100

    Dave Cramer

    David Rader

    Eric Peterson

    Feng zhihao

    Frode Carlsen

    Hugo Abreu

    iceback

    Jeremy Mailen

    Jesper Pedersen

    Jorge Solorzano

    Jorge Solórzano

    Juha Syrjälä

    JY Cr

    Laurenz Albe

    Michael Ernst

    MMeent

    odubaj

    Pavel Bludov

    Peter Eisentraut

    plan3d

    Power

    rtrier

    Sehrope Sarkuni

    Simon Strassl

    Tom Aizenberg

    Vladimir Sitnikov

    Vyom Yadav

    xpoinsard

    Open source →
  42. 42.2.29 13 Mar 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.2.29 Released date: 2024-03-13 15:32:00 -0400 categories: - new_release version: 42.2.29

    Notable changes

    Fixed

    • Fix: Due to building the release using Java 17 version 42.2.28, would throw an exception NoSuchMethodError on ByteBuffer#position When Running on Java 8
    • Fix: In SimpleQuery mode SimpleParameterList did not support type casting for all well known types.
    Open source →
  43. 42.2.28.jre7 21 Feb 2024

    Nothing published for this version

  44. 42.2.28 21 Feb 2024
    Release notes

    title: PostgreSQL JDBC Driver 42.2.28 Released date: 2024-02-21 8:23:00 -0500 categories: - new_release version: 42.2.28

    Notable changes

    Security

    • security: SQL Injection via line comment generation, it is possible in SimpleQuery mode to generate a line comment by having a placeholder for a numeric with a - such as -?. There must be second placeholder for a string immediately after. Setting the parameter to a -ve value creates a line comment. This has been fixed in this version fixes CVE-2024-1597. Reported by Paul Gerste. See the security advisory for more details. This has been fixed in versions 42.7.2, 42.6.1 42.5.5, 42.4.4, 42.3.9, 42.2.28.jre7. See the security advisory for work arounds.
    Open source →
  45. 42.2.27.jre7 23 Nov 2022

    Nothing published for this version

  46. 42.2.27.jre6 23 Nov 2022

    Nothing published for this version

  47. 42.2.27 23 Nov 2022

    Nothing published for this version

  48. 42.2.26.jre7 03 Aug 2022

    Nothing published for this version

  49. 42.2.26.jre6 03 Aug 2022

    Nothing published for this version

  50. 42.2.26 03 Aug 2022

    Nothing published for this version

  51. 42.2.25.jre7 01 Feb 2022

    Nothing published for this version

  52. 42.2.25.jre6 01 Feb 2022

    Nothing published for this version

  53. 42.2.25 01 Feb 2022
    Release notes

    title: PostgreSQL JDBC Driver 42.2.25 Released date: 2022-02-01 07:35:28 -0500 version: 42.2.25

    Security

    • CVE-2022-21724 pgjdbc instantiates plugin instances based on class names provided via authenticationPluginClassName, sslhostnameverifier, socketFactory, sslfactory, sslpasswordcallback connection properties. However, the driver did not verify if the class implements the expected interface before instantiating the class. This would allow a malicious class to be instantiated that could execute arbitrary code from the JVM. Fixed in commit

    <!--more-->

    Commits by author

    Open source →
  54. 42.2.24.jre7 23 Sep 2021

    Nothing published for this version

  55. 42.2.24.jre6 23 Sep 2021

    Nothing published for this version

  56. 42.2.24 23 Sep 2021
    Release notes

    Fixed

    • Fix startup regressions caused by PR #1949. Instead of checking all types by OID, we can return types for well known types PR #2257
    • Backport PR #2148 Avoid leaking server error details through BatchUpdateException when logServerErrorDetail PR #2254
    • Backpatch PR #2247 QueryExecutorImpl.receiveFastpathResult did not properly handle ParameterStatus messages. This in turn caused failures for some LargeObjectManager operations. Closes Issue #2237 Fixed by adding the missing code path, based on the existing handling in processResults. PR #2253
    • Backpatch PR #2242 PgDatabaseMetaData.getIndexInfo() cast operands to smallint PR#2253 It is possible to break method PgDatabaseMetaData.getIndexInfo() by adding certain custom operators. This PR fixes it.
    • Backpatching PR #2251 into 42.2 Clean up open connections to fix test failures on omni and appveyor use older syntax for COMMENT ON FUNCTION with explicit no-arg parameter parentheses as it is required on server versions before v10. Handle cleanup of connection creation in StatementTest, handle cleanup of privileged connection in DatabaseMetaDataTest
    • Backpatch PR #2245 fixes case where duplicate tables are returned if there are duplicate descriptions oids are not guaranteed to be unique in the catalog PR #2248
    • Change to updatable result set to use correctly primary or unique keys PR #2228 fixes issues introduced in PR #2199 closes Issue #2196
    • Fix NPE calling getTypeInfo when alias is null PR #2220
    • Backpatch PR #2217 to fix Issue #2215. OIDs are unsigned integers and were not being handled correctly when they exceeded the size of signed integers
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.2.24 Released date: 2021-09-22 15:30:49 +0000 version: 42.2.24

    Fixed

    • Fix startup regressions caused by PR #1949. Instead of checking all types by OID, we can return types for well known types PR #2257
    • Backport PR #2148 Avoid leaking server error details through BatchUpdateException when logServerErrorDetail PR #2254
    • Backpatch PR #2247 QueryExecutorImpl.receiveFastpathResult did not properly handle ParameterStatus messages. This in turn caused failures for some LargeObjectManager operations. Closes Issue #2237 Fixed by adding the missing code path, based on the existing handling in processResults. PR #2253
    • Backpatch PR #2242 PgDatabaseMetaData.getIndexInfo() cast operands to smallint PR#2253 It is possible to break method PgDatabaseMetaData.getIndexInfo() by adding certain custom operators. This PR fixes it.
    • Backpatching PR #2251 into 42.2 Clean up open connections to fix test failures on omni and appveyor use older syntax for COMMENT ON FUNCTION with explicit no-arg parameter parentheses as it is required on server versions before v10. Handle cleanup of connection creation in StatementTest, handle cleanup of privileged connection in DatabaseMetaDataTest
    • Backpatch PR #2245 fixes case where duplicate tables are returned if there are duplicate descriptions oids are not guaranteed to be unique in the catalog PR #2248
    • Change to updatable result set to use correctly primary or unique keys PR #2228 fixes issues introduced in PR #2199 closes Issue #2196
    • Fix NPE calling getTypeInfo when alias is null PR #2220
    • Backpatch PR #2217 to fix Issue #2215. OIDs are unsigned integers and were not being handled correctly when they exceeded the size of signed integers

    <!--more-->

    Commits by author

    Dave Cramer (7):

    • fix: backpatch PRPR 2217 to fix issue #2215. (#2218) be1d4aa0
    • fix: NPE calling getTypeInfo when alias is null PR 2220 77c7d94e
    • remove old changelog information from post. Incorrectly added by development script that is clearly still in development PR 2240 a70834e8
    • backpatch prPR 2245 fixes case where duplicate tables are returned if there are duplicate descriptions oids are not guaranteed to be unique in the catalog (#2248) f4928cee
    • backpatch PRPR 2247 (#2249) 7bf89c8b
    • fix startup regressions caused by PR PR 1949. Instead of checking all types by OID, we can return types for well known types (#2257) 88cfccab
    • Bump version to 42.2.24 and update changelog 233c5181

    Jens Peters (1):

    Juha Syrjälä (1):

    • PgDatabaseMetaData.getIndexInfo() cast operands to smallint PR 2242 (#2253) 33af6a78

    Sehrope Sarkuni (3):

    • test: Fix database metadata to handle older versions for function comment bb1f7285
    • test: Handle cleanup of connection creation in StatementTest 1c5f5271
    • test: Handle cleanup of privileged connection in DatabaseMetaDataTest 5c6041b4

    chalmagr (1):

    • Fix updateable result set when there are primary keys and unique keys PR 2228 c596587a

    Contributors to this release

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

    chalmagr

    Dave Cramer

    Jens Peters

    Juha Syrjälä

    Sehrope Sarkuni

    Open source →
  57. 42.2.23.jre7 06 Jul 2021

    Nothing published for this version

  58. 42.2.23.jre6 06 Jul 2021

    Nothing published for this version

  59. 42.2.23 06 Jul 2021
    Release notes

    Changed

    • Renewed the SSL keys for testing

    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.
    Open source →
    Release notes

    title: PostgreSQL JDBC Driver 42.2.23 Released date: 2021-07-06 09:17:31 -0400 version: 42.2.23

    Changed

    • renewed the SSL keys for testing

    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.

    <!--more-->

    Commits by author

    Dave Cramer (2):

    • fix: back patch results should be updateable PR#2199
    • test: Regenerate TLS certs with new expirations (#2201)
    • backpatch PR 1949 (#2206) Rework sql type gathering to use OID instead of typname.
    Open source →
  60. 42.2.22.jre7 16 Jun 2021

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive