Fix oversight in commit 1ec7fca8592178281cd5cdada0f27a340fb813fc.
authorEtsuro Fujita <efujita@postgresql.org>
Mon, 2 Aug 2021 03:45:00 +0000 (12:45 +0900)
committerEtsuro Fujita <efujita@postgresql.org>
Mon, 2 Aug 2021 03:45:00 +0000 (12:45 +0900)
commita8ed9bd59d48c13da50ed2358911721b2baf1de3
tree1f9469ec35097d0d16cb4e23e807cd2768796123
parenteaf5321c352478266cebe2aa50ea4c34a8fdd2c7
Fix oversight in commit 1ec7fca8592178281cd5cdada0f27a340fb813fc.

I failed to account for the possibility that when
ExecAppendAsyncEventWait() notifies multiple async-capable nodes using
postgres_fdw, a preceding node might invoke process_pending_request() to
process a pending asynchronous request made by a succeeding node.  In
that case the succeeding node should produce a tuple to return to the
parent Append node from tuples fetched by process_pending_request() when
notified.  Repair.

Per buildfarm via Michael Paquier.  Back-patch to v14, like the previous
commit.

Thanks to Tom Lane for testing.

Discussion: https://postgr.es/m/YQP0UPT8KmPiHTMs%40paquier.xyz
contrib/postgres_fdw/postgres_fdw.c
src/backend/executor/nodeAppend.c