aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/timestamp.c
diff options
context:
space:
mode:
authorJohn Naylor <john.naylor@postgresql.org>2021-07-28 11:22:58 -0400
committerJohn Naylor <john.naylor@postgresql.org>2021-07-28 12:11:33 -0400
commitfc0d9b8c224ff6b84113cefdca1ba9dde879d863 (patch)
tree01e9723b8876d1af46c57d4cb6cc76da105f08e4 /src/backend/utils/adt/timestamp.c
parent5a8a9be08307a1c06fbed4510667de6b4f40fe56 (diff)
downloadpostgresql-fc0d9b8c224ff6b84113cefdca1ba9dde879d863.tar.gz
postgresql-fc0d9b8c224ff6b84113cefdca1ba9dde879d863.zip
Disallow negative strides in date_bin()
It's not clear what the semantics of negative strides would be, so throw an error instead. Per report from Bauyrzhan Sakhariyev Reviewed-by: Tom Lane, Michael Paquier Discussion: https://www.postgresql.org/message-id/CAKpL73vZmLuFVuwF26FJ%2BNk11PVHhAnQRoREFcA03x7znRoFvA%40mail.gmail.com Backpatch to v14
Diffstat (limited to 'src/backend/utils/adt/timestamp.c')
-rw-r--r--src/backend/utils/adt/timestamp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index ea847576cd2..1c0bf0aa5c8 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -3843,10 +3843,10 @@ timestamp_bin(PG_FUNCTION_ARGS)
stride_usecs = stride->day * USECS_PER_DAY + stride->time;
- if (stride_usecs == 0)
+ if (stride_usecs <= 0)
ereport(ERROR,
(errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
- errmsg("stride cannot equal zero")));
+ errmsg("stride must be greater than zero")));
tm_diff = timestamp - origin;
tm_delta = tm_diff - tm_diff % stride_usecs;
@@ -4026,10 +4026,10 @@ timestamptz_bin(PG_FUNCTION_ARGS)
stride_usecs = stride->day * USECS_PER_DAY + stride->time;
- if (stride_usecs == 0)
+ if (stride_usecs <= 0)
ereport(ERROR,
(errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE),
- errmsg("stride cannot equal zero")));
+ errmsg("stride must be greater than zero")));
tm_diff = timestamp - origin;
tm_delta = tm_diff - tm_diff % stride_usecs;