Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 63a8c68

Browse files
committed
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
1 parent d5623c4 commit 63a8c68

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

contrib/postgres_fdw/postgres_fdw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7078,7 +7078,7 @@ fetch_more_data_begin(AsyncRequest *areq)
70787078
snprintf(sql, sizeof(sql), "FETCH %d FROM c%u",
70797079
fsstate->fetch_size, fsstate->cursor_number);
70807080

7081-
if (PQsendQuery(fsstate->conn, sql) < 0)
7081+
if (!PQsendQuery(fsstate->conn, sql))
70827082
pgfdw_report_error(ERROR, NULL, fsstate->conn, false, fsstate->query);
70837083

70847084
/* Remember that the request is in process */

0 commit comments

Comments
 (0)