On 2021/02/05 16:52, Kasahara Tatsuhito wrote:
> Hi,
>
> The following is written in the comments of PQputCopyEnd().
>
> (snip)
> * Returns 1 if successful, 0 if data could not be sent (only possible
> * in nonblock mode), or -1 if an error occurs.
> (snip)
>
> The PQputCopyEnd() section of the manual (libpq.sgml) describes the following.
>
> The result is 1 if the termination message was sent; or in
> nonblocking mode, this may only indicate that the termination
> message was successfully queued. (In nonblocking mode, to be
> certain that the data has been sent, you should next wait for
> write-ready and call <xref linkend="libpq-PQflush"/>, repeating until it
> returns zero.) Zero indicates that the function could not queue
> the termination message because of full buffers; this will only
> happen in nonblocking mode. (In this case, wait for
> write-ready and try the <xref linkend="libpq-PQputCopyEnd"/> call
> again.) If a hard error occurs, -1 is returned; you can use
> <xref linkend="libpq-PQerrorMessage"/> to retrieve details.
>
>
> These says that 0 may be returned if a non-blocking mode is used, but
> there doesn't seem to be any case where 0 is returned in the code of
> PQputCopyEnd().
I found the past discussion [1] about this issue.
[1]
https://www.postgresql.org/message-id/CA+Tgmobjj+0modbnmjy7ezeBFOBo9d2mAVcSPkzLx4LtZmc==g@mail.gmail.com
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION