@@ -2147,7 +2147,12 @@ final_cost_nestloop(PlannerInfo *root, NestPath *path,
2147
2147
2148
2148
/* For partial paths, scale row estimate. */
2149
2149
if (path -> path .parallel_workers > 0 )
2150
- path -> path .rows /= get_parallel_divisor (& path -> path );
2150
+ {
2151
+ double parallel_divisor = get_parallel_divisor (& path -> path );
2152
+
2153
+ path -> path .rows =
2154
+ clamp_row_est (path -> path .rows / parallel_divisor );
2155
+ }
2151
2156
2152
2157
/*
2153
2158
* We could include disable_cost in the preliminary estimate, but that
@@ -2569,7 +2574,12 @@ final_cost_mergejoin(PlannerInfo *root, MergePath *path,
2569
2574
2570
2575
/* For partial paths, scale row estimate. */
2571
2576
if (path -> jpath .path .parallel_workers > 0 )
2572
- path -> jpath .path .rows /= get_parallel_divisor (& path -> jpath .path );
2577
+ {
2578
+ double parallel_divisor = get_parallel_divisor (& path -> jpath .path );
2579
+
2580
+ path -> jpath .path .rows =
2581
+ clamp_row_est (path -> jpath .path .rows / parallel_divisor );
2582
+ }
2573
2583
2574
2584
/*
2575
2585
* We could include disable_cost in the preliminary estimate, but that
@@ -2952,7 +2962,12 @@ final_cost_hashjoin(PlannerInfo *root, HashPath *path,
2952
2962
2953
2963
/* For partial paths, scale row estimate. */
2954
2964
if (path -> jpath .path .parallel_workers > 0 )
2955
- path -> jpath .path .rows /= get_parallel_divisor (& path -> jpath .path );
2965
+ {
2966
+ double parallel_divisor = get_parallel_divisor (& path -> jpath .path );
2967
+
2968
+ path -> jpath .path .rows =
2969
+ clamp_row_est (path -> jpath .path .rows / parallel_divisor );
2970
+ }
2956
2971
2957
2972
/*
2958
2973
* We could include disable_cost in the preliminary estimate, but that
0 commit comments