Skip to content

Commit c89d507

Browse files
committed
Round rowcount estimate for a partial path to an integer.
I'd been wondering why I was sometimes seeing fractional rowcount estimates in parallel-query situations, and this seems to be the reason. (You won't see the fractional parts in EXPLAIN, because it prints rowcounts with %.0f, but they are apparent in the debugger.) A fractional rowcount is not any saner for a partial path than any other kind of path, and it's equally likely to break cost estimation for higher paths, so apply clamp_row_est() like we do in other places.
1 parent 3a4a33a commit c89d507

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/optimizer/path/costsize.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ cost_seqscan(Path *path, PlannerInfo *root,
263263
* because they'll anticipate receiving more rows than any given copy
264264
* will actually get.
265265
*/
266-
path->rows /= parallel_divisor;
266+
path->rows = clamp_row_est(path->rows / parallel_divisor);
267267

268268
/* The CPU cost is divided among all the workers. */
269269
cpu_run_cost /= parallel_divisor;

0 commit comments

Comments
 (0)