Hi Ideriha-san,
>>>> Hi, it makes sense to me. One can submit transaction again same as
>>>> other cases you mentioned.
>>>>
>>>> I didn't attach the patch but according to my simple experiment in
>>>> psql the output would become the following:
>>>>
>>>> FATAL: terminating connection due to idle-in-transaction timeout
>>>> HINT: In a moment you should be able to reconnect to the
>>>> database and repeat your command.
>>>
>>>Alternative HINT message would be something like:
>>>
>>>HINT: In a moment you should be able to reconnect to the
>>> database and restart your transaction.
>>>
>>>This could make the meaning of the error (transaction aborted) cleaner and might give
>>>a better suggestion to the user.
>>
>> Agreed. Changing "command" to "transaction" seems more accurate. People might think
>> only the command they hit is not sent but transaction is still alive though it's of course unnatural
>> that transaction is alive after connection is terminated.
>>
>> In this case you could change the comment issued by other errors mentioned while you're at it.
>>
>> Regards,
>> Takeshi Ideriha
>
> I have added this to the next CF (2019-01).
Please find attached patch which addresses the point above.
BTW, would you like to be added to the CF item as a reviewer?
Best regards,
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 9a948f825d..27337a21da 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -3150,7 +3150,9 @@ ProcessInterrupts(void)
if (IdleInTransactionSessionTimeout > 0)
ereport(FATAL,
(errcode(ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT),
- errmsg("terminating connection due to idle-in-transaction timeout")));
+ errmsg("terminating connection due to idle-in-transaction timeout"),
+ errhint("In a moment you should be able to reconnect to the"
+ " database and restart your transaction.")));
else
IdleInTransactionSessionTimeoutPending = false;