Re: postgres_fdw: Fix bug in checking of return value of PQsendQuery().

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Japin Li <japinli@hotmail.com>
Cc: pgsql-hackers@postgresql.org, pgsql-hackers@lists.postgresql.org
Date: 2022-07-22T03:07:28Z
Lists: pgsql-hackers

On 2022/07/21 23:41, Japin Li wrote:
> 
> On Thu, 21 Jul 2022 at 22:22, Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>> Hi,
>>
>> I found that fetch_more_data_begin() in postgres_fdw reports an error when PQsendQuery() returns the value less than 0 as follows though PQsendQuery() can return only 1 or 0. I think this is  a bug. Attached is the patch that fixes this bug. This needs to be back-ported to v14 where async execution was supported in postgres_fdw.
>>
>> 	if (PQsendQuery(fsstate->conn, sql) < 0)
>> 		pgfdw_report_error(ERROR, NULL, fsstate->conn, false, fsstate->query);
>>
>> Regards,
> 
> +1.  However, I think check whether the result equals 0 or 1 might be better.

Maybe. I just used "if (!PQsendQuery())" style because it's used in postgres_fdw elsewhere.

> Anyway, the patch works correctly.

Thanks for the review! Pushed.

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION



Commits

  1. postgres_fdw: Fix bug in checking of return value of PQsendQuery().

  2. Add support for asynchronous execution.