pgsql: Fix handling of BC years in to_date/to_timestamp.
От | Tom Lane |
---|---|
Тема | pgsql: Fix handling of BC years in to_date/to_timestamp. |
Дата | |
Msg-id | E1kNhyE-0005HS-23@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix handling of BC years in to_date/to_timestamp. Previously, a conversion such as to_date('-44-02-01','YYYY-MM-DD') would result in '0045-02-01 BC', as the code attempted to interpret the negative year as BC, but failed to apply the correction needed for our internal handling of BC years. Fix the off-by-one problem. Also, arrange for the combination of a negative year and an explicit "BC" marker to cancel out and produce AD. This is how the negative-century case works, so it seems sane to do likewise. Continue to read "year 0000" as 1 BC. Oracle would throw an error, but we've accepted that case for a long time so I'm hesitant to change it in a back-patch. Per bug #16419 from Saeed Hubaishan. Back-patch to all supported branches. Dar Alathar-Yemen and Tom Lane Discussion: https://postgr.es/m/16419-d8d9db0a7553f01b@postgresql.org Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/b0fe0b022f80d6e0409b8fa412657eb8ea74a816 Modified Files -------------- doc/src/sgml/func.sgml | 9 +++++++ src/backend/utils/adt/formatting.c | 7 ++++-- src/test/regress/expected/horology.out | 45 ++++++++++++++++++++++++++++++++++ src/test/regress/sql/horology.sql | 12 +++++++++ 4 files changed, 71 insertions(+), 2 deletions(-)
В списке pgsql-committers по дате отправления: