@@ -1998,7 +1998,12 @@ final_cost_nestloop(PlannerInfo *root, NestPath *path,
1998
1998
1999
1999
/* For partial paths, scale row estimate. */
2000
2000
if (path -> path .parallel_workers > 0 )
2001
- path -> path .rows /= get_parallel_divisor (& path -> path );
2001
+ {
2002
+ double parallel_divisor = get_parallel_divisor (& path -> path );
2003
+
2004
+ path -> path .rows =
2005
+ clamp_row_est (path -> path .rows / parallel_divisor );
2006
+ }
2002
2007
2003
2008
/*
2004
2009
* We could include disable_cost in the preliminary estimate, but that
@@ -2420,7 +2425,12 @@ final_cost_mergejoin(PlannerInfo *root, MergePath *path,
2420
2425
2421
2426
/* For partial paths, scale row estimate. */
2422
2427
if (path -> jpath .path .parallel_workers > 0 )
2423
- path -> jpath .path .rows /= get_parallel_divisor (& path -> jpath .path );
2428
+ {
2429
+ double parallel_divisor = get_parallel_divisor (& path -> jpath .path );
2430
+
2431
+ path -> jpath .path .rows =
2432
+ clamp_row_est (path -> jpath .path .rows / parallel_divisor );
2433
+ }
2424
2434
2425
2435
/*
2426
2436
* We could include disable_cost in the preliminary estimate, but that
@@ -2803,7 +2813,12 @@ final_cost_hashjoin(PlannerInfo *root, HashPath *path,
2803
2813
2804
2814
/* For partial paths, scale row estimate. */
2805
2815
if (path -> jpath .path .parallel_workers > 0 )
2806
- path -> jpath .path .rows /= get_parallel_divisor (& path -> jpath .path );
2816
+ {
2817
+ double parallel_divisor = get_parallel_divisor (& path -> jpath .path );
2818
+
2819
+ path -> jpath .path .rows =
2820
+ clamp_row_est (path -> jpath .path .rows / parallel_divisor );
2821
+ }
2807
2822
2808
2823
/*
2809
2824
* We could include disable_cost in the preliminary estimate, but that
0 commit comments