mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Make sequential scans parallel-aware.
In addition, this path fills in a number of missing bits and pieces in the parallel infrastructure. Paths and plans now have a parallel_aware flag indicating whether whatever parallel-aware logic they have should be engaged. It is believed that we will need this flag for a number of path/plan types, not just sequential scans, which is why the flag is generic rather than part of the SeqScan structures specifically. Also, execParallel.c now gives parallel nodes a chance to initialize their PlanState nodes from the DSM during parallel worker startup. Amit Kapila, with a fair amount of adjustment by me. Review of previous patch versions by Haribabu Kommi and others.
This commit is contained in:
@ -439,6 +439,15 @@ ExecSupportsBackwardScan(Plan *node)
|
||||
if (node == NULL)
|
||||
return false;
|
||||
|
||||
/*
|
||||
* Parallel-aware nodes return a subset of the tuples in each worker,
|
||||
* and in general we can't expect to have enough bookkeeping state to
|
||||
* know which ones we returned in this worker as opposed to some other
|
||||
* worker.
|
||||
*/
|
||||
if (node->parallel_aware)
|
||||
return false;
|
||||
|
||||
switch (nodeTag(node))
|
||||
{
|
||||
case T_Result:
|
||||
|
Reference in New Issue
Block a user