Allow asynchronous execution in more cases.
Etsuro Fujita <efujita@postgresql.org>
Allow asynchronous execution in more cases. In commit 27e1f1456, create_append_plan() only allowed the subplan created from a given subpath to be executed asynchronously when it was an async-capable ForeignPath. To extend coverage, this patch handles cases when the given subpath includes some other Path types as well that can be omitted in the plan processing, such as a ProjectionPath directly atop an async-capable ForeignPath, allowing asynchronous execution in partitioned-scan/partitioned-join queries with non-Var tlist expressions and more UNION queries. Andrey Lepikhov and Etsuro Fujita, reviewed by Alexander Pyhalov and Zhihong Yu. Discussion: https://postgr.es/m/659c37a8-3e71-0ff2-394c-f04428c76f08%40postgrespro.ru
Files
| Path | Change | +/− |
|---|---|---|
| contrib/postgres_fdw/expected/postgres_fdw.out | modified | +170 −0 |
| contrib/postgres_fdw/sql/postgres_fdw.sql | modified | +41 −0 |
| src/backend/nodes/copyfuncs.c | modified | +1 −0 |
| src/backend/nodes/outfuncs.c | modified | +1 −0 |
| src/backend/nodes/readfuncs.c | modified | +1 −0 |
| src/backend/optimizer/plan/createplan.c | modified | +44 −13 |
| src/backend/optimizer/plan/setrefs.c | modified | +16 −2 |
| src/include/nodes/plannodes.h | modified | +12 −0 |
| src/include/optimizer/planmain.h | modified | +1 −0 |
Discussion
- Asynchronous Append on postgres_fdw nodes. 163 messages · 2020-02-28 → 2022-06-09