diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2007-06-12 15:58:32 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2007-06-12 15:58:32 +0000 |
| commit | d0599994da684374cf7b30eab4c69c019f38f5ab (patch) | |
| tree | 9427a7aa3cba8578df7898fcebad5bb5306e3ff9 /src/test | |
| parent | e41c7bb7cd75b36f9d51d2f335bb66fb5a213987 (diff) | |
| download | postgresql-d0599994da684374cf7b30eab4c69c019f38f5ab.tar.gz | |
Fix DecodeDateTime to allow timezone to appear before year. This had
historically worked in some but not all cases, but as of 8.2 it failed for all
timezone formats. Fix, and add regression test cases to catch future
regressions in this area. Per gripe from Adam Witney.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/timestamptz.out | 34 | ||||
| -rw-r--r-- | src/test/regress/sql/timestamptz.sql | 8 |
2 files changed, 41 insertions, 1 deletions
diff --git a/src/test/regress/expected/timestamptz.out b/src/test/regress/expected/timestamptz.out index 3f117ec084..e6213a5d9b 100644 --- a/src/test/regress/expected/timestamptz.out +++ b/src/test/regress/expected/timestamptz.out @@ -153,6 +153,38 @@ INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097'); ERROR: time zone displacement out of range: "Feb 16 17:32:01 -0097" INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC'); ERROR: timestamp out of range: "Feb 16 17:32:01 5097 BC" +-- Alternate field order that we've historically supported (sort of) +-- with regular and POSIXy timezone specs +SELECT 'Wed Jul 11 10:51:14 America/New_York 2001'::timestamptz; + timestamptz +------------------------------ + Wed Jul 11 07:51:14 2001 PDT +(1 row) + +SELECT 'Wed Jul 11 10:51:14 GMT-4 2001'::timestamptz; + timestamptz +------------------------------ + Tue Jul 10 23:51:14 2001 PDT +(1 row) + +SELECT 'Wed Jul 11 10:51:14 GMT+4 2001'::timestamptz; + timestamptz +------------------------------ + Wed Jul 11 07:51:14 2001 PDT +(1 row) + +SELECT 'Wed Jul 11 10:51:14 PST-03:00 2001'::timestamptz; + timestamptz +------------------------------ + Wed Jul 11 00:51:14 2001 PDT +(1 row) + +SELECT 'Wed Jul 11 10:51:14 PST+03:00 2001'::timestamptz; + timestamptz +------------------------------ + Wed Jul 11 06:51:14 2001 PDT +(1 row) + SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL; 64 | d1 ----+--------------------------------- @@ -724,7 +756,7 @@ SELECT '' AS "54", d1 as timestamptz, date_part( 'isoyear', d1) AS isoyear, date_part( 'week', d1) AS week, date_part( 'dow', d1) AS dow FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; - 54 | timestamptz | isoyear | week | dow + 54 | timestamptz | isoyear | week | dow ----+---------------------------------+---------+------+----- | Wed Dec 31 16:00:00 1969 PST | 1970 | 1 | 3 | Mon Feb 10 17:32:01 1997 PST | 1997 | 7 | 1 diff --git a/src/test/regress/sql/timestamptz.sql b/src/test/regress/sql/timestamptz.sql index 73c5bde5f3..6cac1a33c7 100644 --- a/src/test/regress/sql/timestamptz.sql +++ b/src/test/regress/sql/timestamptz.sql @@ -127,6 +127,14 @@ INSERT INTO TIMESTAMPTZ_TBL VALUES ('Jan 01 17:32:01 2001'); INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097'); INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC'); +-- Alternate field order that we've historically supported (sort of) +-- with regular and POSIXy timezone specs +SELECT 'Wed Jul 11 10:51:14 America/New_York 2001'::timestamptz; +SELECT 'Wed Jul 11 10:51:14 GMT-4 2001'::timestamptz; +SELECT 'Wed Jul 11 10:51:14 GMT+4 2001'::timestamptz; +SELECT 'Wed Jul 11 10:51:14 PST-03:00 2001'::timestamptz; +SELECT 'Wed Jul 11 10:51:14 PST+03:00 2001'::timestamptz; + SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL; -- Demonstrate functions and operators |
