diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-08-30 20:27:19 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2012-08-30 20:29:11 +0300 |
commit | 3e6eb0dd0a0982c61420a0d18d3e485bd2c2819c (patch) | |
tree | 1e30dc30ee3869cbf18c178860c5f464008ea4a3 /src | |
parent | a66fca3f0c8899ad360f0300d45cb1b7ac60a17f (diff) | |
download | postgresql-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.c | 5 |
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), |