Thread: BUG #16571: "time with time zone" type can input '00:00:00+1559'::time with time zone

BUG #16571: "time with time zone" type can input '00:00:00+1559'::time with time zone

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      16571
Logged by:          osdba
Email address:      mailtch@163.com
PostgreSQL version: 13beta2
Operating system:   all
Description:

In Document(https://www.postgresql.org/docs/current/datatype-datetime.html),
"time with time zone" range is:  00:00:00+1459 to 24:00:00-1459

but you can input:

osdba=# select '00:00:00+1559'::time with time zone;
     timetz
----------------
 00:00:00+15:59
(1 row)

osdba=# select '24:00:00-1559'::time with time zone;
     timetz
----------------
 24:00:00-15:59
(1 row)

you can input range is :
00:00:00+1559 to 24:00:00-1559
not the "00:00:00+1459 to 24:00:00-1459"

Document error or this type bug?

all version postgresql have this strange phenomenon.


PG Bug reporting form <noreply@postgresql.org> writes:
> In Document(https://www.postgresql.org/docs/current/datatype-datetime.html),
> "time with time zone" range is:  00:00:00+1459 to 24:00:00-1459
> but you can input:
> osdba=# select '00:00:00+1559'::time with time zone;
>      timetz
> ----------------
>  00:00:00+15:59
> (1 row)

Hmm, the code is quite clear about it:

/*
 * 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 */

Apparently this documentation reference got overlooked the last time
we changed that :-(.  Will fix, thanks for the report!

            regards, tom lane