aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/planner.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r--src/backend/optimizer/plan/planner.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 6ee411eec87..09d4ea12e87 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -1536,9 +1536,11 @@ grouping_planner(PlannerInfo *root, double tuple_fraction)
standard_qp_callback, &qp_extra);
/*
- * Extract rowcount and width estimates for use below.
+ * Extract rowcount and width estimates for use below. If final_rel
+ * has been proven dummy, its rows estimate will be zero; clamp it to
+ * one to avoid zero-divide in subsequent calculations.
*/
- path_rows = final_rel->rows;
+ path_rows = clamp_row_est(final_rel->rows);
path_width = final_rel->width;
/*