postgresql/contrib
Etsuro Fujita 9e283fc85d postgres_fdw: Fix handling of a pending asynchronous request in postgresReScanForeignScan().
Commit 27e1f1456 failed to process a pending asynchronous request made
for a given ForeignScan node in postgresReScanForeignScan() (if any) in
cases where we would only reset the next_tuple counter in that function,
contradicting the assumption that there should be no pending
asynchronous requests that have been made for async-capable subplans for
the parent Append node after ReScan.  This led to an assert failure in
an assert-enabled build.  I think this would also lead to mis-rewinding
the cursor in that function in the case where we have already fetched
one batch for the ForeignScan node and the asynchronous request has been
made for the second batch, because even in that case we would just reset
the counter when called from that function, so we would fail to execute
MOVE BACKWARD ALL.

To fix, modify that function to process the asynchronous request before
restarting the scan.

While at it, add a comment to a function to match other places.

Per bug #17344 from Alexander Lakhin.  Back-patch to v14 where the
aforesaid commit came in.

Patch by me.  Test case by Alexander Lakhin, adjusted by me.  Reviewed
and tested by Alexander Lakhin and Dmitry Dolgov.

Discussion: https://postgr.es/m/17344-226b78b00de73a7e@postgresql.org
2022-01-27 16:15:00 +09:00
..
adminpack Update copyright for 2022 2022-01-07 19:04:57 -05:00
amcheck On sparc64+ext4, suppress test failures from known WAL read failure. 2022-01-26 18:06:19 -08:00
auth_delay Update copyright for 2022 2022-01-07 19:04:57 -05:00
auto_explain Update copyright for 2022 2022-01-07 19:04:57 -05:00
bloom Update copyright for 2022 2022-01-07 19:04:57 -05:00
bool_plperl
btree_gin Fix failure of btree_gin indexscans with "char" type and </<= operators. 2021-08-10 18:10:29 -04:00
btree_gist Fix results of index-only scans on btree_gist char(N) indexes. 2022-01-08 14:54:39 -05:00
citext Enable routine running of citext's UTF8-specific test cases. 2022-01-05 13:30:07 -05:00
cube
dblink Update copyright for 2022 2022-01-07 19:04:57 -05:00
dict_int Update copyright for 2022 2022-01-07 19:04:57 -05:00
dict_xsyn Update copyright for 2022 2022-01-07 19:04:57 -05:00
earthdistance
file_fdw Update copyright for 2022 2022-01-07 19:04:57 -05:00
fuzzystrmatch Update copyright for 2022 2022-01-07 19:04:57 -05:00
hstore Update copyright for 2022 2022-01-07 19:04:57 -05:00
hstore_plperl
hstore_plpython
intagg
intarray Update copyright for 2022 2022-01-07 19:04:57 -05:00
isn Update copyright for 2022 2022-01-07 19:04:57 -05:00
jsonb_plperl
jsonb_plpython
lo
ltree Clean up more code using "(expr) ? true : false" 2021-10-11 09:36:42 +09:00
ltree_plpython
oid2name Update copyright for 2022 2022-01-07 19:04:57 -05:00
old_snapshot Update copyright for 2022 2022-01-07 19:04:57 -05:00
pageinspect Update copyright for 2022 2022-01-07 19:04:57 -05:00
passwordcheck Improve error handling of cryptohash computations 2022-01-11 09:55:16 +09:00
pg_buffercache
pg_freespacemap
pg_prewarm Update copyright for 2022 2022-01-07 19:04:57 -05:00
pg_stat_statements Update copyright for 2022 2022-01-07 19:04:57 -05:00
pg_surgery Update copyright for 2022 2022-01-07 19:04:57 -05:00
pg_trgm Update copyright for 2022 2022-01-07 19:04:57 -05:00
pg_visibility Update copyright for 2022 2022-01-07 19:04:57 -05:00
pgcrypto pgcrypto: Remove explicit hex encoding/decoding from tests 2021-12-08 06:06:22 +01:00
pgrowlocks pgrowlocks: Fix incorrect format placeholders 2021-12-08 09:32:16 +01:00
pgstattuple Update copyright for 2022 2022-01-07 19:04:57 -05:00
postgres_fdw postgres_fdw: Fix handling of a pending asynchronous request in postgresReScanForeignScan(). 2022-01-27 16:15:00 +09:00
seg Update copyright for 2022 2022-01-07 19:04:57 -05:00
sepgsql Include permissive/enforcing state in sepgsql log messages. 2022-01-12 14:23:13 -05:00
spi
sslinfo contrib/sslinfo needs a fix too to make hamerkop happy. 2021-11-07 11:33:53 -05:00
start-scripts
tablefunc Update copyright for 2022 2022-01-07 19:04:57 -05:00
tcn Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_decoding Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsm_system_rows Update copyright for 2022 2022-01-07 19:04:57 -05:00
tsm_system_time Update copyright for 2022 2022-01-07 19:04:57 -05:00
unaccent Update copyright for 2022 2022-01-07 19:04:57 -05:00
uuid-ossp Improve error handling of cryptohash computations 2022-01-11 09:55:16 +09:00
vacuumlo Update copyright for 2022 2022-01-07 19:04:57 -05:00
xml2
contrib-global.mk
Makefile pgcrypto: Remove non-OpenSSL support 2021-11-05 14:06:59 +01:00
README

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.