aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2012-08-30 20:27:19 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2012-08-30 20:29:11 +0300
commit3e6eb0dd0a0982c61420a0d18d3e485bd2c2819c (patch)
tree1e30dc30ee3869cbf18c178860c5f464008ea4a3 /src
parenta66fca3f0c8899ad360f0300d45cb1b7ac60a17f (diff)
downloadpostgresql-3e6eb0dd0a0982c61420a0d18d3e485bd2c2819c.tar.gz
postgresql-3e6eb0dd0a0982c61420a0d18d3e485bd2c2819c.zip
Fix division by zero in the new range type histogram creation.
Report and analysis by Matthias.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/rangetypes_typanalyze.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/utils/adt/rangetypes_typanalyze.c b/src/backend/utils/adt/rangetypes_typanalyze.c
index e276ad8e181..5f346834e75 100644
--- a/src/backend/utils/adt/rangetypes_typanalyze.c
+++ b/src/backend/utils/adt/rangetypes_typanalyze.c
@@ -158,7 +158,10 @@ compute_range_stats(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfunc,
/* Must copy the target values into anl_context */
old_cxt = MemoryContextSwitchTo(stats->anl_context);
- if (non_empty_cnt > 0)
+ /*
+ * Generate a histogram slot entry if there are at least two values.
+ */
+ if (non_empty_cnt >= 2)
{
/* Sort bound values */
qsort_arg(lowers, non_empty_cnt, sizeof(RangeBound),