Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix latent costing error in create_merge_append_path.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 19 Nov 2016 20:06:45 +0000 (15:06 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 19 Nov 2016 20:06:45 +0000 (15:06 -0500)
create_merge_append_path should use the path rowcount it just computed,
not rel->tuples, for costing purposes.  Those numbers should always be
the same at present, but if we ever support parameterized MergeAppend
paths (a case this function is otherwise prepared for), the former would
be right and the latter wrong.

No need for back-patch since the problem is only latent.

Ashutosh Bapat

Discussion: <CAFjFpRek+cLCnTo24youuGtsq4zRphEB8EUUPjDxZjnL4n4HYQ@mail.gmail.com>

src/backend/optimizer/util/pathnode.c

index abb7507d8e4b8f641740d2651457bf8a0f157190..6d3ccfd20e4b6cfabd3fdaf3a16d58bf68b1413d 100644 (file)
@@ -1333,7 +1333,7 @@ create_merge_append_path(PlannerInfo *root,
    cost_merge_append(&pathnode->path, root,
                      pathkeys, list_length(subpaths),
                      input_startup_cost, input_total_cost,
-                     rel->tuples);
+                     pathnode->path.rows);
 
    return pathnode;
 }