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 2026Releases
latest 60 of 202-
42.7.1306 Jul 2026Release notes
Open source →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- fix(deps): update dependency com.gradleup.shadow:com.gradleup.shadow.gradle.plugin to v9.4.3 @renovate-bot (#4258)
- fix(deps): update dependency com.gradleup.shadow:com.gradleup.shadow.gradle.plugin to v9.4.2 @renovate-bot (#4176)
- chore(deps): update kotlin monorepo to v2.4.0 @renovate-bot (#4183)
- chore(deps): update gradle/actions action to v6.2.0 @renovate-bot (#4182)
- fix(deps): update dependency jacoco to v0.8.15 @renovate-bot (#4177)
- fix(deps): update logback to v1.5.34 @renovate-bot (#4180)
- chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.9.6 @renovate-bot (#4173)
- chore(deps): update plugin com.gradle.develocity to v4.4.2 @renovate-bot (#4174)
- chore(deps): update github/codeql-action action to v4.36.2 @renovate-bot (#4171)
- chore(deps): update dependency sbt/sbt to v1.12.12 @renovate-bot (#4170)
- chore(deps): update actions/checkout action to v6.0.3 @renovate-bot (#4169)
- chore(deps): update codecov/codecov-action digest to fb8b358 @renovate-bot (#4168)
- fix(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v5 @renovate-bot (#4109)
- chore(deps): update ubuntu docker tag to v26 @renovate-bot (#4103)
- fix(deps): update com.github.vlsi to v3 @renovate-bot (#4107)
- fix(deps): update dependency checkstyle to v13 @renovate-bot (
Note truncated.
Release notes
Open source →Added
- feat: invalidate the prepared-statement cache when the server reports a
search_pathchange via GUC_REPORT (PostgreSQL 18+), so cached plans are no longer used against the wrong schema PR #4259 - feat:
reWriteBatchedInsertsnow merges up to 32768 rows into one multi-valuesINSERT(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 newreWriteBatchedInsertsSizeconnection property lowers that cap when set; the default of0uses 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 newflushCacheOnDdlconnection property (defaulttrue); set tofalsefor the prior behaviour. PR #4067 - feat: add
connectExecutorconnection property to customize theExecutorused to run the worker task that performs the connection attempt whenloginTimeoutis in effect. The value is the fully qualified name of a class implementingjava.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
classLoaderStrategyconnection property to control which classloaders the driver searches when loading a class named by a connection property, for examplesocketFactory. The defaultdriver-firstnow 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. Setdriverto keep the previous driver-classloader-only behaviour, orcontext-firstto prefer the thread context classloader Issue #2112 PR #4167 - feat: add OID constants for geometric arrays,
RECORD, andrefcursorPR #4220 - feat:
LargeObjectBlobInputStreamnow 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
loginTimeoutis now aFutureTask(ConnectTask) instead of the hand-rolledConnectThread. When the caller hits the timeout, the task is now cancelled withcancel(true), which interrupts the worker thread rather than letting it run to completion. This makes the connection attempt interruptible, sologinTimeoutcan 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.ConnectionHandlernow rejectssetAutoCommit(false)andsetSavepoint(...)during an active XA branch, in addition to the long-rejectedsetAutoCommit(true)/commit()/rollback(). ThesetSavepointrejection was already meant to be in place but the guard misspelled the method name assetSavePoint, 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 returnXAER_RMFAILinstead ofXAER_RMERRwhen the underlying connection is left in a non-idleTransactionState. Transaction managers (Geronimo, Narayana, Atomikos) treatXAER_RMFAILas retryable on a freshXAResource; the prepared transaction is no longer abandoned. PR #4114 - refactor: derive
getPrimaryKeysfrompg_constraint.conkeyPR #4202
Fixed
- fix: the published GitHub release now ships the released
postgresql-<version>.jarand 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#cancelstate machine by dropping the redundantCANCELLEDstate.killTimerTasknow waits for the state to return toIDLEdirectly, 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
BEGINand the following query to share a network flush Issue #3894 PR #4196 - fix:
reWriteBatchedInsertsno longer throwsIllegalArgumentExceptionwhen batching a parameterlessINSERT(for exampleINSERT INTO t VALUES (1, 2)) of 256 rows or more PR #4207 - fix: a comment before
CALLin aCallableStatementno longer hides the native call, so OUT parameter registration works for/* comment */ call proc(?, ?)and similar.Parser.modifyJdbcCallnow 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 abyteavalue supplied as text viaPGobject. Hex-format values (\x...) are validated and rendered as abytealiteral, and escape-format values are quoted and cast like any other literal Issue #3757 PR #4201 - fix: the driver no longer nulls the
contextClassLoaderof sharedForkJoinPool.commonPool()worker threads, which previously left unrelated tasks on those threads running with anullclassloader Issue #4155 PR #4156 - fix:
PgResultSet#getCharacterStreamwrapsStringin aStringReaderPR #4063 - fix:
PGXAConnectionno longer saves and restores the underlying connection's JDBCautoCommitflag. All XA-protocol SQL (BEGIN,PREPARE TRANSACTION,COMMIT,ROLLBACK,COMMIT PREPARED,ROLLBACK PREPARED, therecover()SELECT) is sent throughQUERY_SUPPRESS_BEGIN, so the caller'sautoCommitvalue is invariant across everyXAResourcecall. Fixes the "2nd phase commit must be issued using an idle connection" failure during recovery on managed datasources that pool connections withautoCommit=false(TomEE, WildFly, WebSphere Liberty) PR #4114 - fix:
PGXAConnection.prepare()now mutates XA state only afterPREPARE TRANSACTIONsucceeds. A failedPREPAREpreviously left the driver thinking the branch was already prepared, so the follow-uprollback(xid)triedROLLBACK PREPAREDagainst a non-existent gid and returnedXAER_RMERR. Transaction managers (Narayana) escalated this toHeuristicMixedException. With the fix,rollback(xid)takes the active-branch path and issues a plainROLLBACK, 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 explicitflush()no longer drops buffered writes. The flush runs while the object is still open (it calls back intoLargeObject.write()), andlo_closealways runs afterward; a failure fromlo_closeno 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, anddatetext with a clearSQLException(SQLState22007) instead of anArrayIndexOutOfBoundsExceptionPR #4278 - fix: return null
CHAR_OCTET_LENGTHfor non-character columns PR #4231 - fix: honor scale in
ResultSet.getBigDecimal(int, int)PR #4211 - fix: support
java.timevalues in an updatableResultSetupdateRow()/insertRow()PR #3848 - fix: improve batching when the
RETURNINGclause containsvarcharornumerictypes PR #4014 - fix: correct
estimatedReceiveBufferBytesaccounting after a forcedSyncPR #4014 - fix: avoid creating a transient
ResultSetfor 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_pathchanges case-insensitively PR #4216 - fix: auto-detect the SSL key format instead of relying on the
.keyextension PR #3946 - fix: build PKIX trust anchors without a
KeyStoreso FIPS JVMs work PR #4193 - fix: use
gssResponseTimeoutrather thansslResponseTimeoutfor GSS connections PR #4076 - fix: skip the autosave savepoint for
SET LOCAL/SET SESSION TRANSACTIONPR #4203 - fix: do not throw
AssertionErrorfromBatchResultHandleron a closed connection PR #4187 - fix: reject
SQL_TSI_FRAC_SECONDwith an explicit, explained error PR #4229 - fix: reject a null URL in
Driver.acceptsURLwith a clearNullPointerExceptionPR #4205 - fix: reject overlong inputs in
NumberParser.getFastLonginstead of silently wrapping PR #4163 - fix: reject out-of-range and NaN values in
PGInterval.setSecondsPR #4194 - fix: close the socket when
PgConnectionsetup fails after connect PR #4161 - fix: keep the
LazyCleanerImplcleanup task alive across a transient empty queue PR #4038 - fix: append the default non-proxy hosts when
socksNonProxyHostsis set PR #4045 - fix: clear the
ResourceBundlecache on deregister so the driver can unload PR #4237 - fix: delete the temp file when spooling a stream to disk fails with an
IOExceptionPR #4190 - fix: avoid a direct
java.lang.managementdependency in themaxResultBufferparser PR #4069
Release notes
Open source →
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_pathGUC_REPORT (PG 18+) PR #4259 - feat:
flushCacheOnDdl— re-prepare server statements after CREATE/DROP/ALTER PR #4067 - feat:
connectExecutor(Executor) instead ofconnectThreadFactory(ThreadFactory) PR #4165 - feat: add
classLoaderStrategyfor thread-context classloader fallback PR #4167 - feat: cap
reWriteBatchedInsertsby the protocol limit, not 128 PR #4207 - feat(core): add OID constants for geometric arrays, RECORD, refcursor PR #4220
- feat(largeobject): skip in
BlobInputStreamby seeking instead of reading PR #4204 - feat(largeobject): expose server version for 64-bit LO API selection PR #4204
Changed
- refactor(metadata): derive
getPrimaryKeysfrompg_constraint.conkeyPR #4202 - refactor(core): drop unused encoding Writer plumbing from PGStream PR #4215
- refactor: favour composition over inheritance for
Driver.ConnectTaskPR #4160 - refactor(test-gss): convert GSS tests to Java/JUnit 5 submodule PR #4166
- chore: remove
test-anorm-sbtmodule and its CI wiring PR #4261 - build: produce a multi-release jar from
reduced-pom.xmlon Java 11+ PR #4157 - build: verify benchmarks under
checkand CI, skip Jandex for them PR #4235 - build: promote
MethodCanBeStaticto error level PR #4172 - i18n: convert ISO-8859-x
.pofiles to UTF-8 PR #4115 - i18n: fill untranslated Italian, Simplified Chinese messages PR #4225 PR #4208
- i18n: revise Russian translations in
ru.poPR #1280 - docs: note PKCS-12 client certificate chain requirement PR #4200
- docs: clarify
search_pathcorrectness 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_pathvisibility PR #4214 - fix: render bytea text parameters in
PreparedStatement#toStringPR #4201 - fix:
PGXAConnectionno 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_LENGTHfor non-character columns PR #4231 - fix(jdbc): honor scale in
ResultSet.getBigDecimal(int, int)PR #4211 - fix: support
java.timevalues in updatableResultSetupdateRow()/insertRow()PR #3848 - fix:
PgResultSet#getCharacterStreamwrapsStringinStringReaderPR #4063 - fix(protocol): defer flushes until response processing PR #4196
- fix: improve batching when RETURNING contains varchar, numeric types PR #4014
- fix: correct
estimatedReceiveBufferBytesaccounting 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_pathchanges case-insensitively PR #4216 - fix(largeobject): reset
BlobInputStreamrelative to the LargeObject position PR #4204 - fix(largeobject): flush a buffered output stream before marking the object closed, and do not let
lo_closemask a flush failure Issue #4247 PR #4248 - fix: auto-detect SSL key format instead of relying on
.keyextension PR #3946 - fix(ssl): build PKIX trust anchors without a KeyStore so FIPS JVMs work PR #4193
- fix: make sure GSS connection uses
gssResponseTimeoutrather thansslResponseTimeoutPR #4076 - fix: skip autosave savepoint for
SET LOCAL/SESSION TRANSACTIONPR #4203 - fix: do not throw
AssertionErrorfromBatchResultHandleron a closed connection PR #4187 - fix: reject SQL_TSI_FRAC_SECOND with an explicit, explained error PR #4229
- fix: reject null URL in
Driver.acceptsURLwith a clearNullPointerExceptionPR #4205 - fix: reject overlong inputs in
NumberParser.getFastLonginstead of wrapping PR #4163 - fix: reject out of range and NaN values in
PGInterval.setSecondsPR #4194 - fix: close socket when
PgConnectionsetup fails after connect PR #4161 - fix: avoid nulling
contextClassLoaderon sharedcommonPoolworkers PR #4156 - fix: keep
LazyCleanerImplcleanup task alive across transient empty queue PR #4038 - fix: append default non-proxy hosts when
socksNonProxyHostsis set PR #4045 - fix: simplify implementation of
Statement#cancelPR #1827 - fix: clear
ResourceBundlecache 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.managementdependency inmaxResultBufferparser PR #4069 - fix:
reWriteBatchedInsertsno longer throwsIllegalArgumentExceptionfor a parameterlessINSERTof 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, anddatetext with a clear error instead ofArrayIndexOutOfBoundsExceptionPR #4278
Commits by author
Vladimir Sitnikov (104 commits)
- feat: invalidate prepared statement cache via search_path GUC_REPORT (PG 18+)
- feat: flushCacheOnDdl — re-prepare server statements after CREATE/DROP/ALTER
- feat: add classLoaderStrategy for thread-context classloader fallback
- feat: cap reWriteBatchedInserts by the protocol limit, not 128
- feat(core): add OID constants for geometric arrays, RECORD, refcursor
- feat(largeobject): expose server version for 64-bit LO API selection
- fix: detect native CALL preceded by a comment in CallableStatement
- fix(jdbc): return null CHAR_OCTET_LENGTH for non-character columns
- fix(jdbc): honor scale in ResultSet.getBigDecimal(int, int)
- fix: support java.time values in updatable ResultSet updateRow()/insertRow()
- fix: PgResultSet#getCharacterStream wraps String in StringReader
- fix(protocol): defer flushes until response processing
- fix: improve batching when RETURNING contains varchar, numeric types
- fix: correct estimatedReceiveBufferBytes accounting after forced Sync
- fix: avoid creating transient ResultSet for describe statement purposes
- fix: restore pre-describe for generated-key batches
- fix: add explicit failure message when multi-statement executes in batch
- fix(core): detect search_path changes case-insensitively
- fix: auto-detect SSL key format instead of relying on .key extension
- fix(ssl): build PKIX trust anchors without a KeyStore so FIPS JVMs work
- fix: make sure GSS connection uses gssResponseTimeout rather than sslResponseTimeout
- fix: skip autosave savepoint for SET LOCAL/SESSION TRANSACTION
- fix: do not throw AssertionError from BatchResultHandler on a closed connection
- fix: reject SQL_TSI_FRAC_SECOND with an explicit, explained error
- fix: reject null URL in Driver.acceptsURL with a clear NullPointerException
- fix: avoid nulling contextClassLoader on shared commonPool workers
- fix: keep LazyCleanerImpl cleanup task alive across transient empty queue
- fix: simplify implementation of Statement#cancel
- fix: clear ResourceBundle cache on deregister so the driver can unload
- fix: close socket when PgConnection setup fails after connect
- fix(jdbc): classify updatable result set by search_path visibility
- fix: render bytea text parameters in PreparedStatement#toString
- fix: PGXAConnection no longer saves and restores the caller's autoCommit
- refactor(metadata): derive getPrimaryKeys from pg_constraint.conkey
- refactor(core): drop unused encoding Writer plumbing from PGStream
- refactor: favour composition over inheritance for Driver.ConnectTask
Sehrope Sarkuni (11 commits)
- feat: Use connectExecutor (Executor) instead of connectThreadFactory (ThreadFactory)
- fix: reject overlong inputs in NumberParser.getFastLong instead of wrapping
- fix: reject out of range and NaN values in PGInterval.setSeconds
- fix: Delete temp file when spooling a stream to disk fails with IOException
- refactor: Use FutureTask for loginTimeout task in Driver.connect(...)
- test: Add loginTimeout interruptible test
- test: Add tests for connectThreadFactory
- test: add overflow boundary tests for NumberParser.getFastLong
- test: add range and NaN tests for PGInterval.setSeconds
Dave Cramer (5 commits)
- fix: flush LargeObject output stream before marking closed
- fix: append default non-proxy hosts when socksNonProxyHosts is set
- fix: correct ja.po header to indicate Japanese (#2004)
- update maintainers (#4222)
- maintain consistency with the use of the word maintainer vs committer (#4234)
James Howe (2 commits)
- feat(largeobject): skip in BlobInputStream by seeking instead of reading
- fix(largeobject): reset BlobInputStream relative to the LargeObject position
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.
-
42.7.1229 Jun 2026Release notes
Open source →Silent channel-binding authentication downgrade (CVE-2026-54291)
channelBinding=requireconnections 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.
Release notes
Open source →Security
- fix: Enforce SCRAM channel-binding policy and prevent silent downgrade.
Under
channelBinding=require, the driver silently downgraded fromSCRAM-SHA-256-PLUS(with channel binding) to plainSCRAM-SHA-256(without it) when the server presented a certificate whose signature algorithm has notls-server-end-pointchannel-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) whenrequireis set. Only connections that setchannelBinding=requireare affected. The defaultpreferpolicy 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.
Release notes
Open source →
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 fromSCRAM-SHA-256-PLUS(with channel binding) to plainSCRAM-SHA-256(without it) when the server presented a certificate whose signature algorithm has notls-server-end-pointchannel-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) whenrequireis set. Only connections that setchannelBinding=requireare affected. The defaultpreferpolicy 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.
- fix: Enforce SCRAM channel-binding policy and prevent silent downgrade.
Under
-
42.7.1128 Apr 2026Release notes
Open source →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- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.30.0 @renovate-bot (#4031)
- chore(deps): update actions/checkout action to v6 @renovate-bot (#4032)
- chore(deps): update actions/configure-pages action to v6 @renovate-bot (#4033)
- chore(deps): update actions/create-github-app-token action to v3 @renovate-bot (#4034)
- chore(deps): update github/codeql-action action to v3.35.1 @renovate-bot (#4025)
- fix(deps): update dependency org.roaringbitmap:roaringbitmap to v1.6.14 @renovate-bot (#4024)
- chore(deps): update plugin com.gradle.develocity to v4.4.0 @renovate-bot (#4026)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.18.8 - autoclosed @renovate-bot (#4028)
- fix(deps): update checkerframework to v3.55.1 @renovate-bot (#4029)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.18.8-jdk5 @renovate-bot (#4023)
- chore(deps): update plugin biz.aqute.bnd.builder to v7.2.3 @renovate-bot (#4020)
- chore(deps): update dependency sbt/sbt to v1.12.9 @renovate-bot (#4019)
- chore(deps): update codecov/codecov-action action to v5.5.4 @renovate-bot (#4018)
- fix(deps): update dependency com.gradleup.shadow:com.gradleup.shadow.gradle.plugin to v9.4.1 @renovate-bot (#4021)
- fix(deps): update dependency net.bytebuddy:byte-buddy-agent to v1.18.8 @renovate-bot (#4022)
- chore: bump errorprone to 2.48.0 @vlsi (#4005)
- fix(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v4.4.0 @renovate-bot (#4000)
- chore(deps): update ubuntu:24.04 docker digest to 186072b @renovate-bot (#3982)
- chore(deps): update plugin org.gradlex.build-parameters to v1.4.5 @renovate-bot (#3985)
- fix(deps): update checkerframework to v3.54.0 @renovate-bot (#3997)
- fix(deps): update com.gradleup.nmcp to v1.4.4 @renovate-bot (#3998)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.3.20 @renovate-bot (#3994)
- chore(deps): update release-drafter/release-drafter action to v6.4.0 @renovate-bot (#3995)
- chore(deps): update plugin biz.aqute.bnd.builder to v7.2.1 @renovate-bot (#3991)
- chore(deps): update plugin com.gradle.develocity to v4.3.2 @renovate-bot (#3992)
- chore(deps): update dependency sbt/sbt to v1.12.6 @renovate-bot (#3989)
- chore(deps): update github/codeql-action action to v3.34.1 @renovate-bot (#3990)
- fix(deps): update dependency org.ops4j.pax.url:pax-url-aether to v3.0.2 @renovate-bot (#3987)
- fix(deps): update logback to v1.5.32 @renovate-bot (#3988)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.18.7 @renovate-bot (#3986)
- chore(deps): update codecov/codecov-action action to v5.5.3 @renovate-bot (#3984)
- fix(deps): update dependency org.junit:junit-bom to v5.14.3 @renovate-bot (#3969)
- chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.9.5 @renovate-bot (#3918)
- fix(deps): update dependency net.bytebuddy:byte-buddy-agent to v1.18.7 @renovate-bot (#3950)
- chore(deps): update release-drafter/release-drafter digest to 267d2e0 @renovate-bot (#3920)
- fix(deps): update dependency net.bytebuddy:byte-buddy-agent to v1.18.4 @renovate-bot (#3919)
Release notes
Open source →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
Release notes
Open source →
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
scramMaxIterationsconnection 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_authconnection property, aligning with libpq behaviour PR #3895
Changed
- chore: bump Gradle to 9.4.1,
org.checkerframeworkto 1.0.2,com.gradleup.shadowto 9.4.0 PR #3978 - chore: bump errorprone to 2.48.0 PR #4005
- chore: replace Appveyor with
ikalnytskyi/action-setup-postgresPR #3966 - chore: use tag names for pinning GitHub Actions, pin
ikalnytskyi/action-setup-postgresPR #4007 - chore: use full version tags in GitHub Actions comments PR #3963
- chore: use
@vlsi/github-actions-random-matrixnpm package PR #4008 - chore: use greedy pairwise coverage for CI matrix generation PR #3965
- chore: replace log warning in
ConnectionFactory.closeStreamwithThrowable.addSuppressedPR #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
@exceptionwith@throwsingetBooleanjavadoc 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#getTransactionStatePR #4006 - test: replace
@DisabledIfServerVersionannotations with@EnabledForServerVersionRangePR #3939 - test: increase timeouts for
LogicalReplicationTest - test: move test table creation from
@BeforeEachto@BeforeAllPR #3967 - test: add
@DisableLoggerannotation 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
IOExceptionwhensslMode=ALLOWPR #3973 - fix: make sure the driver honours
connectTimeoutwhen retrying the connection PR #3968 - fix: allow fallback to non-SSL connection when
sslMode=preferandsslResponseTimeoutkicks in PR #3968 - fix: catch
SecurityExceptionfromsetContextClassLoaderonForkJoinPoolworkers PR #3962 - fix: use
compareToforLogSequenceNumbercomparison to handle unsigned values correctly PR #3961 - fix: release COPY lock on
IOExceptionto prevent connection hang PR #3957 - fix: return
jsonbasPGObjectinstead ofStringPR #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
CopyBothResponseTestby using WAL flush LSN PR #3979 - fix: flaky replication restart tests by waiting for
confirmed_flush_lsnPR #3975 - fix: flaky
LogicalReplicationStatusTestby pollingpg_stat_replicationPR #3974 - fix: update docker scripts so
max_locks_per_transactionis the same in the replica as the primary; correctis_pg_version_less_thanPR #3958 - fix: add users to
pg_hba.conffor head sorequire_authtests 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-parentto v1.18.8 - deps: Update dependency
net.bytebuddy:byte-buddy-agentto v1.18.8 - deps: Update dependency
org.junit:junit-bomto v5.14.3 - deps: Update dependency
org.mockito:mockito-bomto v5.23.0 - deps: Update dependency
org.ow2.asm:asm-bomto v9.9.1 - deps: Update dependency
org.apache.bcel:bcelto v6.12.0 - deps: Update dependency
org.roaringbitmap:roaringbitmapto v1.6.14 - deps: Update dependency
org.ops4j.pax.url:pax-url-aetherto v3.0.2 - deps: Update dependency
org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.pluginto v7.30.0 - deps: Update
com.gradleup.shadowGradle plugin to v9.4.1 - deps: Update
com.gradleup.nmcpto v1.4.4 - deps: Update plugin
com.gradle.develocityto v4.4.0 - deps: Update plugin
biz.aqute.bnd.builderto v7.2.3 - deps: Update plugin
org.gradlex.build-parametersto v1.4.5 - deps: Update plugin
org.jetbrains.kotlin.jvmto v2.3.20 - deps: Update plugin
com.github.lburgazzoli.karafto v0.5.7 - deps: Update plugin
com.github.burrunan.s3-build-cacheto v1.9.5 - deps: Update
release-drafter/release-drafteraction to v6.4.0 - deps: Update
github/codeql-actionaction to v3.35.1 - deps: Update
codecov/codecov-actionaction to v5.5.4 - deps: Update
actions/checkoutaction to v6 - deps: Update
actions/configure-pagesaction to v6 - deps: Update
actions/create-github-app-tokenaction to v3 - deps: Update
sbt/sbtto v1.12.9 - deps: Update
ubuntu:24.04docker digest
Commits by author
Vladimir Sitnikov (27 commits)
- fix: ensure extended protocol messages end with Sync message
- fix: enable cursor-based fetching in extended protocol when transaction started via SQL command
- fix: retry with SSL on IOException when sslMode=ALLOW
- fix: make sure the driver honours connectTimeout when retrying the connection
- fix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in
- fix: catch SecurityException from setContextClassLoader on ForkJoinPool workers
- fix: use compareTo for LogSequenceNumber comparison
- fix: release COPY lock on IOException to prevent connection hang
- fix: flaky CopyBothResponseTest by using WAL flush LSN
- fix: flaky replication restart tests by waiting for confirmed_flush_lsn
- test: fix flaky LogicalReplicationStatusTest by polling pg_stat_replication
- test: increase timeouts for LogicalReplicationTest
- test: move test table creation from @BeforeEach to @BeforeAll
- test: add @DisableLogger annotation to suppress expected log warnings in tests
- test: add tests for QueryExecutor#getTransactionState
- chore: bump Gradle to 9.4.1, org.checkerframework to 1.0.2, com.gradleup.shadow to 9.4.0
- chore: bump errorprone to 2.48.0
- chore: replace Appveyor with ikalnytskyi/action-setup-postgres
- chore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres
- chore: use full version tags in GitHub Actions comments
- chore: use @vlsi/github-actions-random-matrix npm package
- chore: use greedy pairwise coverage for CI matrix generation
- chore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed
- chore: suppress deprecations in test code to reduce build verbosity
- ci: pass ${{ }} expressions via env to avoid shell injection
- style: replace @exception with @throws in getBoolean javadoc
Sehrope Sarkuni (9 commits)
- fix: Limit SCRAM PBKDF2 iterations accepted from the server
- test: Add SCRAM max iteration tests
- test: Disable scram test on older version without scram_iterations GUC
- docs: Add scram max iters fix to changelog
- Fix scram fix location in changelog and update published artifact developer list
- fix: Add sources and javadocs to shaded published lib generation
- test: Add EnabledForServerVersionRange and Disabled annotation to specify mandatory server version ranges
- test: Replace @DisabledIfServerVersion annotations with @EnabledForServerVersionRange
- test: Remove unused @DisabledIfServerVersion annotation
Dave Cramer (6 commits)
- implement require_auth, this is pretty much how libpq does this
- remove old comment about finalize, guard closed flag with a reentrant lock to protect against concurrent close
- Return jsonb as PGObject fixes Issue #3926
- Update docker scripts so the max_locks_per_transaction is the same in the replica as the primary
- add users to pg_hba.conf file for head for the require_auth tests to pass
- update Changelog and website for release of 42.7.11
Harinath Kanchu (1 commit)
Emmanuel Oppong (1 commit)
pbe-axelor (1 commit)
- fix: Limit SCRAM PBKDF2 iterations accepted from the server.
-
42.7.1011 Feb 2026Release notes
Open source →Changes
- Update site for 42.7.10 release @davecramer (#3936)
- Create DisabledIfServerGreater annotation @davecramer (#3937)
- fix non-standard strings failing test for version 19 @davecramer (#3934)
- Revert "fix: make all Calendar instances proleptic Gregorian (#3837)" @davecramer (#3932)
- fix small issues in ConnectionFactoryImpl @davecramer (#3929)
- Migrate to Shadow 9 @Goooler (#3931)
- style: fix empty line before javadoc for checkstyle compliance @Praveen7294 (#3925)
- style: fix lambda argument indentation for checkstyle compliance @aclfe (#3922)
- test: add autosave=always|never|conservative and cleanupSavepoints=true|false to the randomized CI jobs @vlsi (#3917)
- doc: use.md, fix typos @mjschwaiger (#3911)
- doc: datasource.md, fix minor formatting issue @mjschwaiger (#3912)
- lastEditYear to 2026 and bump version @davecramer (#3909)
🐛 Bug Fixes
⬆️ Dependencies
- chore(deps): update github/codeql-action digest to 4bdb89f @renovate-bot (#3914)
- chore(deps): update ubuntu:24.04 docker digest to cd1dba6 @renovate-bot (#3915)
- chore(deps): update dependency com.typesafe.play:sbt-plugin to v2.9.10 @renovate-bot (#3916)
Release notes
Open source →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
Release notes
Open source →
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)
- Revert "fix: make all Calendar instances proleptic Gregorian (#3837) (#3887)"
- fix non-standard strings failing test for version 19
- fix small issues in ConnectionFactoryImpl
- lastEditYear to 2026 and bump version
- chore: bump version to 42.7.10
Vladimir Sitnikov (3 commits)
- test: add autosave=always|never|conservative and cleanupSavepoints=true|false to the randomized CI jobs
- fix: process pending responses before fastpath to avoid protocol errors
- doc: add the new PGP signing key to the official documentation
mjschwaiger (2 commits)
Praveen Kumar (1 commit)
Kairav Mittal (1 commit)
Goooler (1 commit)
-
42.7.915 Jan 2026Release notes
Open source →Changes
- Added changelogs for version 42.7.9 @davecramer (#3908)
- the classloader is nullable, and remove a space @davecramer (#3907)
- fix: incorrect pg_stat_replication.reply_time calculation @atorik (#3906)
- fix: issue #3892, PGXAConnection.prepare(Xid) should return XA_RDONLY if the connection is read only @davecramer (#3897)
- fix badges for maven central and search paths. Sonatype has changed the search paths @davecramer (#3901)
- fix: make all Calendar instances proleptic Gregorian (#3837) @m-van-tilburg (#3887)
- test: add CI tests with Java 26 @vlsi (#3893)
- perf: optimize PGInterval.getValue() by replacing String.format with StringBuilder @vlsi (#3866)
- use ssl_is_used() to check for ssl connection @davecramer (#3867)
- Add PEMKeyManager to handle PEM based certs and keys. @harinath001 (#3700)
- Comment and simplify the complex state machine logic in QueryExecutorImpl @davecramer (#3850)
- Revert "fix: Issue #3784 pgjdbc can't decode numeric arrays containing special numbers like NaN" @davecramer (#3851)
- fix: Issue #3784 pgjdbc can't decode numeric arrays containing special numbers like NaN @ShenFeng312 (#3838)
- Small simplication of locking patterns in QueryExecutorBase @Sanne (#3849)
- doc: update property quoteReturningIdentifiers default value @sodekim (#3847)
- feat: default query timeout property @cfredri4 (#3705)
- create action to deploy docs to https://pgjdbc.github.io/ @davecramer (#3819)
- fix homepage release note @davecramer (#3817)
🐛 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
🧰 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- chore(deps): update actions/create-github-app-token digest to 29824e6 @renovate-bot (#3898)
- chore(deps): update actions/setup-java digest to c1e3236 @renovate-bot (#3899)
- chore(deps): update codecov/codecov-action digest to 671740a @renovate-bot (#3900)
- fix(deps): update dependency org.junit:junit-bom to v5.14.1 - autoclosed @renovate-bot (#3884)
- fix(deps): update dependency org.apache.bcel:bcel to v6.11.0 @renovate-bot (#3883)
- fix(deps): update dependency org.mockito:mockito-bom to v5.20.0 @renovate-bot (#3885)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.18.2 @renovate-bot (#3882)
- chore(deps): update github/codeql-action digest to 497990d @renovate-bot (#3881)
- fix(deps): update dependency net.bytebuddy:byte-buddy-agent to v1.18.2 @renovate-bot (#3880)
- fix(deps): update dependency de.thetaphi.forbiddenapis:de.thetaphi.forbiddenapis.gradle.plugin to v3.10 @renovate-bot (#3879)
- fix(deps): update logback to v1.5.21 @renovate-bot (#3877)
- fix(deps): update com.gradleup.nmcp to v1.3.0 @renovate-bot (#3878)
- chore(deps): update actions/checkout action to v4.3.1 @renovate-bot (#3876)
- chore(deps): update ubuntu:24.04 docker digest to c35e29c @renovate-bot (#3875)
- chore(deps): update github/codeql-action digest to d3ced5c @renovate-bot (#3874)
- chore(deps): update codecov/codecov-action digest to 96b38e9 @renovate-bot (#3873)
- chore(deps): update actions/create-github-app-token digest to 7e473ef @renovate-bot (#3872)
- chore(deps): update actions/checkout digest to 34e1148 @renovate-bot (#3871)
- fix(deps): update com.gradleup.nmcp to v1.2.1 @renovate-bot (#3862)
- fix(deps): update dependency com.igormaznitsa:jcp to v7.3.0 @renovate-bot (#3864)
- fix(deps): update checkerframework @renovate-bot (#3861)
- fix(deps): update dependency net.bytebuddy:byte-buddy-agent to v1.17.8 @renovate-bot (#3857)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.17.8 @renovate-bot (#3858)
- chore(deps): update oracle-actions/setup-java action to v1.5.0 @renovate-bot (#3860)
- fix(deps): update logback to v1.5.20 @renovate-bot (#3859)
- fix(deps): update dependency jacoco to v0.8.14 @renovate-bot (#3856)
- fix(deps): update dependency it.unimi.dsi:fastutil to v8.5.18 @renovate-bot (#3855)
- chore(deps): update plugin com.gradle.develocity to v4.2.2 @renovate-bot (#3853)
- chore(deps): update ossf/scorecard-action action to v2.4.3 @renovate-bot (#3852)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.2.21 @renovate-bot (#3854)
- chore(deps): update github/codeql-action digest to 5d5cd55 @renovate-bot (#3841)
- chore(deps): update dependency sbt/sbt to v1.11.7 @renovate-bot (#3843)
- chore(deps): update ubuntu:24.04 docker digest to 66460d5 @renovate-bot (#3842)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.2.20 @renovate-bot (#3832)
- fix(deps): update dependency net.bytebuddy:byte-buddy-agent to v1.17.7 @renovate-bot (#3833)
- chore(deps): pin dependencies @renovate-bot (#3830)
- fix(deps): update checkerframework @renovate-bot (#3831)
- chore(deps): update dependency com.typesafe.play:sbt-plugin to v2.9.9 @renovate-bot (#3828)
- chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.9.4 - autoclosed @renovate-bot (#3825)
- chore(deps): update plugin com.gradle.develocity to v4.2 @renovate-bot (#3826)
- chore(deps): update gradle/actions digest to 748248d @renovate-bot (#3827)
- chore(deps): update actions/create-github-app-token digest to 6701853 @renovate-bot (#3821)
- chore(deps): update github/codeql-action digest to 3599b3b @renovate-bot (#3822)
- chore(deps): update ubuntu:24.04 docker digest to 353675e @renovate-bot (#3823)
- chore(deps): update dependency sbt/sbt to v1.11.6 @renovate-bot (#3824)
Release notes
Open source →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
Release notes
Open source →
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)
- close temporary lob descriptors that are used internally in PreparedStatement#setBlob
- avoid memory leaks caused by Thread.inheritedAccessControlContext
- rename LazyCleaner.java to LazyCleanerImpl.java to help Git track history
- move DriverSupportsClassUnloadingTest to pgjdbc-junit4 module so it tests with Java 8
- add CI tests with Java 26
- remove unused com.github.spotbugs Gradle plugin dependency
- optimize PGInterval.getValue() by replacing String.format with StringBuilder
- drop SpotBugs as we do not seem to use it
- bump version to 42.7.9 after 42.7.8 release
Dave Cramer (7 commits)
- the classloader is nullable, and remove a space
- fix: issue #3892, PGXAConnection.prepare(Xid) should return XA_RDONLY if the connection is read only
- fix badges for maven central and search paths. Sonatype has changed the search paths
- use ssl_is_used() to check for ssl connection
- Comment and simplify the complex state machine logic in QueryExecutorImpl #3850
- Revert "fix: Issue #3784 pgjdbc can't decode numeric arrays containing specia…"
- create action to deploy docs to https://pgjdbc.github.io/
- fix homepage release note
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)
-
42.7.818 Sep 2025Release notes
Open source →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
BufferedInputStreamwithFileInputStream@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- fix(deps): update com.gradleup.nmcp to 1.1.0 @vlsi (#3807)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.17.7 @renovate-bot (#3790)
- fix(deps): update dependency spotbugs to v4.9.4 @renovate-bot (#3791)
- chore(deps): update actions/checkout action to v4.3.0 @renovate-bot (#3792)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.3.0 @renovate-bot (#3793)
- chore(deps): update actions/github-script digest to f28e40c @renovate-bot (#3788)
- chore(deps): update codecov/codecov-action digest to 5a10915 @renovate-bot (#3789)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.2.10 @renovate-bot (#3773)
- chore(deps): update github/codeql-action digest to 96f518a @renovate-bot (#3772)
- chore(deps): update dependency sbt/sbt to v1.11.4 @renovate-bot (#3770)
- chore(deps): update plugin com.gradleup.shadow to v8.3.9 @renovate-bot (#3771)
- chore(deps): update ubuntu:24.04 docker digest to 7c06e91 @renovate-bot (#3769)
- chore(deps): update gradle/actions digest to 017a9ef @renovate-bot (#3768)
- chore(deps): update actions/checkout digest to 08eba0b @renovate-bot (#3764)
- chore(deps): update actions/create-github-app-token digest to a8d6161 @renovate-bot (#3765)
- chore(deps): update codecov/codecov-action digest to 39a2af1 @renovate-bot (#3766)
- chore(deps): update github/codeql-action digest to df55935 @renovate-bot (#3767)
- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.12.1 @renovate-bot (#3745)
- fix(deps): update dependency com.igormaznitsa:jcp to v7.2.1 @renovate-bot (#3741)
- fix(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v4.3.0 @renovate-bot (#3742)
- chore(deps): update plugin com.gradle.develocity to v4.1 @renovate-bot (#3739)
- fix(deps): update dependency org.junit:junit-bom to v5.13.4 @renovate-bot (#3738)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.2.2 @renovate-bot (#3737)
- chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.9.3 @renovate-bot (#3735)
- chore(deps): update github/codeql-action digest to 4e828ff @renovate-bot (#3732)
- chore(deps): update ubuntu:24.04 docker digest to a08e551 @renovate-bot (#3733)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.2.0 @renovate-bot (#3720)
- fix(deps): update dependency checkstyle to v10.26.1 @renovate-bot (#3721)
- fix(deps): update dependency org.checkerframework:org.checkerframework.gradle.plugin to v0.6.56 @renovate-bot (#3718)
- fix(deps): update dependency org.junit:junit-bom to v5.13.3 @renovate-bot (#3719)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.2.1 @renovate-bot (#3716)
- fix(deps): update dependency it.unimi.dsi:fastutil to v8.5.16 @renovate-bot (#3717)
- chore(deps): update ossf/scorecard-action action to v2.4.2 @renovate-bot (#3713)
- fix(deps): update checkerframework to v3.49.5 @renovate-bot (#3715)
- chore(deps): update plugin com.gradleup.shadow to v8.3.8 @renovate-bot (#3714)
- chore(deps): update dependency sbt/sbt to v1.11.3 @renovate-bot (#3712)
- chore(deps): update dependency com.typesafe.play:sbt-plugin to v2.9.8 - autoclosed @renovate-bot (#3710)
- chore(deps): update dependency gradle to v8.14.3 @renovate-bot (#3711)
- chore(deps): update codecov/codecov-action digest to 2db07e3 @renovate-bot (#3706)
- chore(deps): update actions/upload-artifact action to v4.6.2 @renovate-bot (#3709)
- chore(deps): update ubuntu:24.04 docker digest to 440dcf6 @renovate-bot (#3708)
- chore(deps): update github/codeql-action digest to 181d5ee @renovate-bot (#3707)
- chore: replace com.github.johnrengelman.shadow 8.1.1 with com.gradleup.shadow 8.3.7 @vlsi (#3699)
- chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.9.2 @renovate-bot (#3690)
- fix(deps): update com.github.vlsi to v2 (major) @renovate-bot (#3691)
- chore(deps): pin dependencies @renovate-bot (#3689)
- chore(config): migrate renovate config @renovate-bot (#3688)
- fix(deps): update dependency org.ops4j.pax.url:pax-url-aether to v3 @renovate-bot (#3676)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.17.6 @renovate-bot (#3680)
- chore(deps): update codecov/codecov-action digest to 78f372e @renovate-bot (#3668)
- chore(deps): update dependency gradle to v8.14.2 @renovate-bot (#3670)
- fix(deps): update pax-exam to v4.14.0 @renovate-bot (#3675)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.2.0 @renovate-bot (#3673)
- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.8.0 @renovate-bot (#3674)
- fix(deps): update checkerframework @renovate-bot (#3672)
- chore(deps): update dependency sbt/sbt to v1.11.2 @renovate-bot (#3671)
- chore(deps): update gradle/actions digest to ac638b0 @renovate-bot (#3669)
- fix(deps): update dependency org.junit:junit-bom to v5.13.1 @renovate-bot (#3645)
- chore: update JUnit to 5.13, use @ParameterizedClass @vlsi (#3652)
Release notes
Open source →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
BufferedInputStreamwithFileInputStreamPR #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
Release notes
Open source →
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
BufferedInputStreamwithFileInputStreamPR #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)
- Update CONTRIBUTING.md
- correct recent versions
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)
-
42.7.711 Jun 2025Release notes
Open source →Changes
Security
- security: Client Allows Fallback to Insecure Authentication Despite channelBinding=require configuration.
Fixchannel binding requiredhandling 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
🧰 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)
Release notes
Open source →Security
- security: Client Allows Fallback to Insecure Authentication Despite channelBinding=require configuration.
Fix
channel binding requiredhandling 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
Release notes
Open source →
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 requiredhandling 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
- security: Client Allows Fallback to Insecure Authentication Despite channelBinding=require configuration.
-
42.7.628 May 2025Release notes
Open source →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
⬆️ Dependencies
55 changes- chore(deps): update burrunan/gradle-cache-action action to v3 @renovate-bot (#3626)
- chore(deps): update plugin com.gradle.develocity to v4 @renovate-bot (#3627)
- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.5.0 @renovate-bot (#3624)
- fix(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v4.2.0 @renovate-bot (#3623)
- fix(deps): update checkerframework to v3.49.3 @renovate-bot (#3618)
- fix(deps): update dependency checkstyle to v10.23.1 @renovate-bot (#3619)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.10 @renovate-bot (#3620)
- chore(deps): update dependency gradle to v8.14 @renovate-bot (#3621)
- chore(deps): update codecov/codecov-action digest to ad3126e @renovate-bot (#3603)
- fix(deps): update dependency net.bytebuddy:byte-buddy-parent to v1.17.5 @renovate-bot (#3596)
- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.4.1 @renovate-bot (#3602)
- fix(deps): update dependency org.junit:junit-bom to v5.12.2 @renovate-bot (#3597)
- fix(deps): update dependency jacoco to v0.8.13 @renovate-bot (#3595)
- chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.9.0 @renovate-bot (#3598)
- fix(deps): update dependency checkstyle to v10.23.0 @renovate-bot (#3599)
- fix(deps): update dependency de.thetaphi.forbiddenapis:de.thetaphi.forbiddenapis.gradle.plugin to v3.9 @renovate-bot (#3600)
- chore(deps): update codecov/codecov-action digest to f95a404 @renovate-bot (#3593)
- fix(deps): update checkerframework @renovate-bot (#3594)
- fix(deps): update dependency org.checkerframework:org.checkerframework.gradle.plugin to v0.6.52 @renovate-bot (#3576)
- chore(deps): update dependency sbt/sbt to v1.10.11 @renovate-bot (#3571)
- chore(deps): update oracle-actions/setup-java action to v1.4.1 @renovate-bot (#3572)
- fix(deps): update dependency spotbugs to v4.9.3 @renovate-bot (#3577)
- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7.3.0 @renovate-bot (#3579)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.20 @renovate-bot (#3574)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.7 @renovate-bot (#3575)
- chore(deps): update codecov/codecov-action digest to 3440e5e @renovate-bot (#3569)
- chore(deps): update dependency com.typesafe.play:sbt-plugin to v2.9.7 @renovate-bot (#3570)
- chore(deps): update dependency sbt/sbt to v1.10.10 @renovate-bot (#3554)
- fix(deps): update dependency checkstyle to v10.21.4 @renovate-bot (#3555)
- fix(deps): update dependency spotbugs to v4.9.2 @renovate-bot (#3556)
- fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin to v7 @renovate-bot (#3553)
- fix(deps): update dependency com.google.errorprone:error_prone_core to v2.36.0 @renovate-bot (#3547)
- fix(deps): update dependency org.hamcrest:hamcrest to v3 @renovate-bot (#3552)
- chore(deps): update dependency ubuntu to v24 @renovate-bot (#3550)
- fix(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v4 @renovate-bot (#3551)
- fix(deps): update checkerframework @renovate-bot (#3546)
- chore(deps): update dependency sbt/sbt to v1.10.9 @renovate-bot (#3548)
- chore(deps): update dependency gradle to v8.13 @renovate-bot (#3544)
- fix(deps): update checkerframework @renovate-bot (#3545)
- chore(deps): update codecov/codecov-action digest to 0565863 @renovate-bot (#3537)
- chore(deps): update plugin com.gradle.develocity to v3.19.2 @renovate-bot (#3538)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.6 @renovate-bot (#3539)
- fix(deps): update dependency org.codehaus.groovy:groovy-all to v3.0.24 @renovate-bot (#3540)
- chore(deps): update plugin me.champeau.jmh to v0.7.3 @renovate-bot (#3518)
- fix(deps): update dependency org.ops4j.pax.url:pax-url-aether to v2.6.16 @renovate-bot (#3487)
- chore(deps): update dependency gradle to v8.12.1 @renovate-bot (#3517)
- chore(deps): update plugin org.jetbrains.kotlin.jvm to v2.1.10 @renovate-bot (#3519)
- fix(deps): update dependency checkstyle to v10.21.3 @renovate-bot (#3520)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.4 @renovate-bot (#3521)
- chore(deps): update codecov/codecov-action digest to 5efa07b @renovate-bot (#3516)
- fix(deps): update checkerframework @renovate-bot (#3485)
- chore(deps): update codecov/codecov-action digest to 0da7aa6 @renovate-bot (#3484)
- fix(deps): update dependency com.github.spotbugs:com.github.spotbugs.gradle.plugin to v6.1.2 @renovate-bot (#3486)
- fix(deps): update dependency checkstyle to v10.21.1 @renovate-bot (#3489)
- chore(deps): update plugin com.gradle.develocity to v3.19.1 @renovate-bot (#3488)
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.
Release notes
Open source →
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
- doc: Fixed javadoc warnings PR #3493
- chore: Added missing @Override annotations commit #4f986ff8
- chore: Fixed empty catch block warnings commit #840fdab9
- chore: Fixed unused variables commit #2d3b00c2
- refactor: Made private methods that do not use instance fields static commit #ddb71441
- fix: Fixed .equals when comparing offsetDateTime with OffsetDateTime.MIN and OffsetDateTime.MAX commit #2bf410af
- refactor: Factored out duplicated .getBytes() when converting date/time to Date/Time/Timestamp commit #882b97f9
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
- docs: Corrected location for 42.2.29 changelogs commit #bb276568
- docs: Fixed naming of release note commit #032d0e22
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)
- #3613 Deprecate group startup parms
- #3609 Add PgMessageType and use static variables for protocol literals
- #3592 Handle protocol 3.2 and wider cancel keys
- #3588 Refactor empty resultset to use empty result set if the catalog is not correct
- #3565 Use query to find the current catalog instead of relying on the database in the connection URL
- #3580 Update latest jdk to version 24
- #3510 Use in row values instead of union all
- #3491 Fix sending extra_float_digits
Vladimir Sitnikov (30 commits)
- Revert #3510 Use in row values instead of union all
- Various code improvements, refactoring, and bug fixes (not associated with specific PRs)
Sehrope Sarkuni (2 commits)
- #3586 Docs: Relabel 42.7.4 as past version as it is no longer the latest
- Documentation updates
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)
-
42.7.514 Jan 2025Release notes
Open source →Added
- ci: Test with Java 23 PR #3381
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
Release notes
Open source →
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
- ci: Test with Java 23 PR #3381
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):
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):
- feat: don't force send extra_float_digits for PostgreSQL >= 12 Fixes Issue #3432 PR #3446
dh-cloud (1):
- Enhance the meta query performance by specifying the oid. PR #3427
-
42.7.422 Aug 2024Release notes
Open source →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
Release notes
Open source →
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
-
42.7.314 Mar 2024Release notes
Open source →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 iftoswitch
- 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#positionwhen running on Java 8
Release notes
Open source →
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 iftoswitch
- 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#positionwhen 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):
- Fix 2 changelog entry titles PR #3142
-
42.7.220 Feb 2024Release notes
Open source →Security
- security: SQL Injection via line comment generation, it is possible in
SimpleQuerymode 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
Release notes
Open source →
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
SimpleQuerymode 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
- security: SQL Injection via line comment generation, it is possible in
-
42.7.106 Dec 2023Release notes
Open source →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)
Release notes
Open source →
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
-
42.7.020 Nov 2023Release notes
Open source →Changed
- fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to
java.desktopmodule. 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
Release notes
Open source →
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
DateStylefromISOtoISO, MDY(it aligns with PostgreSQL defaults), and it will return the wrong results when server uses non-defaultDateStyle(see https://github.com/pgjdbc/pgjdbc/issues/3008)
Changed
- fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to
java.desktopmodule. 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.desktopmodule. 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.vlsidependencies at once - chore: remove com.gradle.plugin-publish dependency
- chore: add styleCheck Gradle task to report style violations PR #2980
maffe (1):
- fix: Fix typos in info.html PR #2860
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
- fix: Deprecate for removal PGPoint.setLocation(java.awt.Point) to cut dependency to
-
42.6.213 Mar 2024Release notes
Open source →
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#positionWhen Running on Java 8 - Fix: In SimpleQuery mode
SimpleParameterListdid not support type casting for all well known types.
- Fix: Due to building the release using Java 17 version 42.6.1, would throw an exception
-
42.6.121 Feb 2024Release notes
Open source →
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
SimpleQuerymode 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.
- security: SQL Injection via line comment generation, it is possible in
-
42.6.017 Mar 2023Release notes
Open source →Changed
-
fix: use PhantomReferences instead of
Obejct.finalize()to track Connection leaks PR #2847The 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
Release notes
Open source →
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
PhantomReferencesinstead ofObject.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
PhantomReferencesinstead ofObject.finalize()to track Connection leaks PR #2847
-
-
42.5.613 Mar 2024Release notes
Open source →
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#positionWhen Running on Java 8 - Fix: In SimpleQuery mode
SimpleParameterListdid not support type casting for all well known types.
- Fix: Due to building the release using Java 17 version 42.5.5, would throw an exception
-
42.5.521 Feb 2024Release notes
Open source →
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
SimpleQuerymode 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.
- security: SQL Injection via line comment generation, it is possible in
-
42.5.416 Feb 2023Release notes
Open source →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.
Release notes
Open source →
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
testGetSQLTypeQueryCacheby 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
OidValueCorrectnessTestBOX_ARRAY OID, by adding BOX_ARRAY to theoidTypeNamemap [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):
-
42.5.303 Feb 2023Release notes
Open source →Fixed
- fix: Add box to TypeInfoCache, fixes Issue #2746 PR #2747
- fix: regression in PgResultSet LONG_MIN copy and paste error fixes Issue #2748 PR#2749
Release notes
Open source →
title: PostgreSQL JDBC Driver 42.5.3 Released date: 2023-02-03 08:24:49 -0500 categories: - new_release version: 42.5.3
Fixed
- fix: Add box to TypeInfoCache, fixes Issue #2746 PR #2747\
- fix: regression in PgResultSet LONG_MIN copy and paste error fixes Issue #2748 PR#2749
<!--more-->
Commits by author
Dave Cramer (2):
-
42.5.231 Jan 2023Release notes
Open source →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
Release notes
Open source →
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):
- fix: improve thread safety of PgResultSet#getTimestamp PR #2726 fixes Issue #2723
-
42.5.123 Nov 2022Release notes
Open source →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
Release notes
Open source →
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):
- Optimize png files PR 2621
-
42.5.024 Aug 2022Release notes
Open source →Changed
- fix: revert change in PR #1986 where float was aliased to float4 from float8. float now aliases to float8 PR #2598 fixes Issue #2597
Release notes
Open source →
title: PostgreSQL JDBC Driver 42.5.0 Released date: 2022-08-24 08:30:09 -0400 version: 42.5.0
Changed
- fix: revert change in PR #1986 where float was aliased to float4 from float8. float now aliases to float8 PR #2598 fixes Issue #2597
<!--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)
-
42.4.513 Mar 2024Release notes
Open source →
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#positionWhen Running on Java 8 - Fix: In SimpleQuery mode
SimpleParameterListdid not support type casting for all well known types.
- Fix: Due to building the release using Java 17 version 42.4.4, would throw an exception
-
42.4.421 Feb 2024Release notes
Open source →
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
SimpleQuerymode 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.
- security: SQL Injection via line comment generation, it is possible in
-
42.4.323 Nov 2022Nothing published for this version
-
42.4.217 Aug 2022Release notes
Open source →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)
Release notes
Open source →
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] -
42.4.103 Aug 2022Release notes
Open source →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)
Release notes
Open source →
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 - fix: CVE-2022-31197 Fixes SQL generated in PgResultSet.refresh() to escape column identifiers so as to prevent SQL injection.
-
42.4.009 Jun 2022Release notes
Open source →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)
Release notes
Open source →
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) -
42.3.1013 Mar 2024Release notes
Open source →
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#positionWhen Running on Java 8 - Fix: In SimpleQuery mode
SimpleParameterListdid not support type casting for all well known types.
- Fix: Due to building the release using Java 17 version 42.3.9, would throw an exception
-
42.3.921 Feb 2024Release notes
Open source →
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
SimpleQuerymode 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.
- security: SQL Injection via line comment generation, it is possible in
-
42.3.823 Nov 2022Nothing published for this version
-
42.3.706 Sep 2022Nothing published for this version
-
42.3.624 May 2022Release notes
Open source →Changed
Added
Fixed
- fix: close refcursors when underlying cursor==null instead of relying on defaultRowFetchSize PR #2377
Release notes
Open source →
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) -
42.3.504 May 2022Release notes
Open source →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
Release notes
Open source →
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 -
42.3.415 Apr 2022Release notes
Open source →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
Release notes
Open source →
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):
- GSS login to use TGT from keytab fixes Issue 2469 PR 2470
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.
-
42.3.315 Feb 2022Release notes
Open source →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
Release notes
Open source →
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.
- 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
-
42.3.201 Feb 2022Release notes
Open source →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
Release notes
Open source →
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.
-
42.3.129 Oct 2021Release notes
Open source →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
GreagoriantoGregorian. - remove check for negative pid in cancel request. Apparently pgbouncer can send one fixes Issue 2317 PR #2319
Release notes
Open source →
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
GreagoriantoGregorian. - 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):
- improv: Arrays in Object[] PR 2230 538c79f5
- improv: Use jre utf-8 decoding PR 2317 a5786037
- perf: improve performance of bytea string decoding PR 2320 f2a24d37
- feat: intern/canonicalize common strings PR 2234 a024cd51
- fix: numeric binary decode for even 10 thousands PR 2327 b3050e60
- fix: remove unused OptimizedUTF8Encoder PR 2329 515ea066
Dave Cramer (5):
- Update debezium.yml 84f1057d
- update release date to Oct 18 PR 2308 5fc1976d
- remove check for negative pid in cancel request. Apparently pgbouncer can send one fixes Issue PR 2318 (#2319) c9be5c0f
- move version to 42.3.0 PR 2322 1b8629b2
- Remove references to JAVA 6 and 7 PR 2312 67113020
Sergey Nuyanzin (1):
吴伟杰 (1):
Contributors to this release
We thank the following people for their contributions to this release.
-
42.3.015 Oct 2021Release notes
Open source →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_IDENTIFIERSwhich 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
Release notes
Open source →
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_IDENTIFIERSwhich 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.
-
42.2.2913 Mar 2024Release notes
Open source →
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#positionWhen Running on Java 8 - Fix: In SimpleQuery mode
SimpleParameterListdid not support type casting for all well known types.
- Fix: Due to building the release using Java 17 version 42.2.28, would throw an exception
-
42.2.28.jre721 Feb 2024Nothing published for this version
-
42.2.2821 Feb 2024Release notes
Open source →
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
SimpleQuerymode 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.
- security: SQL Injection via line comment generation, it is possible in
-
42.2.27.jre723 Nov 2022Nothing published for this version
-
42.2.27.jre623 Nov 2022Nothing published for this version
-
42.2.2723 Nov 2022Nothing published for this version
-
42.2.26.jre703 Aug 2022Nothing published for this version
-
42.2.26.jre603 Aug 2022Nothing published for this version
-
42.2.2603 Aug 2022Nothing published for this version
-
42.2.25.jre701 Feb 2022Nothing published for this version
-
42.2.25.jre601 Feb 2022Nothing published for this version
-
42.2.2501 Feb 2022Release notes
Open source →
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
-
42.2.24.jre723 Sep 2021Nothing published for this version
-
42.2.24.jre623 Sep 2021Nothing published for this version
-
42.2.2423 Sep 2021Release notes
Open source →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
Release notes
Open source →
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):
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):
Contributors to this release
We thank the following people for their contributions to this release.
-
42.2.23.jre706 Jul 2021Nothing published for this version
-
42.2.23.jre606 Jul 2021Nothing published for this version
-
42.2.2306 Jul 2021Release notes
Open source →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.
Release notes
Open source →
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.
-
42.2.22.jre716 Jun 2021Nothing published for this version