diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 5c7e0f9c02d..7a6ca392484 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -1739,13 +1739,23 @@ repeat('Pg', 4) PgPgPgPg
which operand falls in a histogram
having count equal-width buckets spanning the
range low to high.
- Returns 0
+ The buckets have inclusive lower bounds and exclusive upper bounds.
+ Returns 0 for an input less
+ than low,
or count+1 for an input
- outside that range.
+ greater than or equal to high.
+ If low > high,
+ the behavior is mirror-reversed, with bucket 1
+ now being the one just below low, and the
+ inclusive bounds now being on the upper side.
width_bucket(5.35, 0.024, 10.06, 5)
3
+
+
+ width_bucket(9, 10, 0, 10)
+ 2
@@ -1757,8 +1767,8 @@ repeat('Pg', 4) PgPgPgPg
Returns the number of the bucket in
which operand falls given an array listing the
- lower bounds of the buckets. Returns 0 for an
- input less than the first lower
+ inclusive lower bounds of the buckets.
+ Returns 0 for an input less than the first lower
bound. operand and the array elements can be
of any type having standard comparison operators.
The thresholds array must be
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index 63bb0f22772..9b7e0af4bad 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -4004,8 +4004,8 @@ float84ge(PG_FUNCTION_ARGS)
* in the histogram. width_bucket() returns an integer indicating the
* bucket number that 'operand' belongs to in an equiwidth histogram
* with the specified characteristics. An operand smaller than the
- * lower bound is assigned to bucket 0. An operand greater than the
- * upper bound is assigned to an additional bucket (with number
+ * lower bound is assigned to bucket 0. An operand greater than or equal
+ * to the upper bound is assigned to an additional bucket (with number
* count+1). We don't allow "NaN" for any of the float8 inputs, and we
* don't allow either of the histogram bounds to be +/- infinity.
*/
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index e5f2551bf04..f6aeaff7c0e 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -1764,9 +1764,10 @@ generate_series_step_numeric(PG_FUNCTION_ARGS)
* in the histogram. width_bucket() returns an integer indicating the
* bucket number that 'operand' belongs to in an equiwidth histogram
* with the specified characteristics. An operand smaller than the
- * lower bound is assigned to bucket 0. An operand greater than the
- * upper bound is assigned to an additional bucket (with number
- * count+1). We don't allow "NaN" for any of the numeric arguments.
+ * lower bound is assigned to bucket 0. An operand greater than or equal
+ * to the upper bound is assigned to an additional bucket (with number
+ * count+1). We don't allow "NaN" for any of the numeric inputs, and we
+ * don't allow either of the histogram bounds to be +/- infinity.
*/
Datum
width_bucket_numeric(PG_FUNCTION_ARGS)