Changed error message for blocks by prepared transactions

Started by Andreas 'ads' Scherbaumalmost 17 years ago3 messageshackers
Jump to latest
#1Andreas 'ads' Scherbaum
adsmail@wars-nicht.de

Hello,

the small attached patch changes the error message for a blocked
database in case there are prepared transactions. The original message
"accessed by other users" is misleading.

Example:

----- snip -----
postgres=# begin;
BEGIN
postgres=# prepare transaction 'abc';
PREPARE TRANSACTION
postgres=# \c template1
psql (8.4rc1)
Sie sind jetzt verbunden mit der Datenbank »template1«.
template1=# alter database postgres rename to test;
ERROR: database "postgres" is being blocked by prepared transactions
DETAIL: There are 1 prepared transaction(s) using the database.
----- snip -----

Translation still pending, how to add new messages to the .po files?

Kind regards

--
Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors
Volunteer Regional Contact, Germany - PostgreSQL Project

PGDay.eu 2009 in Paris, Nov. 6/7, http://www.pgday.eu/

Attachments:

different_msg_for_prep_transactions.difftext/x-patch; name=different_msg_for_prep_transactions.diffDownload+72-20
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andreas 'ads' Scherbaum (#1)
Re: Changed error message for blocks by prepared transactions

"Andreas 'ads' Scherbaum" <adsmail@wars-nicht.de> writes:

the small attached patch changes the error message for a blocked
database in case there are prepared transactions.

Isn't this duplicative of the errdetail_busy_db code? And anyway
I do not see a reason not to consider prepared transactions as
"other users".

regards, tom lane

#3Andreas 'ads' Scherbaum
adsmail@wars-nicht.de
In reply to: Tom Lane (#2)
Re: Changed error message for blocks by prepared transactions

On Mon, 22 Jun 2009 19:24:28 -0400 Tom Lane wrote:

"Andreas 'ads' Scherbaum" <adsmail@wars-nicht.de> writes:

the small attached patch changes the error message for a blocked
database in case there are prepared transactions.

Isn't this duplicative of the errdetail_busy_db code? And anyway
I do not see a reason not to consider prepared transactions as
"other users".

Because you know the details.
Most other users check pg_stat_activity just to find out there is no
other user connected. A prepared transaction is not a connected user,
so the error message is still misleading.

You are right with the errdetail_busy_db(), but that's only true for
8.4, not for earlier versions. In addition that's only true if you
haven't supressed the hints like some scripts do (-q as example).

Bye

--
Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors
Volunteer Regional Contact, Germany - PostgreSQL Project

PGDay.eu 2009 in Paris, Nov. 6/7, http://www.pgday.eu/