From 33dccad831a7b48f9b27cf4a45809d0af1b7fd6d Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Mon, 16 Sep 1996 05:52:51 +0000 Subject: [PATCH] enable PQ_NOTIFY_PATCH in config.h --- src/include/config.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/include/config.h b/src/include/config.h index d75c21961e..ede1a8184d 100644 --- a/src/include/config.h +++ b/src/include/config.h @@ -77,5 +77,20 @@ query commands and causes a SIGSEGV trying to execute commands without plan. */ #define FUNC_UTIL_PATCH +/* + +Async notifies received while a backend is in the middle of a begin/end +transaction block are lost by libpq when the final end command is issued. + +The bug is in the routine PQexec of libpq. The routine throws away any +message from the backend when a message of type 'C' is received. This +type of message is sent when the result of a portal query command with +no tuples is returned. Unfortunately this is the case of the end command. +As all async notification are sent only when the transaction is finished, +if they are received in the middle of a transaction they are lost in the +libpq library. I added some tracing code to PQexec and this is the output: + +*/ +#define PQ_NOTIFY_PATCH #endif /* CONFIG_H */