Question about non-blocking mode in libpq - Mailing list pgsql-hackers

From Yugo NAGATA
Subject Question about non-blocking mode in libpq
Date
Msg-id 20210713115949.702986955f8ccf23fa81073c@sraoss.co.jp
Whole thread Raw
Responses Re: Question about non-blocking mode in libpq
List pgsql-hackers
Hello,

During reading the documentation of libpq [1] , I found the following
description:

 In the nonblocking state, calls to PQsendQuery, PQputline, PQputnbytes,
 PQputCopyData, and PQendcopy will not block but instead return an error
 if they need to be called again.

[1] https://www.postgresql.org/docs/devel/libpq-async.html

However, looking into the code, PQsendQuery seems not to return an error
in non-bloking mode even if unable to send all data. In such cases,
pqSendSome will return 1 but it doesn't cause an error. Moreover,
we would not need to call PQsendQuery again. Indead, we need to call
PQflush until it returns 0, as documented with regard to PQflush.

Do we need to fix the description of PQsetnonblocking?

Regards,
Yugo Nagata

-- 
Yugo NAGATA <nagata@sraoss.co.jp>



pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: Synchronous commit behavior during network outage
Next
From: David Rowley
Date:
Subject: Re: [PATCH] Use optimized single-datum tuplesort in ExecSort