aboutsummaryrefslogtreecommitdiff
path: root/contrib/test_decoding/test_decoding.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2023-03-16 14:18:28 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2023-03-16 14:18:33 -0400
commit5b3c5953553bb9fb0b171abc6041e7c7e9ca5b4d (patch)
tree6eba6b3514073551b49fd6419a5763b8793c5b5e /contrib/test_decoding/test_decoding.c
parent2b7259f855723f36d2ce81ad892583248dc1576f (diff)
downloadpostgresql-5b3c5953553bb9fb0b171abc6041e7c7e9ca5b4d.tar.gz
postgresql-5b3c5953553bb9fb0b171abc6041e7c7e9ca5b4d.zip
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
Diffstat (limited to 'contrib/test_decoding/test_decoding.c')
0 files changed, 0 insertions, 0 deletions