diff options
author | Robert Haas <rhaas@postgresql.org> | 2015-11-11 08:57:52 -0500 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2015-11-11 08:57:52 -0500 |
commit | f0661c4e8c44c0ec7acd4ea7c82e85b265447398 (patch) | |
tree | 0a31416ab40a9be4ab0f43c6ddd73221eed9dec6 /src/backend/commands/explain.c | |
parent | f764ecd81b2a8a1e9000d43a73ca5eec8e8008bc (diff) | |
download | postgresql-f0661c4e8c44c0ec7acd4ea7c82e85b265447398.tar.gz postgresql-f0661c4e8c44c0ec7acd4ea7c82e85b265447398.zip |
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.
Diffstat (limited to 'src/backend/commands/explain.c')
-rw-r--r-- | src/backend/commands/explain.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 7fb8a1458df..183d3d9bcb7 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -984,6 +984,8 @@ ExplainNode(PlanState *planstate, List *ancestors, appendStringInfoString(es->str, "-> "); es->indent += 2; } + if (plan->parallel_aware) + appendStringInfoString(es->str, "Parallel "); appendStringInfoString(es->str, pname); es->indent++; } @@ -1000,6 +1002,8 @@ ExplainNode(PlanState *planstate, List *ancestors, ExplainPropertyText("Subplan Name", plan_name, es); if (custom_name) ExplainPropertyText("Custom Plan Provider", custom_name, es); + if (plan->parallel_aware) + ExplainPropertyText("Parallel Aware", "true", es); } switch (nodeTag(plan)) |