Specify whether the bucket bounds are inclusive or exclusive,
and improve some other vague language. Explain the behavior that
occurs when the "low" bound is greater than the "high" bound.
Make width_bucket_numeric's comment more like that for
width_bucket_float8, in particular noting that infinite
bounds are rejected (since they became possible in v14).
Reported-by: Ben Peachey Higdon
Author: Robert Treat
Co-authored-by: Tom Lane
Reviewed-by: Dean Rasheed
Discussion: https://postgr.es/m/2BD74F86-5B89-4AC1-8F13-23CED3546AC1@gmail.com
Backpatch-through: 13
which
operand falls in a histogram
having
count equal-width buckets spanning the
- Returns 0
+ The buckets have inclusive lower bounds and exclusive upper bounds.
+ Returns 0 for an input less
- outside that range.
+ greater than or equal to
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
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
* 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.
*/
* 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)