pgsql: Tighten error checks in datetime input, and remove bogus "ISO" f

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Tighten error checks in datetime input, and remove bogus "ISO" f
Дата
Msg-id E1pcsBc-003qtQ-Ot@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Tighten error checks in datetime input, and remove bogus "ISO" format.

DecodeDateTime and DecodeTimeOnly had support for date input in the
style "Y2023M03D16", which the comments claimed to be an "ISO" format.
However, so far as I can find there is no such format in ISO 8601;
they write units before numbers in intervals, but not in datetimes.
Furthermore, the lesser-known ISO 8601-2 spec actually defines an
incompatible format "2023Y03M16D".  None of our documentation mentions
such a format either.  So let's just drop it.

That leaves us with only two cases for a prefix unit specifier in
datetimes: Julian dates written as Jnnnn, and the "T" separator
defined by ISO 8601.  Add checks to catch misuse of these specifiers,
that is consecutive specifiers or a dangling specifier at the end of
the string.  We do not however disallow a specifier that is separated
from the field that it disambiguates (by noise words or unrelated
fields).  That being the case, remove some overly-aggressive error
checks from the ISOTIME cases.

Joseph Koshakow, editorialized a bit by me; thanks also to
Peter Eisentraut for some standards-reading.

Discussion: https://postgr.es/m/CAAvxfHf2Q1gKLiHGnuPOiyf0ASvKUM4BnMfsXuwgtYEb_Gx0Zw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/5b3c5953553bb9fb0b171abc6041e7c7e9ca5b4d

Modified Files
--------------
src/backend/utils/adt/datetime.c       | 221 +++++----------------------------
src/test/regress/expected/horology.out |  72 +++++++----
src/test/regress/sql/horology.sql      |  19 ++-
3 files changed, 92 insertions(+), 220 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: pgsql: Silence pedantic compiler warning introduced in ce340e530d1
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Doc: mention CREATE+ATTACH PARTITION with CREATE TABLE...PARTITI