(2018/11/12 20:41), Etsuro Fujita wrote:
> (2018/11/12 18:52), Kyotaro HORIGUCHI wrote:
>> I read the Thomas's messages as "TTIO/TTOU are not
>> needed to our busines and we don't have a reason to restore them
>> before calling external programs other than just plaster
>> seemingly consistency." And I agree to the analysis and I agree
>> to you on the point that it doens't need consideration just now.
>
> OK
Attached is an updated version of Tom's POC patch. Here are changes:
* I modified his patch so that the called program inherits SIG_DFL for
SIGUSR2 as well, as discussed upthread.
* I think it's better to ignore the SIGPIPE failure in
ClosePipeToProgram if we were in a COPY FROM PROGRAM that was allowed to
terminate early and keep the behavior as-is otherwise. If we ignore
that failure unconditionally in that function, eg, COPY TO PROGRAM would
fail to get a (better) error message in CopySendEndOfRow or EndCopy when
the invoked program was terminated on SIGPIPE, as discussed before [1].
And to do so, I added a new argument to BeginCopyFrom to specify
whether COPY FROM PROGRAM can terminate early or not.
Best regards,
Etsuro Fujita
[1] https://www.postgresql.org/message-id/5BE18409.2070004%40lab.ntt.co.jp