I noticed this while working on the
EXPLAIN-ANALYZE-for-async-capable-nodes issue:
EXPLAIN (VERBOSE, COSTS OFF)
DELETE FROM async_pt;
QUERY PLAN
----------------------------------------------------------------
Delete on public.async_pt
Foreign Delete on public.async_p1 async_pt_1
Foreign Delete on public.async_p2 async_pt_2
Delete on public.async_p3 async_pt_3
-> Append
-> Async Foreign Delete on public.async_p1 async_pt_1
Remote SQL: DELETE FROM public.base_tbl1
-> Async Foreign Delete on public.async_p2 async_pt_2
Remote SQL: DELETE FROM public.base_tbl2
-> Seq Scan on public.async_p3 async_pt_3
Output: async_pt_3.tableoid, async_pt_3.ctid
(11 rows)
DELETE FROM async_pt;
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
connection to server was lost
The cause for this would be that direct-update plans are mistakenly
treated as async-capable ones, as shown in the EXPLAIN output. To
fix, I think we should modify postgresPlanDirectModify() so that it
clears the async-capable flag if it is set. Attached is a patch for
that. Maybe I am missing something, though.
Best regards,
Etsuro Fujita