]> granicus.if.org Git - postgresql/commitdiff
Improve coding pattern in Parallel Append code.
authorAmit Kapila <akapila@postgresql.org>
Fri, 22 Jun 2018 03:13:36 +0000 (08:43 +0530)
committerAmit Kapila <akapila@postgresql.org>
Fri, 22 Jun 2018 03:13:36 +0000 (08:43 +0530)
The create_append_path code didn't consider that list_concat will
modify it's first argument leading to inconsistent traversal of
resulting list.  In practice, it won't lead to any user-visible bug
but changing it for making the code behave consistently.

Reported-by: Tom Lane
Author: Tom Lane
Reviewed-by: Amit Khandekar and Amit Kapila
Discussion: https://postgr.es/m/32365.1528994120@sss.pgh.pa.us

src/backend/optimizer/util/pathnode.c

index e190ad49d16e64f690cb503123351afeb83ce34e..dbf9adcdaca51d977f5cae7fc93d0d3b6d6ab588 100644 (file)
@@ -1274,7 +1274,7 @@ create_append_path(PlannerInfo *root,
        pathnode->first_partial_path = list_length(subpaths);
        pathnode->subpaths = list_concat(subpaths, partial_subpaths);
 
-       foreach(l, subpaths)
+       foreach(l, pathnode->subpaths)
        {
                Path       *subpath = (Path *) lfirst(l);