mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Expand the allowed range of timezone offsets to +/-15:59:59 from Greenwich.
We used to only allow offsets less than +/-13 hours, then it was +/14, then it was +/-15. That's still not good enough though, as per today's bug report from Patric Bechtel. This time I actually looked through the Olson timezone database to find the largest offsets used anywhere. The winners are Asia/Manila, at -15:56:00 until 1844, and America/Metlakatla, at +15:13:42 until 1867. So we'd better allow offsets less than +/-16 hours. Given the history, we are way overdue to have some greppable #define symbols controlling this, so make some ... and also remove an obsolete comment that didn't get fixed the last time. Back-patch to all supported branches.
This commit is contained in:
@@ -105,6 +105,16 @@ typedef struct
|
||||
#define USECS_PER_MINUTE INT64CONST(60000000)
|
||||
#define USECS_PER_SEC INT64CONST(1000000)
|
||||
|
||||
/*
|
||||
* We allow numeric timezone offsets up to 15:59:59 either way from Greenwich.
|
||||
* Currently, the record holders for wackiest offsets in actual use are zones
|
||||
* Asia/Manila, at -15:56:00 until 1844, and America/Metlakatla, at +15:13:42
|
||||
* until 1867. If we were to reject such values we would fail to dump and
|
||||
* restore old timestamptz values with these zone settings.
|
||||
*/
|
||||
#define MAX_TZDISP_HOUR 15 /* maximum allowed hour part */
|
||||
#define TZDISP_LIMIT ((MAX_TZDISP_HOUR + 1) * SECS_PER_HOUR)
|
||||
|
||||
/*
|
||||
* DT_NOBEGIN represents timestamp -infinity; DT_NOEND represents +infinity
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user