summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/datetime.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2012-08-25 17:44:53 -0400
committerBruce Momjian <bruce@momjian.us>2012-08-25 17:44:53 -0400
commit3e1a373e2b102b43faa8bbc4841f7511174e1166 (patch)
tree942e8e579cbaec1f2f36f95a769e7b014f5a669c /src/backend/utils/adt/datetime.c
parent7514208fbb29f62511c77d2ce4f9ec0608487426 (diff)
Allow text timezone designations, e.g. "America/Chicago", when using the
ISO "T" timestamptz format.
Diffstat (limited to 'src/backend/utils/adt/datetime.c')
-rw-r--r--src/backend/utils/adt/datetime.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/utils/adt/datetime.c b/src/backend/utils/adt/datetime.c
index 26c6742e8b1..c29b8e10191 100644
--- a/src/backend/utils/adt/datetime.c
+++ b/src/backend/utils/adt/datetime.c
@@ -944,6 +944,16 @@ DecodeDateTime(char **field, int *ftype, int nf,
break;
case DTK_TIME:
+ /*
+ * This might be an ISO time following a "t" field.
+ */
+ if (ptype != 0)
+ {
+ /* Sanity check; should not fail this test */
+ if (ptype != DTK_TIME)
+ return DTERR_BAD_FORMAT;
+ ptype = 0;
+ }
dterr = DecodeTime(field[i], fmask, INTERVAL_FULL_RANGE,
&tmask, tm, fsec);
if (dterr)