summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-05-09 11:02:37 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2022-05-09 11:40:41 -0400
commit5045c795301d6332660053f0b4194adac03a6db5 (patch)
tree789a1c108ebef79d9e7793b9cd80eec0955b5dcf /src/backend/utils/adt
parent880511cb0bdfd75a29ada6b80bf6e4efe6bc27b4 (diff)
downloadpostgresql-5045c795301d6332660053f0b4194adac03a6db5.tar.gz
Revert "Disallow infinite endpoints in generate_series() for timestamps."
This reverts commit eafdf9de06e9b60168f5e47cedcfceecdc6d4b5f and its back-branch counterparts. Corey Huinker pointed out that we'd discussed this exact change back in 2016 and rejected it, on the grounds that there's at least one usage pattern with LIMIT where an infinite endpoint can usefully be used. Perhaps that argument needs to be re-litigated, but there's no time left before our back-branch releases. To keep our options open, restore the status quo ante; if we do end up deciding to change things, waiting one more quarter won't hurt anything. Rather than just doing a straight revert, I added a new test case demonstrating the usage with LIMIT. That'll at least remind us of the issue if we forget again. Discussion: https://postgr.es/m/3603504.1652068977@sss.pgh.pa.us Discussion: https://postgr.es/m/CADkLM=dzw0Pvdqp5yWKxMd+VmNkAMhG=4ku7GnCZxebWnzmz3Q@mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt')
-rw-r--r--src/backend/utils/adt/timestamp.c28
1 files changed, 0 insertions, 28 deletions
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index a6161198f8..3e7c77ee48 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -5392,20 +5392,6 @@ generate_series_timestamp(PG_FUNCTION_ARGS)
MemoryContext oldcontext;
Interval interval_zero;
- /* Reject infinities in start and stop values */
- if (TIMESTAMP_IS_NOBEGIN(start) ||
- TIMESTAMP_IS_NOEND(start))
- ereport(ERROR,
- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("start value cannot be infinity")));
- if (TIMESTAMP_IS_NOBEGIN(finish) ||
- TIMESTAMP_IS_NOEND(finish))
- ereport(ERROR,
- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("stop value cannot be infinity")));
-
- /* Interval doesn't (currently) have infinity, so nothing to check */
-
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();
@@ -5487,20 +5473,6 @@ generate_series_timestamptz(PG_FUNCTION_ARGS)
MemoryContext oldcontext;
Interval interval_zero;
- /* Reject infinities in start and stop values */
- if (TIMESTAMP_IS_NOBEGIN(start) ||
- TIMESTAMP_IS_NOEND(start))
- ereport(ERROR,
- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("start value cannot be infinity")));
- if (TIMESTAMP_IS_NOBEGIN(finish) ||
- TIMESTAMP_IS_NOEND(finish))
- ereport(ERROR,
- (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
- errmsg("stop value cannot be infinity")));
-
- /* Interval doesn't (currently) have infinity, so nothing to check */
-
/* create a function context for cross-call persistence */
funcctx = SRF_FIRSTCALL_INIT();