The following bug has been logged on the website:
Bug reference: 18294
Logged by: Ondrej Bouda
Email address: obouda@gk-software.com
PostgreSQL version: 16.1
Operating system: Linux
Description:
We come across a bug when it is not possible to roll back to a manual
savepoint.
The rollback fails with error: Error during rollback to savepoint.
org.postgresql.util.PSQLException: ERROR: savepoint "SAVE_TEST_01" does not
exist
Steps to reproduce:
1/ Connect via JDBC with JDBC params
autosave=always&cleanupSavepoints=true.
2/ Create a manual savepoint: savepoint SAVE_TEST_01;
3/ Try to roll back => error: rollback to SAVE_TEST_01;
Reproduced with:
* JDBC driver ver. 42.7.1
* PostgreSQL ver. 16.1 + 15.5 + 14.10
The error occurs when using SQL statements as well as when using the JDBC
API for savepoint/rollback (Connection.setSavepoint +
Connection.rollback).
The documentation for the cleanupSavepoints parameter reads: "Determines if
the SAVEPOINT created in autosave mode is released prior to the
statement."
* https://jdbc.postgresql.org/documentation/use/
* I would understand the doc in the way that it should affect just and only
the savepoint created by the driver due to the autosave=true param
(therefore, manual savepoints should not be affected).