diff -cr cvs/pgsql/src/test/regress/expected/horology.out cvs.build/pgsql/src/test/regress/expected/horology.out *** cvs/pgsql/src/test/regress/expected/horology.out 2006-04-17 23:05:02.000000000 +0200 --- cvs.build/pgsql/src/test/regress/expected/horology.out 2006-06-20 01:08:32.000000000 +0200 *************** *** 450,455 **** --- 450,456 ---- | Tue Feb 10 17:32:01 1998 | Tue Feb 10 17:32:01 1998 | Tue Feb 10 17:32:01 1998 + | Tue Feb 10 14:32:01 1998 | Wed Jun 10 18:32:01 1998 | Tue Feb 10 17:32:01 1998 | Wed Feb 11 17:32:01 1998 *************** *** 481,487 **** | Mon Jan 01 17:32:01 2001 | Mon Dec 31 17:32:01 2001 | Tue Jan 01 17:32:01 2002 ! (64 rows) SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL; 64 | one_year --- 482,488 ---- | Mon Jan 01 17:32:01 2001 | Mon Dec 31 17:32:01 2001 | Tue Jan 01 17:32:01 2002 ! (65 rows) SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL; 64 | one_year *************** *** 519,524 **** --- 520,526 ---- | Sat Feb 10 17:32:01 1996 | Sat Feb 10 17:32:01 1996 | Sat Feb 10 17:32:01 1996 + | Sat Feb 10 14:32:01 1996 | Mon Jun 10 18:32:01 1996 | Sat Feb 10 17:32:01 1996 | Sun Feb 11 17:32:01 1996 *************** *** 550,556 **** | Fri Jan 01 17:32:01 1999 | Fri Dec 31 17:32:01 1999 | Sat Jan 01 17:32:01 2000 ! (64 rows) SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29"; Feb 29 --- 552,558 ---- | Fri Jan 01 17:32:01 1999 | Fri Dec 31 17:32:01 1999 | Sat Jan 01 17:32:01 2000 ! (65 rows) SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29"; Feb 29 *************** *** 693,698 **** --- 695,702 ---- | Tue Feb 10 09:32:01 1998 PST | Tue Feb 10 09:32:01 1998 PST | Tue Feb 10 09:32:01 1998 PST + | Tue Feb 10 14:32:01 1998 PST + | Fri Jul 10 14:32:01 1998 PDT | Wed Jun 10 18:32:01 1998 PDT | Tue Feb 10 17:32:01 1998 PST | Wed Feb 11 17:32:01 1998 PST *************** *** 724,730 **** | Mon Jan 01 17:32:01 2001 PST | Mon Dec 31 17:32:01 2001 PST | Tue Jan 01 17:32:01 2002 PST ! (64 rows) SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL; 64 | one_year --- 728,734 ---- | Mon Jan 01 17:32:01 2001 PST | Mon Dec 31 17:32:01 2001 PST | Tue Jan 01 17:32:01 2002 PST ! (66 rows) SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL; 64 | one_year *************** *** 762,767 **** --- 766,773 ---- | Sat Feb 10 09:32:01 1996 PST | Sat Feb 10 09:32:01 1996 PST | Sat Feb 10 09:32:01 1996 PST + | Sat Feb 10 14:32:01 1996 PST + | Wed Jul 10 14:32:01 1996 PDT | Mon Jun 10 18:32:01 1996 PDT | Sat Feb 10 17:32:01 1996 PST | Sun Feb 11 17:32:01 1996 PST *************** *** 793,799 **** | Fri Jan 01 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999 PST | Sat Jan 01 17:32:01 2000 PST ! (64 rows) -- -- time, interval arithmetic --- 799,805 ---- | Fri Jan 01 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999 PST | Sat Jan 01 17:32:01 2000 PST ! (66 rows) -- -- time, interval arithmetic *************** *** 932,937 **** --- 938,945 ---- Mon Feb 10 22:32:01 1997 Mon Feb 10 17:33:01 1997 Mon Feb 10 22:32:01 1997 + Mon Feb 10 14:33:01 1997 + Mon Feb 10 19:32:01 1997 Tue Jun 10 18:33:01 1997 Tue Jun 10 23:32:01 1997 Mon Feb 10 17:33:01 1997 *************** *** 976,982 **** Sat Jan 01 22:32:01 2000 Sun Dec 31 17:33:01 2000 Sun Dec 31 22:32:01 2000 ! (102 rows) SELECT t.d1 - i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01' --- 984,990 ---- Sat Jan 01 22:32:01 2000 Sun Dec 31 17:33:01 2000 Sun Dec 31 22:32:01 2000 ! (104 rows) SELECT t.d1 - i.f1 AS "102" FROM TIMESTAMP_TBL t, INTERVAL_TBL i WHERE t.d1 BETWEEN '1990-01-01' AND '2001-01-01' *************** *** 1041,1046 **** --- 1049,1056 ---- Mon Feb 10 12:32:01 1997 Mon Feb 10 17:31:01 1997 Mon Feb 10 12:32:01 1997 + Mon Feb 10 14:31:01 1997 + Mon Feb 10 09:32:01 1997 Tue Jun 10 18:31:01 1997 Tue Jun 10 13:32:01 1997 Mon Feb 10 17:31:01 1997 *************** *** 1085,1091 **** Sat Jan 01 12:32:01 2000 Sun Dec 31 17:31:01 2000 Sun Dec 31 12:32:01 2000 ! (102 rows) SELECT t.f1 + i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; 80 --- 1095,1101 ---- Sat Jan 01 12:32:01 2000 Sun Dec 31 17:31:01 2000 Sun Dec 31 12:32:01 2000 ! (104 rows) SELECT t.f1 + i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; 80 *************** *** 1170,1176 **** 23:59:59.99 23:59:59.99 11:59:59.99 ! (80 rows) SELECT t.f1 - i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; 80 --- 1180,1206 ---- 23:59:59.99 23:59:59.99 11:59:59.99 ! 15:37:39 ! 20:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:25 ! 17:39:43 ! 15:36:39 ! 15:36:39 ! 03:36:39 ! 15:37:39 ! 20:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:25 ! 17:39:43 ! 15:36:39 ! 15:36:39 ! 03:36:39 ! (100 rows) SELECT t.f1 - i.f1 AS "80" FROM TIME_TBL t, INTERVAL_TBL i; 80 *************** *** 1255,1261 **** 23:59:59.99 23:59:59.99 11:59:59.99 ! (80 rows) SELECT t.f1 + i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i; 100 --- 1285,1311 ---- 23:59:59.99 23:59:59.99 11:59:59.99 ! 15:35:39 ! 10:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:53 ! 13:33:35 ! 15:36:39 ! 15:36:39 ! 03:36:39 ! 15:35:39 ! 10:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:39 ! 15:36:53 ! 13:33:35 ! 15:36:39 ! 15:36:39 ! 03:36:39 ! (100 rows) SELECT t.f1 + i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i; 100 *************** *** 1360,1366 **** 23:59:59.99-07 23:59:59.99-07 11:59:59.99-07 ! (100 rows) SELECT t.f1 - i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i; 100 --- 1410,1436 ---- 23:59:59.99-07 23:59:59.99-07 11:59:59.99-07 ! 15:37:39-05 ! 20:36:39-05 ! 15:36:39-05 ! 15:36:39-05 ! 15:36:39-05 ! 15:36:25-05 ! 17:39:43-05 ! 15:36:39-05 ! 15:36:39-05 ! 03:36:39-05 ! 15:37:39-04 ! 20:36:39-04 ! 15:36:39-04 ! 15:36:39-04 ! 15:36:39-04 ! 15:36:25-04 ! 17:39:43-04 ! 15:36:39-04 ! 15:36:39-04 ! 03:36:39-04 ! (120 rows) SELECT t.f1 - i.f1 AS "100" FROM TIMETZ_TBL t, INTERVAL_TBL i; 100 *************** *** 1465,1471 **** 23:59:59.99-07 23:59:59.99-07 11:59:59.99-07 ! (100 rows) -- SQL9x OVERLAPS operator -- test with time zone --- 1535,1561 ---- 23:59:59.99-07 23:59:59.99-07 11:59:59.99-07 ! 15:35:39-05 ! 10:36:39-05 ! 15:36:39-05 ! 15:36:39-05 ! 15:36:39-05 ! 15:36:53-05 ! 13:33:35-05 ! 15:36:39-05 ! 15:36:39-05 ! 03:36:39-05 ! 15:35:39-04 ! 10:36:39-04 ! 15:36:39-04 ! 15:36:39-04 ! 15:36:39-04 ! 15:36:53-04 ! 13:33:35-04 ! 15:36:39-04 ! 15:36:39-04 ! 03:36:39-04 ! (120 rows) -- SQL9x OVERLAPS operator -- test with time zone *************** *** 2450,2455 **** --- 2540,2546 ---- | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 + | Mon Feb 10 14:32:01 1997 | Tue Jun 10 18:32:01 1997 | Mon Feb 10 17:32:01 1997 | Tue Feb 11 17:32:01 1997 *************** *** 2481,2487 **** | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (64 rows) SELECT '' AS seven, f1 AS us_postgres FROM ABSTIME_TBL; seven | us_postgres --- 2572,2578 ---- | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (65 rows) SELECT '' AS seven, f1 AS us_postgres FROM ABSTIME_TBL; seven | us_postgres *************** *** 2532,2537 **** --- 2623,2629 ---- | 1997-02-10 17:32:01 | 1997-02-10 17:32:01 | 1997-02-10 17:32:01 + | 1997-02-10 14:32:01 | 1997-06-10 18:32:01 | 1997-02-10 17:32:01 | 1997-02-11 17:32:01 *************** *** 2563,2569 **** | 2000-01-01 17:32:01 | 2000-12-31 17:32:01 | 2001-01-01 17:32:01 ! (64 rows) SELECT '' AS seven, f1 AS us_iso FROM ABSTIME_TBL; seven | us_iso --- 2655,2661 ---- | 2000-01-01 17:32:01 | 2000-12-31 17:32:01 | 2001-01-01 17:32:01 ! (65 rows) SELECT '' AS seven, f1 AS us_iso FROM ABSTIME_TBL; seven | us_iso *************** *** 2620,2625 **** --- 2712,2718 ---- | 02/10/1997 17:32:01 | 02/10/1997 17:32:01 | 02/10/1997 17:32:01 + | 02/10/1997 14:32:01 | 06/10/1997 18:32:01 | 02/10/1997 17:32:01 | 02/11/1997 17:32:01 *************** *** 2651,2657 **** | 01/01/2000 17:32:01 | 12/31/2000 17:32:01 | 01/01/2001 17:32:01 ! (64 rows) SELECT '' AS seven, f1 AS us_sql FROM ABSTIME_TBL; seven | us_sql --- 2744,2750 ---- | 01/01/2000 17:32:01 | 12/31/2000 17:32:01 | 01/01/2001 17:32:01 ! (65 rows) SELECT '' AS seven, f1 AS us_sql FROM ABSTIME_TBL; seven | us_sql *************** *** 2715,2720 **** --- 2808,2814 ---- | Mon 10 Feb 17:32:01 1997 | Mon 10 Feb 17:32:01 1997 | Mon 10 Feb 17:32:01 1997 + | Mon 10 Feb 14:32:01 1997 | Tue 10 Jun 18:32:01 1997 | Mon 10 Feb 17:32:01 1997 | Tue 11 Feb 17:32:01 1997 *************** *** 2747,2753 **** | Sun 31 Dec 17:32:01 2000 | Mon 01 Jan 17:32:01 2001 | Thu 13 Jun 00:00:00 1957 ! (65 rows) SELECT '' AS seven, f1 AS european_postgres FROM ABSTIME_TBL; seven | european_postgres --- 2841,2847 ---- | Sun 31 Dec 17:32:01 2000 | Mon 01 Jan 17:32:01 2001 | Thu 13 Jun 00:00:00 1957 ! (66 rows) SELECT '' AS seven, f1 AS european_postgres FROM ABSTIME_TBL; seven | european_postgres *************** *** 2804,2809 **** --- 2898,2904 ---- | 1997-02-10 17:32:01 | 1997-02-10 17:32:01 | 1997-02-10 17:32:01 + | 1997-02-10 14:32:01 | 1997-06-10 18:32:01 | 1997-02-10 17:32:01 | 1997-02-11 17:32:01 *************** *** 2836,2842 **** | 2000-12-31 17:32:01 | 2001-01-01 17:32:01 | 1957-06-13 00:00:00 ! (65 rows) SELECT '' AS seven, f1 AS european_iso FROM ABSTIME_TBL; seven | european_iso --- 2931,2937 ---- | 2000-12-31 17:32:01 | 2001-01-01 17:32:01 | 1957-06-13 00:00:00 ! (66 rows) SELECT '' AS seven, f1 AS european_iso FROM ABSTIME_TBL; seven | european_iso *************** *** 2893,2898 **** --- 2988,2994 ---- | 10/02/1997 17:32:01 | 10/02/1997 17:32:01 | 10/02/1997 17:32:01 + | 10/02/1997 14:32:01 | 10/06/1997 18:32:01 | 10/02/1997 17:32:01 | 11/02/1997 17:32:01 *************** *** 2925,2931 **** | 31/12/2000 17:32:01 | 01/01/2001 17:32:01 | 13/06/1957 00:00:00 ! (65 rows) SELECT '' AS seven, f1 AS european_sql FROM ABSTIME_TBL; seven | european_sql --- 3021,3027 ---- | 31/12/2000 17:32:01 | 01/01/2001 17:32:01 | 13/06/1957 00:00:00 ! (66 rows) SELECT '' AS seven, f1 AS european_sql FROM ABSTIME_TBL; seven | european_sql diff -cr cvs/pgsql/src/test/regress/expected/time.out cvs.build/pgsql/src/test/regress/expected/time.out *** cvs/pgsql/src/test/regress/expected/time.out 2006-03-24 08:11:26.000000000 +0100 --- cvs.build/pgsql/src/test/regress/expected/time.out 2006-06-20 01:08:32.000000000 +0200 *************** *** 11,16 **** --- 11,21 ---- INSERT INTO TIME_TBL VALUES ('12:01'); INSERT INTO TIME_TBL VALUES ('23:59'); INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM'); + INSERT INTO TIME_TBL VALUES ('2003-03-07 15:36:39 America/New_York'); + INSERT INTO TIME_TBL VALUES ('2003-07-07 15:36:39 America/New_York'); + -- this should fail (the timezone offset is not known) + INSERT INTO TIME_TBL VALUES ('15:36:39 America/New_York'); + ERROR: invalid input syntax for type time: "15:36:39 America/New_York" SELECT f1 AS "Time" FROM TIME_TBL; Time ------------- *************** *** 22,28 **** 12:01:00 23:59:00 23:59:59.99 ! (8 rows) SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07'; Three --- 27,35 ---- 12:01:00 23:59:00 23:59:59.99 ! 15:36:39 ! 15:36:39 ! (10 rows) SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07'; Three *************** *** 40,46 **** 12:01:00 23:59:00 23:59:59.99 ! (5 rows) SELECT f1 AS "None" FROM TIME_TBL WHERE f1 < '00:00'; None --- 47,55 ---- 12:01:00 23:59:00 23:59:59.99 ! 15:36:39 ! 15:36:39 ! (7 rows) SELECT f1 AS "None" FROM TIME_TBL WHERE f1 < '00:00'; None *************** *** 58,64 **** 12:01:00 23:59:00 23:59:59.99 ! (8 rows) -- -- TIME simple math --- 67,75 ---- 12:01:00 23:59:00 23:59:59.99 ! 15:36:39 ! 15:36:39 ! (10 rows) -- -- TIME simple math diff -cr cvs/pgsql/src/test/regress/expected/timestamp.out cvs.build/pgsql/src/test/regress/expected/timestamp.out *** cvs/pgsql/src/test/regress/expected/timestamp.out 2005-06-26 05:04:18.000000000 +0200 --- cvs.build/pgsql/src/test/regress/expected/timestamp.out 2006-06-20 01:08:32.000000000 +0200 *************** *** 102,107 **** --- 102,111 ---- INSERT INTO TIMESTAMP_TBL VALUES ('97/02/10 17:32:01 UTC'); reset datestyle; INSERT INTO TIMESTAMP_TBL VALUES ('1997.041 17:32:01 UTC'); + INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 America/New_York'); + -- this fails + INSERT INTO TIMESTAMP_TBL VALUES ('19970710 173201 America/Does_not_exist'); + ERROR: time zone "America/Does_not_exist" not recognized -- Check date conversion and date arithmetic INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 18:32:01 PDT'); INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997'); *************** *** 177,182 **** --- 181,187 ---- | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 + | Mon Feb 10 14:32:01 1997 | Tue Jun 10 18:32:01 1997 | Mon Feb 10 17:32:01 1997 | Tue Feb 11 17:32:01 1997 *************** *** 208,214 **** | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (64 rows) -- Demonstrate functions and operators SELECT '' AS "48", d1 FROM TIMESTAMP_TBL --- 213,219 ---- | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (65 rows) -- Demonstrate functions and operators SELECT '' AS "48", d1 FROM TIMESTAMP_TBL *************** *** 245,250 **** --- 250,256 ---- | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 + | Mon Feb 10 14:32:01 1997 | Tue Jun 10 18:32:01 1997 | Mon Feb 10 17:32:01 1997 | Tue Feb 11 17:32:01 1997 *************** *** 263,269 **** | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (48 rows) SELECT '' AS "15", d1 FROM TIMESTAMP_TBL WHERE d1 < timestamp without time zone '1997-01-02'; --- 269,275 ---- | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (49 rows) SELECT '' AS "15", d1 FROM TIMESTAMP_TBL WHERE d1 < timestamp without time zone '1997-01-02'; *************** *** 329,334 **** --- 335,341 ---- | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 + | Mon Feb 10 14:32:01 1997 | Tue Jun 10 18:32:01 1997 | Mon Feb 10 17:32:01 1997 | Tue Feb 11 17:32:01 1997 *************** *** 360,366 **** | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (63 rows) SELECT '' AS "16", d1 FROM TIMESTAMP_TBL WHERE d1 <= timestamp without time zone '1997-01-02'; --- 367,373 ---- | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (64 rows) SELECT '' AS "16", d1 FROM TIMESTAMP_TBL WHERE d1 <= timestamp without time zone '1997-01-02'; *************** *** 419,424 **** --- 426,432 ---- | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 | Mon Feb 10 17:32:01 1997 + | Mon Feb 10 14:32:01 1997 | Tue Jun 10 18:32:01 1997 | Mon Feb 10 17:32:01 1997 | Tue Feb 11 17:32:01 1997 *************** *** 437,443 **** | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (49 rows) SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; --- 445,451 ---- | Sat Jan 01 17:32:01 2000 | Sun Dec 31 17:32:01 2000 | Mon Jan 01 17:32:01 2001 ! (50 rows) SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; *************** *** 474,479 **** --- 482,488 ---- | @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec + | @ 39 days 14 hours 32 mins 1 sec | @ 159 days 18 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec | @ 40 days 17 hours 32 mins 1 sec *************** *** 497,503 **** | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (54 rows) SELECT '' AS date_trunc_week, date_trunc( 'week', timestamp '2004-02-29 15:44:17.71393' ) AS week_trunc; date_trunc_week | week_trunc --- 506,512 ---- | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (55 rows) SELECT '' AS date_trunc_week, date_trunc( 'week', timestamp '2004-02-29 15:44:17.71393' ) AS week_trunc; date_trunc_week | week_trunc *************** *** 543,548 **** --- 552,558 ---- | @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec + | @ 39 days 14 hours 32 mins 1 sec | @ 159 days 18 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec | @ 40 days 17 hours 32 mins 1 sec *************** *** 566,572 **** | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (54 rows) SELECT '' AS "54", d1 as "timestamp", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, --- 576,582 ---- | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (55 rows) SELECT '' AS "54", d1 as "timestamp", date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, *************** *** 606,611 **** --- 616,622 ---- | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 + | Mon Feb 10 14:32:01 1997 | 1997 | 2 | 10 | 14 | 32 | 1 | Tue Jun 10 18:32:01 1997 | 1997 | 6 | 10 | 18 | 32 | 1 | Mon Feb 10 17:32:01 1997 | 1997 | 2 | 10 | 17 | 32 | 1 | Tue Feb 11 17:32:01 1997 | 1997 | 2 | 11 | 17 | 32 | 1 *************** *** 629,635 **** | Sat Jan 01 17:32:01 2000 | 2000 | 1 | 1 | 17 | 32 | 1 | Sun Dec 31 17:32:01 2000 | 2000 | 12 | 31 | 17 | 32 | 1 | Mon Jan 01 17:32:01 2001 | 2001 | 1 | 1 | 17 | 32 | 1 ! (54 rows) SELECT '' AS "54", d1 as "timestamp", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, --- 640,646 ---- | Sat Jan 01 17:32:01 2000 | 2000 | 1 | 1 | 17 | 32 | 1 | Sun Dec 31 17:32:01 2000 | 2000 | 12 | 31 | 17 | 32 | 1 | Mon Jan 01 17:32:01 2001 | 2001 | 1 | 1 | 17 | 32 | 1 ! (55 rows) SELECT '' AS "54", d1 as "timestamp", date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, *************** *** 668,673 **** --- 679,685 ---- | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 + | Mon Feb 10 14:32:01 1997 | 1 | 1000 | 1000000 | Tue Jun 10 18:32:01 1997 | 2 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 | 1 | 1000 | 1000000 | Tue Feb 11 17:32:01 1997 | 1 | 1000 | 1000000 *************** *** 691,697 **** | Sat Jan 01 17:32:01 2000 | 1 | 1000 | 1000000 | Sun Dec 31 17:32:01 2000 | 4 | 1000 | 1000000 | Mon Jan 01 17:32:01 2001 | 1 | 1000 | 1000000 ! (54 rows) -- TO_CHAR() SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon') --- 703,709 ---- | Sat Jan 01 17:32:01 2000 | 1 | 1000 | 1000000 | Sun Dec 31 17:32:01 2000 | 4 | 1000 | 1000000 | Mon Jan 01 17:32:01 2001 | 1 | 1000 | 1000000 ! (55 rows) -- TO_CHAR() SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon') *************** *** 731,736 **** --- 743,749 ---- | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb + | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb *************** *** 762,768 **** | SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan | SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec | MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan ! (64 rows) SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM') FROM TIMESTAMP_TBL; --- 775,781 ---- | SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan | SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec | MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan ! (65 rows) SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM') FROM TIMESTAMP_TBL; *************** *** 801,806 **** --- 814,820 ---- | MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II + | MONDAY Monday monday FEBRUARY February february II | TUESDAY Tuesday tuesday JUNE June june VI | MONDAY Monday monday FEBRUARY February february II | TUESDAY Tuesday tuesday FEBRUARY February february II *************** *** 832,838 **** | SATURDAY Saturday saturday JANUARY January january I | SUNDAY Sunday sunday DECEMBER December december XII | MONDAY Monday monday JANUARY January january I ! (64 rows) SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') FROM TIMESTAMP_TBL; --- 846,852 ---- | SATURDAY Saturday saturday JANUARY January january I | SUNDAY Sunday sunday DECEMBER December december XII | MONDAY Monday monday JANUARY January january I ! (65 rows) SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') FROM TIMESTAMP_TBL; *************** *** 871,876 **** --- 885,891 ---- | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 + | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 042 11 3 2450491 *************** *** 902,908 **** | 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911 ! (64 rows) SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ') FROM TIMESTAMP_TBL; --- 917,923 ---- | 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911 ! (65 rows) SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ') FROM TIMESTAMP_TBL; *************** *** 941,946 **** --- 956,962 ---- | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 + | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 42 11 3 2450491 *************** *** 972,978 **** | 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911 ! (64 rows) SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') FROM TIMESTAMP_TBL; --- 988,994 ---- | 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911 ! (65 rows) SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') FROM TIMESTAMP_TBL; *************** *** 1011,1016 **** --- 1027,1033 ---- | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 + | 02 02 14 32 01 52321 | 06 06 18 32 01 66721 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 *************** *** 1042,1048 **** | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 ! (64 rows) SELECT '' AS to_char_6, to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""') FROM TIMESTAMP_TBL; --- 1059,1065 ---- | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 ! (65 rows) SELECT '' AS to_char_6, to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""') FROM TIMESTAMP_TBL; *************** *** 1081,1086 **** --- 1098,1104 ---- | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" + | HH:MI:SS is 02:32:01 "text between quote marks" | HH:MI:SS is 06:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" *************** *** 1112,1118 **** | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" ! (64 rows) SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') FROM TIMESTAMP_TBL; --- 1130,1136 ---- | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" ! (65 rows) SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') FROM TIMESTAMP_TBL; *************** *** 1151,1156 **** --- 1169,1175 ---- | 17--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 + | 14--text--32--text--01 | 18--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 *************** *** 1182,1188 **** | 17--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 ! (64 rows) SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') FROM TIMESTAMP_TBL; --- 1201,1207 ---- | 17--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 ! (65 rows) SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') FROM TIMESTAMP_TBL; *************** *** 1221,1226 **** --- 1240,1246 ---- | 1997TH 1997th 2450490th | 1997TH 1997th 2450490th | 1997TH 1997th 2450490th + | 1997TH 1997th 2450490th | 1997TH 1997th 2450610th | 1997TH 1997th 2450490th | 1997TH 1997th 2450491st *************** *** 1252,1258 **** | 2000TH 2000th 2451545th | 2000TH 2000th 2451910th | 2001ST 2001st 2451911th ! (64 rows) SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm') --- 1272,1278 ---- | 2000TH 2000th 2451545th | 2000TH 2000th 2451910th | 2001ST 2001st 2451911th ! (65 rows) SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm') *************** *** 1292,1297 **** --- 1312,1318 ---- | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm + | 1997 A.D. 1997 a.d. 1997 ad 02:32:01 P.M. 02:32:01 p.m. 02:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm *************** *** 1323,1329 **** | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm ! (64 rows) -- TO_TIMESTAMP() SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS'); --- 1344,1350 ---- | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm ! (65 rows) -- TO_TIMESTAMP() SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS'); diff -cr cvs/pgsql/src/test/regress/expected/timestamptz.out cvs.build/pgsql/src/test/regress/expected/timestamptz.out *** cvs/pgsql/src/test/regress/expected/timestamptz.out 2005-06-26 05:04:18.000000000 +0200 --- cvs.build/pgsql/src/test/regress/expected/timestamptz.out 2006-06-20 01:08:32.000000000 +0200 *************** *** 97,102 **** --- 97,121 ---- INSERT INTO TIMESTAMPTZ_TBL VALUES ('97/02/10 17:32:01 UTC'); reset datestyle; INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997.041 17:32:01 UTC'); + -- timestamps at different timezones + INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 America/New_York'); + SELECT '19970210 173201' AT TIME ZONE 'America/New_York'; + timezone + -------------------------- + Mon Feb 10 20:32:01 1997 + (1 row) + + INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/New_York'); + SELECT '19970710 173201' AT TIME ZONE 'America/New_York'; + timezone + -------------------------- + Thu Jul 10 20:32:01 1997 + (1 row) + + INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/Does_not_exist'); + ERROR: time zone "America/Does_not_exist" not recognized + SELECT '19970710 173201' AT TIME ZONE 'America/Does_not_exist'; + ERROR: time zone "America/Does_not_exist" not recognized -- Check date conversion and date arithmetic INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 18:32:01 PDT'); INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 10 17:32:01 1997'); *************** *** 172,177 **** --- 191,198 ---- | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST + | Mon Feb 10 14:32:01 1997 PST + | Thu Jul 10 14:32:01 1997 PDT | Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997 PST *************** *** 203,209 **** | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (64 rows) -- Demonstrate functions and operators SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL --- 224,230 ---- | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (66 rows) -- Demonstrate functions and operators SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL *************** *** 240,245 **** --- 261,268 ---- | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST + | Mon Feb 10 14:32:01 1997 PST + | Thu Jul 10 14:32:01 1997 PDT | Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997 PST *************** *** 258,264 **** | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (48 rows) SELECT '' AS "15", d1 FROM TIMESTAMPTZ_TBL WHERE d1 < timestamp with time zone '1997-01-02'; --- 281,287 ---- | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (50 rows) SELECT '' AS "15", d1 FROM TIMESTAMPTZ_TBL WHERE d1 < timestamp with time zone '1997-01-02'; *************** *** 324,329 **** --- 347,354 ---- | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST + | Mon Feb 10 14:32:01 1997 PST + | Thu Jul 10 14:32:01 1997 PDT | Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997 PST *************** *** 355,361 **** | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (63 rows) SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL WHERE d1 <= timestamp with time zone '1997-01-02'; --- 380,386 ---- | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (65 rows) SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL WHERE d1 <= timestamp with time zone '1997-01-02'; *************** *** 414,419 **** --- 439,446 ---- | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST | Mon Feb 10 09:32:01 1997 PST + | Mon Feb 10 14:32:01 1997 PST + | Thu Jul 10 14:32:01 1997 PDT | Tue Jun 10 18:32:01 1997 PDT | Mon Feb 10 17:32:01 1997 PST | Tue Feb 11 17:32:01 1997 PST *************** *** 432,438 **** | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (49 rows) SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; --- 459,465 ---- | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST ! (51 rows) SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; *************** *** 469,474 **** --- 496,503 ---- | @ 39 days 9 hours 32 mins 1 sec | @ 39 days 9 hours 32 mins 1 sec | @ 39 days 9 hours 32 mins 1 sec + | @ 39 days 14 hours 32 mins 1 sec + | @ 189 days 13 hours 32 mins 1 sec | @ 159 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec | @ 40 days 17 hours 32 mins 1 sec *************** *** 492,498 **** | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (54 rows) SELECT '' AS date_trunc_week, date_trunc( 'week', timestamp with time zone '2004-02-29 15:44:17.71393' ) AS week_trunc; date_trunc_week | week_trunc --- 521,527 ---- | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (56 rows) SELECT '' AS date_trunc_week, date_trunc( 'week', timestamp with time zone '2004-02-29 15:44:17.71393' ) AS week_trunc; date_trunc_week | week_trunc *************** *** 537,542 **** --- 566,573 ---- | @ 39 days 9 hours 32 mins 1 sec | @ 39 days 9 hours 32 mins 1 sec | @ 39 days 9 hours 32 mins 1 sec + | @ 39 days 14 hours 32 mins 1 sec + | @ 189 days 13 hours 32 mins 1 sec | @ 159 days 17 hours 32 mins 1 sec | @ 39 days 17 hours 32 mins 1 sec | @ 40 days 17 hours 32 mins 1 sec *************** *** 560,566 **** | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (54 rows) SELECT '' AS "54", d1 as timestamptz, date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, --- 591,597 ---- | @ 1094 days 17 hours 32 mins 1 sec | @ 1459 days 17 hours 32 mins 1 sec | @ 1460 days 17 hours 32 mins 1 sec ! (56 rows) SELECT '' AS "54", d1 as timestamptz, date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, *************** *** 600,605 **** --- 631,638 ---- | Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1 | Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1 | Mon Feb 10 09:32:01 1997 PST | 1997 | 2 | 10 | 9 | 32 | 1 + | Mon Feb 10 14:32:01 1997 PST | 1997 | 2 | 10 | 14 | 32 | 1 + | Thu Jul 10 14:32:01 1997 PDT | 1997 | 7 | 10 | 14 | 32 | 1 | Tue Jun 10 18:32:01 1997 PDT | 1997 | 6 | 10 | 18 | 32 | 1 | Mon Feb 10 17:32:01 1997 PST | 1997 | 2 | 10 | 17 | 32 | 1 | Tue Feb 11 17:32:01 1997 PST | 1997 | 2 | 11 | 17 | 32 | 1 *************** *** 623,629 **** | Sat Jan 01 17:32:01 2000 PST | 2000 | 1 | 1 | 17 | 32 | 1 | Sun Dec 31 17:32:01 2000 PST | 2000 | 12 | 31 | 17 | 32 | 1 | Mon Jan 01 17:32:01 2001 PST | 2001 | 1 | 1 | 17 | 32 | 1 ! (54 rows) SELECT '' AS "54", d1 as timestamptz, date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, --- 656,662 ---- | Sat Jan 01 17:32:01 2000 PST | 2000 | 1 | 1 | 17 | 32 | 1 | Sun Dec 31 17:32:01 2000 PST | 2000 | 12 | 31 | 17 | 32 | 1 | Mon Jan 01 17:32:01 2001 PST | 2001 | 1 | 1 | 17 | 32 | 1 ! (56 rows) SELECT '' AS "54", d1 as timestamptz, date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec, *************** *** 662,667 **** --- 695,702 ---- | Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000 | Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000 | Mon Feb 10 09:32:01 1997 PST | 1 | 1000 | 1000000 + | Mon Feb 10 14:32:01 1997 PST | 1 | 1000 | 1000000 + | Thu Jul 10 14:32:01 1997 PDT | 3 | 1000 | 1000000 | Tue Jun 10 18:32:01 1997 PDT | 2 | 1000 | 1000000 | Mon Feb 10 17:32:01 1997 PST | 1 | 1000 | 1000000 | Tue Feb 11 17:32:01 1997 PST | 1 | 1000 | 1000000 *************** *** 685,691 **** | Sat Jan 01 17:32:01 2000 PST | 1 | 1000 | 1000000 | Sun Dec 31 17:32:01 2000 PST | 4 | 1000 | 1000000 | Mon Jan 01 17:32:01 2001 PST | 1 | 1000 | 1000000 ! (54 rows) -- TO_CHAR() SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon') --- 720,726 ---- | Sat Jan 01 17:32:01 2000 PST | 1 | 1000 | 1000000 | Sun Dec 31 17:32:01 2000 PST | 4 | 1000 | 1000000 | Mon Jan 01 17:32:01 2001 PST | 1 | 1000 | 1000000 ! (56 rows) -- TO_CHAR() SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon') *************** *** 725,730 **** --- 760,767 ---- | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb + | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb + | THURSDAY Thursday thursday THU Thu thu JULY July july VII JUL Jul jul | TUESDAY Tuesday tuesday TUE Tue tue JUNE June june VI JUN Jun jun | MONDAY Monday monday MON Mon mon FEBRUARY February february II FEB Feb feb | TUESDAY Tuesday tuesday TUE Tue tue FEBRUARY February february II FEB Feb feb *************** *** 756,762 **** | SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan | SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec | MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan ! (64 rows) SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM') --- 793,799 ---- | SATURDAY Saturday saturday SAT Sat sat JANUARY January january I JAN Jan jan | SUNDAY Sunday sunday SUN Sun sun DECEMBER December december XII DEC Dec dec | MONDAY Monday monday MON Mon mon JANUARY January january I JAN Jan jan ! (66 rows) SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM') *************** *** 796,801 **** --- 833,840 ---- | MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II | MONDAY Monday monday FEBRUARY February february II + | MONDAY Monday monday FEBRUARY February february II + | THURSDAY Thursday thursday JULY July july VII | TUESDAY Tuesday tuesday JUNE June june VI | MONDAY Monday monday FEBRUARY February february II | TUESDAY Tuesday tuesday FEBRUARY February february II *************** *** 827,833 **** | SATURDAY Saturday saturday JANUARY January january I | SUNDAY Sunday sunday DECEMBER December december XII | MONDAY Monday monday JANUARY January january I ! (64 rows) SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') FROM TIMESTAMPTZ_TBL; --- 866,872 ---- | SATURDAY Saturday saturday JANUARY January january I | SUNDAY Sunday sunday DECEMBER December december XII | MONDAY Monday monday JANUARY January january I ! (66 rows) SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J') FROM TIMESTAMPTZ_TBL; *************** *** 866,871 **** --- 905,912 ---- | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 + | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 + | 1,997 1997 997 97 7 20 3 07 28 191 10 5 2450640 | 1,997 1997 997 97 7 20 2 06 23 161 10 3 2450610 | 1,997 1997 997 97 7 20 1 02 06 041 10 2 2450490 | 1,997 1997 997 97 7 20 1 02 06 042 11 3 2450491 *************** *** 897,903 **** | 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911 ! (64 rows) SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ') --- 938,944 ---- | 2,000 2000 000 00 0 21 1 01 01 001 01 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 01 01 001 01 2 2451911 ! (66 rows) SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ') *************** *** 937,942 **** --- 978,985 ---- | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 + | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 + | 1,997 1997 997 97 7 20 3 7 28 191 10 5 2450640 | 1,997 1997 997 97 7 20 2 6 23 161 10 3 2450610 | 1,997 1997 997 97 7 20 1 2 6 41 10 2 2450490 | 1,997 1997 997 97 7 20 1 2 6 42 11 3 2450491 *************** *** 968,974 **** | 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911 ! (64 rows) SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') --- 1011,1017 ---- | 2,000 2000 000 00 0 21 1 1 1 1 1 7 2451545 | 2,000 2000 000 00 0 21 4 12 53 366 31 1 2451910 | 2,001 2001 001 01 1 21 1 1 1 1 1 2 2451911 ! (66 rows) SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS') *************** *** 1008,1013 **** --- 1051,1058 ---- | 09 09 09 32 01 34321 | 09 09 09 32 01 34321 | 09 09 09 32 01 34321 + | 02 02 14 32 01 52321 + | 02 02 14 32 01 52321 | 06 06 18 32 01 66721 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 *************** *** 1039,1045 **** | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 ! (64 rows) SELECT '' AS to_char_6, to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""') FROM TIMESTAMPTZ_TBL; --- 1084,1090 ---- | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 | 05 05 17 32 01 63121 ! (66 rows) SELECT '' AS to_char_6, to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""') FROM TIMESTAMPTZ_TBL; *************** *** 1078,1083 **** --- 1123,1130 ---- | HH:MI:SS is 09:32:01 "text between quote marks" | HH:MI:SS is 09:32:01 "text between quote marks" | HH:MI:SS is 09:32:01 "text between quote marks" + | HH:MI:SS is 02:32:01 "text between quote marks" + | HH:MI:SS is 02:32:01 "text between quote marks" | HH:MI:SS is 06:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" *************** *** 1109,1115 **** | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" ! (64 rows) SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') --- 1156,1162 ---- | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" | HH:MI:SS is 05:32:01 "text between quote marks" ! (66 rows) SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS') *************** *** 1149,1154 **** --- 1196,1203 ---- | 09--text--32--text--01 | 09--text--32--text--01 | 09--text--32--text--01 + | 14--text--32--text--01 + | 14--text--32--text--01 | 18--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 *************** *** 1180,1186 **** | 17--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 ! (64 rows) SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') FROM TIMESTAMPTZ_TBL; --- 1229,1235 ---- | 17--text--32--text--01 | 17--text--32--text--01 | 17--text--32--text--01 ! (66 rows) SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth') FROM TIMESTAMPTZ_TBL; *************** *** 1219,1224 **** --- 1268,1275 ---- | 1997TH 1997th 2450490th | 1997TH 1997th 2450490th | 1997TH 1997th 2450490th + | 1997TH 1997th 2450490th + | 1997TH 1997th 2450640th | 1997TH 1997th 2450610th | 1997TH 1997th 2450490th | 1997TH 1997th 2450491st *************** *** 1250,1256 **** | 2000TH 2000th 2451545th | 2000TH 2000th 2451910th | 2001ST 2001st 2451911th ! (64 rows) SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm') --- 1301,1307 ---- | 2000TH 2000th 2451545th | 2000TH 2000th 2451910th | 2001ST 2001st 2451911th ! (66 rows) SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm') *************** *** 1290,1295 **** --- 1341,1348 ---- | 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am | 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am | 1997 A.D. 1997 a.d. 1997 ad 09:32:01 A.M. 09:32:01 a.m. 09:32:01 am + | 1997 A.D. 1997 a.d. 1997 ad 02:32:01 P.M. 02:32:01 p.m. 02:32:01 pm + | 1997 A.D. 1997 a.d. 1997 ad 02:32:01 P.M. 02:32:01 p.m. 02:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 06:32:01 P.M. 06:32:01 p.m. 06:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 1997 A.D. 1997 a.d. 1997 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm *************** *** 1321,1327 **** | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm ! (64 rows) SELECT '' AS to_char_10, to_char(d1, 'YYYY WW IYYY IYY IY I IW') FROM TIMESTAMPTZ_TBL; --- 1374,1380 ---- | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2000 A.D. 2000 a.d. 2000 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm | 2001 A.D. 2001 a.d. 2001 ad 05:32:01 P.M. 05:32:01 p.m. 05:32:01 pm ! (66 rows) SELECT '' AS to_char_10, to_char(d1, 'YYYY WW IYYY IYY IY I IW') FROM TIMESTAMPTZ_TBL; *************** *** 1360,1365 **** --- 1413,1420 ---- | 1997 06 1997 997 97 7 07 | 1997 06 1997 997 97 7 07 | 1997 06 1997 997 97 7 07 + | 1997 06 1997 997 97 7 07 + | 1997 28 1997 997 97 7 28 | 1997 23 1997 997 97 7 24 | 1997 06 1997 997 97 7 07 | 1997 06 1997 997 97 7 07 *************** *** 1391,1397 **** | 2000 01 1999 999 99 9 52 | 2000 53 2000 000 00 0 52 | 2001 01 2001 001 01 1 01 ! (64 rows) -- TO_TIMESTAMP() SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS'); --- 1446,1452 ---- | 2000 01 1999 999 99 9 52 | 2000 53 2000 000 00 0 52 | 2001 01 2001 001 01 1 01 ! (66 rows) -- TO_TIMESTAMP() SELECT '' AS to_timestamp_1, to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS'); diff -cr cvs/pgsql/src/test/regress/expected/timetz.out cvs.build/pgsql/src/test/regress/expected/timetz.out *** cvs/pgsql/src/test/regress/expected/timetz.out 2006-03-24 08:11:26.000000000 +0100 --- cvs.build/pgsql/src/test/regress/expected/timetz.out 2006-06-20 01:08:32.000000000 +0200 *************** *** 12,17 **** --- 12,22 ---- INSERT INTO TIMETZ_TBL VALUES ('12:01 PDT'); INSERT INTO TIMETZ_TBL VALUES ('23:59 PDT'); INSERT INTO TIMETZ_TBL VALUES ('11:59:59.99 PM PDT'); + INSERT INTO TIMETZ_TBL VALUES ('2003-03-07 15:36:39 America/New_York'); + INSERT INTO TIMETZ_TBL VALUES ('2003-07-07 15:36:39 America/New_York'); + -- this should fail (the timezone offset is not known) + INSERT INTO TIMETZ_TBL VALUES ('15:36:39 America/New_York'); + ERROR: invalid input syntax for type time with time zone: "15:36:39 America/New_York" SELECT f1 AS "Time TZ" FROM TIMETZ_TBL; Time TZ ---------------- *************** *** 25,31 **** 12:01:00-07 23:59:00-07 23:59:59.99-07 ! (10 rows) SELECT f1 AS "Three" FROM TIMETZ_TBL WHERE f1 < '05:06:07-07'; Three --- 30,38 ---- 12:01:00-07 23:59:00-07 23:59:59.99-07 ! 15:36:39-05 ! 15:36:39-04 ! (12 rows) SELECT f1 AS "Three" FROM TIMETZ_TBL WHERE f1 < '05:06:07-07'; Three *************** *** 45,51 **** 12:01:00-07 23:59:00-07 23:59:59.99-07 ! (7 rows) SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07'; None --- 52,60 ---- 12:01:00-07 23:59:00-07 23:59:59.99-07 ! 15:36:39-05 ! 15:36:39-04 ! (9 rows) SELECT f1 AS "None" FROM TIMETZ_TBL WHERE f1 < '00:00-07'; None *************** *** 65,71 **** 12:01:00-07 23:59:00-07 23:59:59.99-07 ! (10 rows) -- -- TIME simple math --- 74,82 ---- 12:01:00-07 23:59:00-07 23:59:59.99-07 ! 15:36:39-05 ! 15:36:39-04 ! (12 rows) -- -- TIME simple math diff -cr cvs/pgsql/src/test/regress/sql/time.sql cvs.build/pgsql/src/test/regress/sql/time.sql *** cvs/pgsql/src/test/regress/sql/time.sql 2003-01-31 02:08:08.000000000 +0100 --- cvs.build/pgsql/src/test/regress/sql/time.sql 2006-06-20 00:58:24.000000000 +0200 *************** *** 14,19 **** --- 14,25 ---- INSERT INTO TIME_TBL VALUES ('23:59'); INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM'); + INSERT INTO TIME_TBL VALUES ('2003-03-07 15:36:39 America/New_York'); + INSERT INTO TIME_TBL VALUES ('2003-07-07 15:36:39 America/New_York'); + -- this should fail (the timezone offset is not known) + INSERT INTO TIME_TBL VALUES ('15:36:39 America/New_York'); + + SELECT f1 AS "Time" FROM TIME_TBL; SELECT f1 AS "Three" FROM TIME_TBL WHERE f1 < '05:06:07'; diff -cr cvs/pgsql/src/test/regress/sql/timestamp.sql cvs.build/pgsql/src/test/regress/sql/timestamp.sql *** cvs/pgsql/src/test/regress/sql/timestamp.sql 2005-06-26 05:04:37.000000000 +0200 --- cvs.build/pgsql/src/test/regress/sql/timestamp.sql 2006-06-20 00:58:24.000000000 +0200 *************** *** 86,91 **** --- 86,96 ---- reset datestyle; INSERT INTO TIMESTAMP_TBL VALUES ('1997.041 17:32:01 UTC'); + INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 America/New_York'); + -- this fails + INSERT INTO TIMESTAMP_TBL VALUES ('19970710 173201 America/Does_not_exist'); + + -- Check date conversion and date arithmetic INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 18:32:01 PDT'); diff -cr cvs/pgsql/src/test/regress/sql/timestamptz.sql cvs.build/pgsql/src/test/regress/sql/timestamptz.sql *** cvs/pgsql/src/test/regress/sql/timestamptz.sql 2005-06-26 05:04:37.000000000 +0200 --- cvs.build/pgsql/src/test/regress/sql/timestamptz.sql 2006-06-20 00:58:24.000000000 +0200 *************** *** 80,85 **** --- 80,93 ---- reset datestyle; INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997.041 17:32:01 UTC'); + -- timestamps at different timezones + INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970210 173201 America/New_York'); + SELECT '19970210 173201' AT TIME ZONE 'America/New_York'; + INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/New_York'); + SELECT '19970710 173201' AT TIME ZONE 'America/New_York'; + INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/Does_not_exist'); + SELECT '19970710 173201' AT TIME ZONE 'America/Does_not_exist'; + -- Check date conversion and date arithmetic INSERT INTO TIMESTAMPTZ_TBL VALUES ('1997-06-10 18:32:01 PDT'); diff -cr cvs/pgsql/src/test/regress/sql/timetz.sql cvs.build/pgsql/src/test/regress/sql/timetz.sql *** cvs/pgsql/src/test/regress/sql/timetz.sql 2001-10-31 15:44:23.000000000 +0100 --- cvs.build/pgsql/src/test/regress/sql/timetz.sql 2006-06-20 00:58:24.000000000 +0200 *************** *** 15,20 **** --- 15,25 ---- INSERT INTO TIMETZ_TBL VALUES ('23:59 PDT'); INSERT INTO TIMETZ_TBL VALUES ('11:59:59.99 PM PDT'); + INSERT INTO TIMETZ_TBL VALUES ('2003-03-07 15:36:39 America/New_York'); + INSERT INTO TIMETZ_TBL VALUES ('2003-07-07 15:36:39 America/New_York'); + -- this should fail (the timezone offset is not known) + INSERT INTO TIMETZ_TBL VALUES ('15:36:39 America/New_York'); + SELECT f1 AS "Time TZ" FROM TIMETZ_TBL; SELECT f1 AS "Three" FROM TIMETZ_TBL WHERE f1 < '05:06:07-07';