diff options
author | Fujii Masao <fujii@postgresql.org> | 2022-07-21 22:52:50 +0900 |
---|---|---|
committer | Fujii Masao <fujii@postgresql.org> | 2022-07-22 12:01:38 +0900 |
commit | 169d50ba34a91a1c3e2535b8ef49480bad4b9867 (patch) | |
tree | d54b88f1c3381009b67df8ae3ac55d062f4ae45a /contrib/postgres_fdw/postgres_fdw.c | |
parent | e613466e46c86d6c64bac062b35ef5d0ca539d19 (diff) | |
download | postgresql-169d50ba34a91a1c3e2535b8ef49480bad4b9867.tar.gz postgresql-169d50ba34a91a1c3e2535b8ef49480bad4b9867.zip |
postgres_fdw: Fix bug in checking of return value of PQsendQuery().
When postgres_fdw begins an asynchronous data fetch, it submits FETCH query
by using PQsendQuery(). If PQsendQuery() fails and returns 0, postgres_fdw
should report an error. But, previously, postgres_fdw reported an error
only when the return value is less than 0, though PQsendQuery() never return
the values other than 0 and 1. Therefore postgres_fdw could not handle
the failure to send FETCH query in an asynchronous data fetch.
This commit fixes postgres_fdw so that it reports an error
when PQsendQuery() returns 0.
Back-patch to v14 where asynchronous execution was supported in postgres_fdw.
Author: Fujii Masao
Reviewed-by: Japin Li, Tom Lane
Discussion: https://postgr.es/m/b187a7cf-d4e3-5a32-4d01-8383677797f3@oss.nttdata.com
Diffstat (limited to 'contrib/postgres_fdw/postgres_fdw.c')
-rw-r--r-- | contrib/postgres_fdw/postgres_fdw.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index 485171db926..704b1d22eab 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -7082,7 +7082,7 @@ fetch_more_data_begin(AsyncRequest *areq) snprintf(sql, sizeof(sql), "FETCH %d FROM c%u", fsstate->fetch_size, fsstate->cursor_number); - if (PQsendQuery(fsstate->conn, sql) < 0) + if (!PQsendQuery(fsstate->conn, sql)) pgfdw_report_error(ERROR, NULL, fsstate->conn, false, fsstate->query); /* Remember that the request is in process */ |