Gaetano Mendola wrote:

Bruce Momjian wrote:

I think this is the patch I like.  It does the auto-detect handling as I
hoped.  I will just do the doc updates to mention it.

My only issue is that this is per-connection, while I think you have to
create a global variable that defaults to false, and on first connect,
check, and not after.  Based on the code below, a second connection
would  have the SIGPIPE signal set to SIG_IGN, not SIG_DEF, and you
would be back to setting SIG_IGN around each send, even though it was
already set.

Are others OK with this too?


I believe that the are some errors on the following code:

#if !defined(HAVE_POSIX_SIGNALS)
     {
         pqsigfunc old;
          old = signal(SIGPIPE, SIG_IGN);
         if (old != SIG_DFL)
             conn->do_sigaction = false;
         signal(SIGPIPE, old);
     }
#else
    {
         struct sigaction oact;

if (sigaction(SIGPIPE, NULL, &oact) == 0 && oact.sa_handler != SIG_DFL)
conn->do_sigaction = false;
}
#endif /* !HAVE_POSIX_SIGNALS */


the old signal handler is not reinstated in case of
HAVE_POSIX_SIGNAL

Forget the message :-)


Gaetano








---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match

Reply via email to