postgresql/src/backend/utils/adt
Tom Lane a9a7c2c3e1 Fix input of ISO "extended" time format for types time and timetz.
Commit 3e1a373e2 missed teaching DecodeTimeOnly the same "ptype"
manipulations it added to DecodeDateTime.  While likely harmless
at the time, it became a problem after 5b3c59535 added an error check
that ptype must be zero once we exit the parsing loop (that is, there
shouldn't be any unused prefixes).  The consequence was that we'd
reject time or timetz input like T12:34:56 (the "extended" format
per ISO 8601-1:2019), even though that still worked in timestamp
input.

Since this is clearly under-tested code, add test cases covering all
the ISO 8601 time formats.  (Note: although 8601 allows just "Thh",
we have never accepted that, and this patch doesn't change that.
I'm content to leave that as-is because it seems too likely to be
a mistake rather than intended input.  If anyone wants to allow
that, it should be a separate patch anyway, and not back-patched.)

Per bug #18470 from David Perez.  Back-patch to v16 where we
broke it.

Discussion: https://postgr.es/m/18470-34fad4c829106848@postgresql.org
2024-05-22 18:22:58 -04:00
..
.gitignore Build all Flex files standalone 2022-09-04 12:09:01 +07:00
Makefile Add functions to generate random numbers in a specified range. 2024-03-27 10:12:39 +00:00
acl.c Optimize roles_is_member_of() with a Bloom filter. 2024-03-26 14:43:37 -05:00
amutils.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
array_expanded.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
array_selfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
array_typanalyze.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
array_userfuncs.c Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
arrayfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
arraysubs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
arrayutils.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
ascii.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
bool.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
cash.c Convert a few more datatype input functions to report errors softly. 2022-12-14 18:03:11 -05:00
char.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
cryptohashfuncs.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
date.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
datetime.c Fix input of ISO "extended" time format for types time and timetz. 2024-05-22 18:22:58 -04:00
datum.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
dbsize.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
domains.c Adjust populate_record_field() to handle errors softly 2024-01-24 15:04:33 +09:00
encode.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
enum.c Allow more cases to pass the unsafe-use-of-new-enum-value restriction. 2024-03-24 14:30:29 -04:00
expandeddatum.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
expandedrecord.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
float.c Add functions to generate random numbers in a specified range. 2024-03-27 10:12:39 +00:00
format_type.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
formatting.c Add unicode_strtitle() for Unicode Default Case Conversion. 2024-03-29 17:35:07 -07:00
genfile.c Remove the adminpack contrib extension 2024-03-04 12:39:22 +01:00
geo_ops.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
geo_selfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
geo_spgist.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
hbafuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
inet_cidr_ntop.c Avoid conflicts with library versions of inet_net_ntop() and friends. 2019-08-18 19:27:23 -04:00
inet_net_pton.c Avoid conflicts with library versions of inet_net_ntop() and friends. 2019-08-18 19:27:23 -04:00
int.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
int8.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
json.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
jsonb.c Add SQL/JSON query functions 2024-03-21 17:07:03 +09:00
jsonb_gin.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
jsonb_op.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
jsonb_util.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
jsonbsubs.c Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
jsonfuncs.c Add SQL/JSON query functions 2024-03-21 17:07:03 +09:00
jsonpath.c Add SQL/JSON query functions 2024-03-21 17:07:03 +09:00
jsonpath_exec.c Fix typos and duplicate words 2024-04-18 21:28:07 +02:00
jsonpath_gram.y Implement various jsonpath methods 2024-01-25 10:15:43 -05:00
jsonpath_internal.h Update copyright for 2024 2024-01-03 20:49:05 -05:00
jsonpath_scan.l Implement various jsonpath methods 2024-01-25 10:15:43 -05:00
levenshtein.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
like.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
like_match.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
like_support.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
lockfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
mac.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
mac8.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
mcxtfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
meson.build Add functions to generate random numbers in a specified range. 2024-03-27 10:12:39 +00:00
misc.c Add pg_basetype() function to extract a domain's base type. 2024-03-30 13:57:19 -04:00
multirangetypes.c Fix typos and duplicate words 2024-04-18 21:28:07 +02:00
multirangetypes_selfuncs.c Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
name.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
network.c Work around spurious compiler warning in inet operators 2023-03-16 14:48:45 -07:00
network_gist.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
network_selfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
network_spgist.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
numeric.c Add functions to generate random numbers in a specified range. 2024-03-27 10:12:39 +00:00
numutils.c Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
oid.c Use new overflow-safe integer comparison functions. 2024-02-16 14:05:36 -06:00
oracle_compat.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
orderedsetaggs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
partitionfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_locale.c Revise GUC names quoting in messages again 2024-05-17 11:44:26 +02:00
pg_lsn.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
pg_upgrade_support.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
pgstatfuncs.c Revert "Add notBefore and notAfter to SSL cert info display" 2024-03-22 22:58:41 +01:00
pseudorandomfuncs.c Add functions to generate random numbers in a specified range. 2024-03-27 10:12:39 +00:00
pseudotypes.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
quote.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
rangetypes.c Add planner support functions for range operators <@ and @>. 2024-01-20 13:57:54 -05:00
rangetypes_gist.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
rangetypes_selfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
rangetypes_spgist.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
rangetypes_typanalyze.c Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
regexp.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
regproc.c Add to_regtypemod function to extract typemod from a string type name. 2024-03-20 17:11:28 -04:00
ri_triggers.c Revert temporal primary keys and foreign keys 2024-05-16 08:17:46 +02:00
rowtypes.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
ruleutils.c Revert temporal primary keys and foreign keys 2024-05-16 08:17:46 +02:00
selfuncs.c Fix typos and duplicate words 2024-04-18 21:28:07 +02:00
tid.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
timestamp.c Detect more overflows in timestamp[tz]_pl_interval. 2024-04-28 13:42:13 -04:00
trigfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsginidx.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsgistidx.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsquery.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
tsquery_cleanup.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
tsquery_gist.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsquery_op.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsquery_rewrite.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
tsquery_util.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
tsrank.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsvector.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsvector_op.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
tsvector_parser.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
uuid.c Add some UUID support functions 2024-03-19 09:32:04 +01:00
varbit.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
varchar.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
varlena.c Revise GUC names quoting in messages again 2024-05-17 11:44:26 +02:00
version.c Update copyright for 2024 2024-01-03 20:49:05 -05:00
windowfuncs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
xid.c Use new overflow-safe integer comparison functions. 2024-02-16 14:05:36 -06:00
xid8funcs.c Remove unused #include's from backend .c files 2024-03-04 12:02:20 +01:00
xml.c Add destroyStringInfo function for cleaning up StringInfos 2024-03-16 23:18:28 +01:00