All regression tests pass except for rules.sql (unrelated).
authorThomas G. Lockhart <lockhart@fourpalms.org>
Wed, 16 Feb 2000 17:27:27 +0000 (17:27 +0000)
committerThomas G. Lockhart <lockhart@fourpalms.org>
Wed, 16 Feb 2000 17:27:27 +0000 (17:27 +0000)
Implement "date/time grand unification".
 Transform datetime and timespan into timestamp and interval.
 Deprecate datetime and timespan, though translate to new types in gram.y.
 Transform all datetime and timespan catalog entries into new types.
 Make "INTERVAL" reserved word allowed as a column identifier in gram.y.
 Remove dt.h, dt.c files, and retarget datetime.h, datetime.c as utility
  routines for all date/time types.
 date.{h,c} now deals with date, time types.
 timestamp.{h,c} now deals with timestamp, interval types.
 nabstime.{h,c} now deals with abstime, reltime, tinterval types.
Make NUMERIC a known native type for purposes of type coersion. Not tested.

src/test/regress/expected/horology.out
src/test/regress/expected/interval.out [moved from src/test/regress/expected/timespan.out with 73% similarity]
src/test/regress/expected/timestamp.out [moved from src/test/regress/expected/datetime.out with 77% similarity]
src/test/regress/output/misc.source
src/test/regress/sql/datetime.sql [deleted file]
src/test/regress/sql/horology.sql
src/test/regress/sql/interval.sql [new file with mode: 0644]
src/test/regress/sql/run_check.tests
src/test/regress/sql/tests
src/test/regress/sql/timespan.sql [deleted file]
src/test/regress/sql/timestamp.sql [new file with mode: 0644]

index 81587675ad19e0f44f536deee81c4673f260beac..4403e3ff033bb71e2f41339735483369da517a8d 100644 (file)
 -- HOROLOGY
 --
 --
--- datetime, timespan arithmetic
+-- timestamp, interval arithmetic
 --
-SELECT datetime '1996-03-01' - timespan '1 second' AS "Feb 29";
+SELECT timestamp '1996-03-01' - interval '1 second' AS "Feb 29";
             Feb 29            
 ------------------------------
  Thu Feb 29 23:59:59 1996 PST
 (1 row)
 
-SELECT datetime '1999-03-01' - timespan '1 second' AS "Feb 28";
+SELECT timestamp '1999-03-01' - interval '1 second' AS "Feb 28";
             Feb 28            
 ------------------------------
  Sun Feb 28 23:59:59 1999 PST
 (1 row)
 
-SELECT datetime '2000-03-01' - timespan '1 second' AS "Feb 29";
+SELECT timestamp '2000-03-01' - interval '1 second' AS "Feb 29";
             Feb 29            
 ------------------------------
  Tue Feb 29 23:59:59 2000 PST
 (1 row)
 
-SELECT datetime '1999-12-01' + timespan '1 month - 1 second' AS "Dec 31";
+SELECT timestamp '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
             Dec 31            
 ------------------------------
  Fri Dec 31 23:59:59 1999 PST
 (1 row)
 
-CREATE TABLE TEMP_DATETIME (f1 datetime);
+CREATE TABLE TEMP_TIMESTAMP (f1 timestamp);
 -- get some candidate input values
-INSERT INTO TEMP_DATETIME (f1)
-  SELECT d1 FROM DATETIME_TBL
+INSERT INTO TEMP_TIMESTAMP (f1)
+  SELECT d1 FROM TIMESTAMP_TBL
   WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997'
    OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010';
-SELECT '' AS ten, f1 AS datetime
-  FROM TEMP_DATETIME
-  ORDER BY datetime;
- ten |           datetime           
------+------------------------------
-     | epoch
-     | Wed Feb 28 17:32:01 1996 PST
-     | Thu Feb 29 17:32:01 1996 PST
-     | Fri Mar 01 17:32:01 1996 PST
-     | Mon Dec 30 17:32:01 1996 PST
-     | Tue Dec 31 17:32:01 1996 PST
-     | Fri Dec 31 17:32:01 1999 PST
-     | Sat Jan 01 17:32:01 2000 PST
-     | Sun Dec 31 17:32:01 2000 PST
-     | Mon Jan 01 17:32:01 2001 PST
-(10 rows)
+SELECT '' AS "11", f1 AS timestamp
+  FROM TEMP_TIMESTAMP
+  ORDER BY timestamp;
+ 11 |          timestamp           
+----+------------------------------
+    | epoch
+    | Wed Feb 28 17:32:01 1996 PST
+    | Thu Feb 29 17:32:01 1996 PST
+    | Fri Mar 01 17:32:01 1996 PST
+    | Mon Dec 30 17:32:01 1996 PST
+    | Tue Dec 31 17:32:01 1996 PST
+    | Fri Dec 31 17:32:01 1999 PST
+    | Sat Jan 01 17:32:01 2000 PST
+    | Tue Feb 15 23:14:30 2000 PST
+    | Sun Dec 31 17:32:01 2000 PST
+    | Mon Jan 01 17:32:01 2001 PST
+(11 rows)
 
-SELECT '' AS hundred, d.f1 AS datetime, t.f1 AS timespan, d.f1 + t.f1 AS plus
-  FROM TEMP_DATETIME d, TIMESPAN_TBL t
-  ORDER BY plus, datetime, timespan;
- hundred |           datetime           |           timespan            |             plus             
----------+------------------------------+-------------------------------+------------------------------
-         | epoch                        | @ 14 secs ago                 | Wed Dec 31 15:59:46 1969 PST
-         | epoch                        | @ 1 min                       | Wed Dec 31 16:01:00 1969 PST
-         | epoch                        | @ 5 hours                     | Wed Dec 31 21:00:00 1969 PST
-         | epoch                        | @ 1 day 2 hours 3 mins 4 secs | Thu Jan 01 18:03:04 1970 PST
-         | epoch                        | @ 10 days                     | Sat Jan 10 16:00:00 1970 PST
-         | epoch                        | @ 3 mons                      | Tue Mar 31 16:00:00 1970 PST
-         | epoch                        | @ 5 mons                      | Sun May 31 17:00:00 1970 PDT
-         | epoch                        | @ 5 mons 12 hours             | Mon Jun 01 05:00:00 1970 PDT
-         | epoch                        | @ 6 years                     | Wed Dec 31 16:00:00 1975 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 14 secs ago                 | Wed Feb 28 17:31:47 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 1 min                       | Wed Feb 28 17:33:01 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 5 hours                     | Wed Feb 28 22:32:01 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 14 secs ago                 | Thu Feb 29 17:31:47 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 1 min                       | Thu Feb 29 17:33:01 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Feb 29 19:35:05 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 5 hours                     | Thu Feb 29 22:32:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 14 secs ago                 | Fri Mar 01 17:31:47 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 1 min                       | Fri Mar 01 17:33:01 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Fri Mar 01 19:35:05 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 5 hours                     | Fri Mar 01 22:32:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Sat Mar 02 19:35:05 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 10 days                     | Sat Mar 09 17:32:01 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 10 days                     | Sun Mar 10 17:32:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 10 days                     | Mon Mar 11 17:32:01 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 3 mons                      | Tue May 28 18:32:01 1996 PDT
-         | Thu Feb 29 17:32:01 1996 PST | @ 3 mons                      | Wed May 29 18:32:01 1996 PDT
-         | Fri Mar 01 17:32:01 1996 PST | @ 3 mons                      | Sat Jun 01 18:32:01 1996 PDT
-         | Wed Feb 28 17:32:01 1996 PST | @ 5 mons                      | Sun Jul 28 18:32:01 1996 PDT
-         | Wed Feb 28 17:32:01 1996 PST | @ 5 mons 12 hours             | Mon Jul 29 06:32:01 1996 PDT
-         | Thu Feb 29 17:32:01 1996 PST | @ 5 mons                      | Mon Jul 29 18:32:01 1996 PDT
-         | Thu Feb 29 17:32:01 1996 PST | @ 5 mons 12 hours             | Tue Jul 30 06:32:01 1996 PDT
-         | Fri Mar 01 17:32:01 1996 PST | @ 5 mons                      | Thu Aug 01 18:32:01 1996 PDT
-         | Fri Mar 01 17:32:01 1996 PST | @ 5 mons 12 hours             | Fri Aug 02 06:32:01 1996 PDT
-         | Mon Dec 30 17:32:01 1996 PST | @ 14 secs ago                 | Mon Dec 30 17:31:47 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 1 min                       | Mon Dec 30 17:33:01 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 5 hours                     | Mon Dec 30 22:32:01 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 14 secs ago                 | Tue Dec 31 17:31:47 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 1 min                       | Tue Dec 31 17:33:01 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 31 19:35:05 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 5 hours                     | Tue Dec 31 22:32:01 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Wed Jan 01 19:35:05 1997 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 10 days                     | Thu Jan 09 17:32:01 1997 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 10 days                     | Fri Jan 10 17:32:01 1997 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 3 mons                      | Sun Mar 30 17:32:01 1997 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 3 mons                      | Mon Mar 31 17:32:01 1997 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 5 mons                      | Fri May 30 18:32:01 1997 PDT
-         | Mon Dec 30 17:32:01 1996 PST | @ 5 mons 12 hours             | Sat May 31 06:32:01 1997 PDT
-         | Tue Dec 31 17:32:01 1996 PST | @ 5 mons                      | Sat May 31 18:32:01 1997 PDT
-         | Tue Dec 31 17:32:01 1996 PST | @ 5 mons 12 hours             | Sun Jun 01 06:32:01 1997 PDT
-         | Fri Dec 31 17:32:01 1999 PST | @ 14 secs ago                 | Fri Dec 31 17:31:47 1999 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 1 min                       | Fri Dec 31 17:33:01 1999 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 5 hours                     | Fri Dec 31 22:32:01 1999 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 14 secs ago                 | Sat Jan 01 17:31:47 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 1 min                       | Sat Jan 01 17:33:01 2000 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 1 day 2 hours 3 mins 4 secs | Sat Jan 01 19:35:05 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 5 hours                     | Sat Jan 01 22:32:01 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Sun Jan 02 19:35:05 2000 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 10 days                     | Mon Jan 10 17:32:01 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 10 days                     | Tue Jan 11 17:32:01 2000 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 3 mons                      | Fri Mar 31 17:32:01 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 3 mons                      | Sat Apr 01 17:32:01 2000 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 5 mons                      | Wed May 31 18:32:01 2000 PDT
-         | Fri Dec 31 17:32:01 1999 PST | @ 5 mons 12 hours             | Thu Jun 01 06:32:01 2000 PDT
-         | Sat Jan 01 17:32:01 2000 PST | @ 5 mons                      | Thu Jun 01 18:32:01 2000 PDT
-         | Sat Jan 01 17:32:01 2000 PST | @ 5 mons 12 hours             | Fri Jun 02 06:32:01 2000 PDT
-         | Sun Dec 31 17:32:01 2000 PST | @ 14 secs ago                 | Sun Dec 31 17:31:47 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 1 min                       | Sun Dec 31 17:33:01 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 5 hours                     | Sun Dec 31 22:32:01 2000 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 14 secs ago                 | Mon Jan 01 17:31:47 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 1 min                       | Mon Jan 01 17:33:01 2001 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Mon Jan 01 19:35:05 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 5 hours                     | Mon Jan 01 22:32:01 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Jan 02 19:35:05 2001 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 10 days                     | Wed Jan 10 17:32:01 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 10 days                     | Thu Jan 11 17:32:01 2001 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 3 mons                      | Sat Mar 31 17:32:01 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 3 mons                      | Sun Apr 01 18:32:01 2001 PDT
-         | Sun Dec 31 17:32:01 2000 PST | @ 5 mons                      | Thu May 31 18:32:01 2001 PDT
-         | Sun Dec 31 17:32:01 2000 PST | @ 5 mons 12 hours             | Fri Jun 01 06:32:01 2001 PDT
-         | Mon Jan 01 17:32:01 2001 PST | @ 5 mons                      | Fri Jun 01 18:32:01 2001 PDT
-         | Mon Jan 01 17:32:01 2001 PST | @ 5 mons 12 hours             | Sat Jun 02 06:32:01 2001 PDT
-         | Wed Feb 28 17:32:01 1996 PST | @ 6 years                     | Thu Feb 28 17:32:01 2002 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 6 years                     | Thu Feb 28 17:32:01 2002 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 6 years                     | Fri Mar 01 17:32:01 2002 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 6 years                     | Mon Dec 30 17:32:01 2002 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 6 years                     | Tue Dec 31 17:32:01 2002 PST
-         | epoch                        | @ 34 years                    | Wed Dec 31 16:00:00 2003 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 6 years                     | Sat Dec 31 17:32:01 2005 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 6 years                     | Sun Jan 01 17:32:01 2006 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 6 years                     | Sun Dec 31 17:32:01 2006 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 6 years                     | Mon Jan 01 17:32:01 2007 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 34 years                    | Thu Feb 28 17:32:01 2030 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 34 years                    | Thu Feb 28 17:32:01 2030 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 34 years                    | Fri Mar 01 17:32:01 2030 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 34 years                    | Mon Dec 30 17:32:01 2030 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 34 years                    | Tue Dec 31 17:32:01 2030 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 34 years                    | Sat Dec 31 17:32:01 2033 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 34 years                    | Sun Jan 01 17:32:01 2034 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sun Dec 31 17:32:01 2034 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Mon Jan 01 17:32:01 2035 PST
-(100 rows)
+SELECT '' AS "110", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
+  FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
+  ORDER BY plus, timestamp, interval;
+ 110 |          timestamp           |           interval            |             plus             
+-----+------------------------------+-------------------------------+------------------------------
+     | epoch                        | @ 14 secs ago                 | Wed Dec 31 15:59:46 1969 PST
+     | epoch                        | @ 1 min                       | Wed Dec 31 16:01:00 1969 PST
+     | epoch                        | @ 5 hours                     | Wed Dec 31 21:00:00 1969 PST
+     | epoch                        | @ 1 day 2 hours 3 mins 4 secs | Thu Jan 01 18:03:04 1970 PST
+     | epoch                        | @ 10 days                     | Sat Jan 10 16:00:00 1970 PST
+     | epoch                        | @ 3 mons                      | Tue Mar 31 16:00:00 1970 PST
+     | epoch                        | @ 5 mons                      | Sun May 31 17:00:00 1970 PDT
+     | epoch                        | @ 5 mons 12 hours             | Mon Jun 01 05:00:00 1970 PDT
+     | epoch                        | @ 6 years                     | Wed Dec 31 16:00:00 1975 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 14 secs ago                 | Wed Feb 28 17:31:47 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 1 min                       | Wed Feb 28 17:33:01 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 hours                     | Wed Feb 28 22:32:01 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 14 secs ago                 | Thu Feb 29 17:31:47 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 1 min                       | Thu Feb 29 17:33:01 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Feb 29 19:35:05 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 hours                     | Thu Feb 29 22:32:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 14 secs ago                 | Fri Mar 01 17:31:47 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 1 min                       | Fri Mar 01 17:33:01 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Fri Mar 01 19:35:05 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 hours                     | Fri Mar 01 22:32:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Sat Mar 02 19:35:05 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 10 days                     | Sat Mar 09 17:32:01 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 10 days                     | Sun Mar 10 17:32:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 10 days                     | Mon Mar 11 17:32:01 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 3 mons                      | Tue May 28 18:32:01 1996 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 3 mons                      | Wed May 29 18:32:01 1996 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 3 mons                      | Sat Jun 01 18:32:01 1996 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons                      | Sun Jul 28 18:32:01 1996 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons 12 hours             | Mon Jul 29 06:32:01 1996 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons                      | Mon Jul 29 18:32:01 1996 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons 12 hours             | Tue Jul 30 06:32:01 1996 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons                      | Thu Aug 01 18:32:01 1996 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons 12 hours             | Fri Aug 02 06:32:01 1996 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 14 secs ago                 | Mon Dec 30 17:31:47 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 1 min                       | Mon Dec 30 17:33:01 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 hours                     | Mon Dec 30 22:32:01 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 14 secs ago                 | Tue Dec 31 17:31:47 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 1 min                       | Tue Dec 31 17:33:01 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 31 19:35:05 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 hours                     | Tue Dec 31 22:32:01 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Wed Jan 01 19:35:05 1997 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 10 days                     | Thu Jan 09 17:32:01 1997 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 10 days                     | Fri Jan 10 17:32:01 1997 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 3 mons                      | Sun Mar 30 17:32:01 1997 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 3 mons                      | Mon Mar 31 17:32:01 1997 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons                      | Fri May 30 18:32:01 1997 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons 12 hours             | Sat May 31 06:32:01 1997 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons                      | Sat May 31 18:32:01 1997 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons 12 hours             | Sun Jun 01 06:32:01 1997 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 14 secs ago                 | Fri Dec 31 17:31:47 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 1 min                       | Fri Dec 31 17:33:01 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 hours                     | Fri Dec 31 22:32:01 1999 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 14 secs ago                 | Sat Jan 01 17:31:47 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 1 min                       | Sat Jan 01 17:33:01 2000 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 1 day 2 hours 3 mins 4 secs | Sat Jan 01 19:35:05 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 hours                     | Sat Jan 01 22:32:01 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Sun Jan 02 19:35:05 2000 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 10 days                     | Mon Jan 10 17:32:01 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 10 days                     | Tue Jan 11 17:32:01 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 14 secs ago                 | Tue Feb 15 23:14:16 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 1 min                       | Tue Feb 15 23:15:30 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 5 hours                     | Wed Feb 16 04:14:30 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Feb 17 01:17:34 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 10 days                     | Fri Feb 25 23:14:30 2000 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 3 mons                      | Fri Mar 31 17:32:01 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 3 mons                      | Sat Apr 01 17:32:01 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 3 mons                      | Tue May 16 00:14:30 2000 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons                      | Wed May 31 18:32:01 2000 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons 12 hours             | Thu Jun 01 06:32:01 2000 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons                      | Thu Jun 01 18:32:01 2000 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons 12 hours             | Fri Jun 02 06:32:01 2000 PDT
+     | Tue Feb 15 23:14:30 2000 PST | @ 5 mons                      | Sun Jul 16 00:14:30 2000 PDT
+     | Tue Feb 15 23:14:30 2000 PST | @ 5 mons 12 hours             | Sun Jul 16 12:14:30 2000 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 14 secs ago                 | Sun Dec 31 17:31:47 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 1 min                       | Sun Dec 31 17:33:01 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 hours                     | Sun Dec 31 22:32:01 2000 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 14 secs ago                 | Mon Jan 01 17:31:47 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 1 min                       | Mon Jan 01 17:33:01 2001 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Mon Jan 01 19:35:05 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 hours                     | Mon Jan 01 22:32:01 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Jan 02 19:35:05 2001 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 10 days                     | Wed Jan 10 17:32:01 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 10 days                     | Thu Jan 11 17:32:01 2001 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 3 mons                      | Sat Mar 31 17:32:01 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 3 mons                      | Sun Apr 01 18:32:01 2001 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons                      | Thu May 31 18:32:01 2001 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons 12 hours             | Fri Jun 01 06:32:01 2001 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons                      | Fri Jun 01 18:32:01 2001 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons 12 hours             | Sat Jun 02 06:32:01 2001 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 6 years                     | Thu Feb 28 17:32:01 2002 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 6 years                     | Thu Feb 28 17:32:01 2002 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 6 years                     | Fri Mar 01 17:32:01 2002 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 6 years                     | Mon Dec 30 17:32:01 2002 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 6 years                     | Tue Dec 31 17:32:01 2002 PST
+     | epoch                        | @ 34 years                    | Wed Dec 31 16:00:00 2003 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 6 years                     | Sat Dec 31 17:32:01 2005 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 6 years                     | Sun Jan 01 17:32:01 2006 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 6 years                     | Wed Feb 15 23:14:30 2006 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 6 years                     | Sun Dec 31 17:32:01 2006 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 6 years                     | Mon Jan 01 17:32:01 2007 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 34 years                    | Thu Feb 28 17:32:01 2030 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 34 years                    | Thu Feb 28 17:32:01 2030 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 34 years                    | Fri Mar 01 17:32:01 2030 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 34 years                    | Mon Dec 30 17:32:01 2030 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 34 years                    | Tue Dec 31 17:32:01 2030 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 34 years                    | Sat Dec 31 17:32:01 2033 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 34 years                    | Sun Jan 01 17:32:01 2034 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 34 years                    | Wed Feb 15 23:14:30 2034 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sun Dec 31 17:32:01 2034 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Mon Jan 01 17:32:01 2035 PST
+(110 rows)
 
-SELECT '' AS hundred, d.f1 AS datetime, t.f1 AS timespan, d.f1 - t.f1 AS minus
-  FROM TEMP_DATETIME d, TIMESPAN_TBL t
+SELECT '' AS "110", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
+  FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
   WHERE isfinite(d.f1)
-  ORDER BY minus, datetime, timespan;
- hundred |           datetime           |           timespan            |            minus             
----------+------------------------------+-------------------------------+------------------------------
-         | epoch                        | @ 34 years                    | Tue Dec 31 16:00:00 1935 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 34 years                    | Wed Feb 28 17:32:01 1962 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 34 years                    | Wed Feb 28 17:32:01 1962 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 34 years                    | Thu Mar 01 17:32:01 1962 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 34 years                    | Sun Dec 30 17:32:01 1962 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 34 years                    | Mon Dec 31 17:32:01 1962 PST
-         | epoch                        | @ 6 years                     | Tue Dec 31 16:00:00 1963 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 34 years                    | Fri Dec 31 17:32:01 1965 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 34 years                    | Sat Jan 01 17:32:01 1966 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sat Dec 31 17:32:01 1966 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Sun Jan 01 17:32:01 1967 PST
-         | epoch                        | @ 5 mons 12 hours             | Thu Jul 31 05:00:00 1969 PDT
-         | epoch                        | @ 5 mons                      | Thu Jul 31 17:00:00 1969 PDT
-         | epoch                        | @ 3 mons                      | Tue Sep 30 17:00:00 1969 PDT
-         | epoch                        | @ 10 days                     | Sun Dec 21 16:00:00 1969 PST
-         | epoch                        | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 30 13:56:56 1969 PST
-         | epoch                        | @ 5 hours                     | Wed Dec 31 11:00:00 1969 PST
-         | epoch                        | @ 1 min                       | Wed Dec 31 15:59:00 1969 PST
-         | epoch                        | @ 14 secs ago                 | Wed Dec 31 16:00:14 1969 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 6 years                     | Wed Feb 28 17:32:01 1990 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 6 years                     | Wed Feb 28 17:32:01 1990 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 6 years                     | Thu Mar 01 17:32:01 1990 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 6 years                     | Sun Dec 30 17:32:01 1990 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 6 years                     | Mon Dec 31 17:32:01 1990 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 6 years                     | Fri Dec 31 17:32:01 1993 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 6 years                     | Sat Jan 01 17:32:01 1994 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 6 years                     | Sat Dec 31 17:32:01 1994 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 6 years                     | Sun Jan 01 17:32:01 1995 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 5 mons 12 hours             | Thu Sep 28 06:32:01 1995 PDT
-         | Wed Feb 28 17:32:01 1996 PST | @ 5 mons                      | Thu Sep 28 18:32:01 1995 PDT
-         | Thu Feb 29 17:32:01 1996 PST | @ 5 mons 12 hours             | Fri Sep 29 06:32:01 1995 PDT
-         | Thu Feb 29 17:32:01 1996 PST | @ 5 mons                      | Fri Sep 29 18:32:01 1995 PDT
-         | Fri Mar 01 17:32:01 1996 PST | @ 5 mons 12 hours             | Sun Oct 01 06:32:01 1995 PDT
-         | Fri Mar 01 17:32:01 1996 PST | @ 5 mons                      | Sun Oct 01 18:32:01 1995 PDT
-         | Wed Feb 28 17:32:01 1996 PST | @ 3 mons                      | Tue Nov 28 17:32:01 1995 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 3 mons                      | Wed Nov 29 17:32:01 1995 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 3 mons                      | Fri Dec 01 17:32:01 1995 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 10 days                     | Sun Feb 18 17:32:01 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 10 days                     | Mon Feb 19 17:32:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 10 days                     | Tue Feb 20 17:32:01 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Feb 27 15:28:57 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 5 hours                     | Wed Feb 28 12:32:01 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Wed Feb 28 15:28:57 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 1 min                       | Wed Feb 28 17:31:01 1996 PST
-         | Wed Feb 28 17:32:01 1996 PST | @ 14 secs ago                 | Wed Feb 28 17:32:15 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 5 hours                     | Thu Feb 29 12:32:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Feb 29 15:28:57 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 1 min                       | Thu Feb 29 17:31:01 1996 PST
-         | Thu Feb 29 17:32:01 1996 PST | @ 14 secs ago                 | Thu Feb 29 17:32:15 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 5 hours                     | Fri Mar 01 12:32:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 1 min                       | Fri Mar 01 17:31:01 1996 PST
-         | Fri Mar 01 17:32:01 1996 PST | @ 14 secs ago                 | Fri Mar 01 17:32:15 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 5 mons 12 hours             | Tue Jul 30 06:32:01 1996 PDT
-         | Mon Dec 30 17:32:01 1996 PST | @ 5 mons                      | Tue Jul 30 18:32:01 1996 PDT
-         | Tue Dec 31 17:32:01 1996 PST | @ 5 mons 12 hours             | Wed Jul 31 06:32:01 1996 PDT
-         | Tue Dec 31 17:32:01 1996 PST | @ 5 mons                      | Wed Jul 31 18:32:01 1996 PDT
-         | Mon Dec 30 17:32:01 1996 PST | @ 3 mons                      | Mon Sep 30 18:32:01 1996 PDT
-         | Tue Dec 31 17:32:01 1996 PST | @ 3 mons                      | Mon Sep 30 18:32:01 1996 PDT
-         | Mon Dec 30 17:32:01 1996 PST | @ 10 days                     | Fri Dec 20 17:32:01 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 10 days                     | Sat Dec 21 17:32:01 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Sun Dec 29 15:28:57 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 5 hours                     | Mon Dec 30 12:32:01 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Mon Dec 30 15:28:57 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 1 min                       | Mon Dec 30 17:31:01 1996 PST
-         | Mon Dec 30 17:32:01 1996 PST | @ 14 secs ago                 | Mon Dec 30 17:32:15 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 5 hours                     | Tue Dec 31 12:32:01 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 1 min                       | Tue Dec 31 17:31:01 1996 PST
-         | Tue Dec 31 17:32:01 1996 PST | @ 14 secs ago                 | Tue Dec 31 17:32:15 1996 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 5 mons 12 hours             | Sat Jul 31 06:32:01 1999 PDT
-         | Fri Dec 31 17:32:01 1999 PST | @ 5 mons                      | Sat Jul 31 18:32:01 1999 PDT
-         | Sat Jan 01 17:32:01 2000 PST | @ 5 mons 12 hours             | Sun Aug 01 06:32:01 1999 PDT
-         | Sat Jan 01 17:32:01 2000 PST | @ 5 mons                      | Sun Aug 01 18:32:01 1999 PDT
-         | Fri Dec 31 17:32:01 1999 PST | @ 3 mons                      | Thu Sep 30 18:32:01 1999 PDT
-         | Sat Jan 01 17:32:01 2000 PST | @ 3 mons                      | Fri Oct 01 18:32:01 1999 PDT
-         | Fri Dec 31 17:32:01 1999 PST | @ 10 days                     | Tue Dec 21 17:32:01 1999 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 10 days                     | Wed Dec 22 17:32:01 1999 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Dec 30 15:28:57 1999 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 5 hours                     | Fri Dec 31 12:32:01 1999 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Fri Dec 31 15:28:57 1999 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 1 min                       | Fri Dec 31 17:31:01 1999 PST
-         | Fri Dec 31 17:32:01 1999 PST | @ 14 secs ago                 | Fri Dec 31 17:32:15 1999 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 5 hours                     | Sat Jan 01 12:32:01 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 1 min                       | Sat Jan 01 17:31:01 2000 PST
-         | Sat Jan 01 17:32:01 2000 PST | @ 14 secs ago                 | Sat Jan 01 17:32:15 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 5 mons 12 hours             | Mon Jul 31 06:32:01 2000 PDT
-         | Sun Dec 31 17:32:01 2000 PST | @ 5 mons                      | Mon Jul 31 18:32:01 2000 PDT
-         | Mon Jan 01 17:32:01 2001 PST | @ 5 mons 12 hours             | Tue Aug 01 06:32:01 2000 PDT
-         | Mon Jan 01 17:32:01 2001 PST | @ 5 mons                      | Tue Aug 01 18:32:01 2000 PDT
-         | Sun Dec 31 17:32:01 2000 PST | @ 3 mons                      | Sat Sep 30 18:32:01 2000 PDT
-         | Mon Jan 01 17:32:01 2001 PST | @ 3 mons                      | Sun Oct 01 18:32:01 2000 PDT
-         | Sun Dec 31 17:32:01 2000 PST | @ 10 days                     | Thu Dec 21 17:32:01 2000 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 10 days                     | Fri Dec 22 17:32:01 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Sat Dec 30 15:28:57 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 5 hours                     | Sun Dec 31 12:32:01 2000 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 1 day 2 hours 3 mins 4 secs | Sun Dec 31 15:28:57 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 1 min                       | Sun Dec 31 17:31:01 2000 PST
-         | Sun Dec 31 17:32:01 2000 PST | @ 14 secs ago                 | Sun Dec 31 17:32:15 2000 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 5 hours                     | Mon Jan 01 12:32:01 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 1 min                       | Mon Jan 01 17:31:01 2001 PST
-         | Mon Jan 01 17:32:01 2001 PST | @ 14 secs ago                 | Mon Jan 01 17:32:15 2001 PST
-(100 rows)
+  ORDER BY minus, timestamp, interval;
+ 110 |          timestamp           |           interval            |            minus             
+-----+------------------------------+-------------------------------+------------------------------
+     | epoch                        | @ 34 years                    | Tue Dec 31 16:00:00 1935 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 34 years                    | Wed Feb 28 17:32:01 1962 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 34 years                    | Wed Feb 28 17:32:01 1962 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 34 years                    | Thu Mar 01 17:32:01 1962 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 34 years                    | Sun Dec 30 17:32:01 1962 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 34 years                    | Mon Dec 31 17:32:01 1962 PST
+     | epoch                        | @ 6 years                     | Tue Dec 31 16:00:00 1963 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 34 years                    | Fri Dec 31 17:32:01 1965 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 34 years                    | Sat Jan 01 17:32:01 1966 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 34 years                    | Tue Feb 15 23:14:30 1966 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 34 years                    | Sat Dec 31 17:32:01 1966 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 34 years                    | Sun Jan 01 17:32:01 1967 PST
+     | epoch                        | @ 5 mons 12 hours             | Thu Jul 31 05:00:00 1969 PDT
+     | epoch                        | @ 5 mons                      | Thu Jul 31 17:00:00 1969 PDT
+     | epoch                        | @ 3 mons                      | Tue Sep 30 17:00:00 1969 PDT
+     | epoch                        | @ 10 days                     | Sun Dec 21 16:00:00 1969 PST
+     | epoch                        | @ 1 day 2 hours 3 mins 4 secs | Tue Dec 30 13:56:56 1969 PST
+     | epoch                        | @ 5 hours                     | Wed Dec 31 11:00:00 1969 PST
+     | epoch                        | @ 1 min                       | Wed Dec 31 15:59:00 1969 PST
+     | epoch                        | @ 14 secs ago                 | Wed Dec 31 16:00:14 1969 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 6 years                     | Wed Feb 28 17:32:01 1990 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 6 years                     | Wed Feb 28 17:32:01 1990 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 6 years                     | Thu Mar 01 17:32:01 1990 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 6 years                     | Sun Dec 30 17:32:01 1990 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 6 years                     | Mon Dec 31 17:32:01 1990 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 6 years                     | Fri Dec 31 17:32:01 1993 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 6 years                     | Sat Jan 01 17:32:01 1994 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 6 years                     | Tue Feb 15 23:14:30 1994 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 6 years                     | Sat Dec 31 17:32:01 1994 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 6 years                     | Sun Jan 01 17:32:01 1995 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons 12 hours             | Thu Sep 28 06:32:01 1995 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons                      | Thu Sep 28 18:32:01 1995 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons 12 hours             | Fri Sep 29 06:32:01 1995 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons                      | Fri Sep 29 18:32:01 1995 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons 12 hours             | Sun Oct 01 06:32:01 1995 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons                      | Sun Oct 01 18:32:01 1995 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 3 mons                      | Tue Nov 28 17:32:01 1995 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 3 mons                      | Wed Nov 29 17:32:01 1995 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 3 mons                      | Fri Dec 01 17:32:01 1995 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 10 days                     | Sun Feb 18 17:32:01 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 10 days                     | Mon Feb 19 17:32:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 10 days                     | Tue Feb 20 17:32:01 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Tue Feb 27 15:28:57 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 hours                     | Wed Feb 28 12:32:01 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Wed Feb 28 15:28:57 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 1 min                       | Wed Feb 28 17:31:01 1996 PST
+     | Wed Feb 28 17:32:01 1996 PST | @ 14 secs ago                 | Wed Feb 28 17:32:15 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 hours                     | Thu Feb 29 12:32:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Feb 29 15:28:57 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 1 min                       | Thu Feb 29 17:31:01 1996 PST
+     | Thu Feb 29 17:32:01 1996 PST | @ 14 secs ago                 | Thu Feb 29 17:32:15 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 hours                     | Fri Mar 01 12:32:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 1 min                       | Fri Mar 01 17:31:01 1996 PST
+     | Fri Mar 01 17:32:01 1996 PST | @ 14 secs ago                 | Fri Mar 01 17:32:15 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons 12 hours             | Tue Jul 30 06:32:01 1996 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons                      | Tue Jul 30 18:32:01 1996 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons 12 hours             | Wed Jul 31 06:32:01 1996 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons                      | Wed Jul 31 18:32:01 1996 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 3 mons                      | Mon Sep 30 18:32:01 1996 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 3 mons                      | Mon Sep 30 18:32:01 1996 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 10 days                     | Fri Dec 20 17:32:01 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 10 days                     | Sat Dec 21 17:32:01 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Sun Dec 29 15:28:57 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 hours                     | Mon Dec 30 12:32:01 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 1 day 2 hours 3 mins 4 secs | Mon Dec 30 15:28:57 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 1 min                       | Mon Dec 30 17:31:01 1996 PST
+     | Mon Dec 30 17:32:01 1996 PST | @ 14 secs ago                 | Mon Dec 30 17:32:15 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 hours                     | Tue Dec 31 12:32:01 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 1 min                       | Tue Dec 31 17:31:01 1996 PST
+     | Tue Dec 31 17:32:01 1996 PST | @ 14 secs ago                 | Tue Dec 31 17:32:15 1996 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons 12 hours             | Sat Jul 31 06:32:01 1999 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons                      | Sat Jul 31 18:32:01 1999 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons 12 hours             | Sun Aug 01 06:32:01 1999 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons                      | Sun Aug 01 18:32:01 1999 PDT
+     | Tue Feb 15 23:14:30 2000 PST | @ 5 mons 12 hours             | Wed Sep 15 12:14:30 1999 PDT
+     | Tue Feb 15 23:14:30 2000 PST | @ 5 mons                      | Thu Sep 16 00:14:30 1999 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 3 mons                      | Thu Sep 30 18:32:01 1999 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 3 mons                      | Fri Oct 01 18:32:01 1999 PDT
+     | Tue Feb 15 23:14:30 2000 PST | @ 3 mons                      | Mon Nov 15 23:14:30 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 10 days                     | Tue Dec 21 17:32:01 1999 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 10 days                     | Wed Dec 22 17:32:01 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 1 day 2 hours 3 mins 4 secs | Thu Dec 30 15:28:57 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 hours                     | Fri Dec 31 12:32:01 1999 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Fri Dec 31 15:28:57 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 1 min                       | Fri Dec 31 17:31:01 1999 PST
+     | Fri Dec 31 17:32:01 1999 PST | @ 14 secs ago                 | Fri Dec 31 17:32:15 1999 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 hours                     | Sat Jan 01 12:32:01 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 1 min                       | Sat Jan 01 17:31:01 2000 PST
+     | Sat Jan 01 17:32:01 2000 PST | @ 14 secs ago                 | Sat Jan 01 17:32:15 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 10 days                     | Sat Feb 05 23:14:30 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Mon Feb 14 21:11:26 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 5 hours                     | Tue Feb 15 18:14:30 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 1 min                       | Tue Feb 15 23:13:30 2000 PST
+     | Tue Feb 15 23:14:30 2000 PST | @ 14 secs ago                 | Tue Feb 15 23:14:44 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons 12 hours             | Mon Jul 31 06:32:01 2000 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons                      | Mon Jul 31 18:32:01 2000 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons 12 hours             | Tue Aug 01 06:32:01 2000 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons                      | Tue Aug 01 18:32:01 2000 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 3 mons                      | Sat Sep 30 18:32:01 2000 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 3 mons                      | Sun Oct 01 18:32:01 2000 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 10 days                     | Thu Dec 21 17:32:01 2000 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 10 days                     | Fri Dec 22 17:32:01 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 1 day 2 hours 3 mins 4 secs | Sat Dec 30 15:28:57 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 hours                     | Sun Dec 31 12:32:01 2000 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 1 day 2 hours 3 mins 4 secs | Sun Dec 31 15:28:57 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 1 min                       | Sun Dec 31 17:31:01 2000 PST
+     | Sun Dec 31 17:32:01 2000 PST | @ 14 secs ago                 | Sun Dec 31 17:32:15 2000 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 hours                     | Mon Jan 01 12:32:01 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 1 min                       | Mon Jan 01 17:31:01 2001 PST
+     | Mon Jan 01 17:32:01 2001 PST | @ 14 secs ago                 | Mon Jan 01 17:32:15 2001 PST
+(110 rows)
 
-SELECT '' AS ten, d.f1 AS datetime, datetime '1980-01-06 00:00 GMT' AS gpstime_zero,
-   d.f1 - datetime '1980-01-06 00:00 GMT' AS difference
-  FROM TEMP_DATETIME d
+SELECT '' AS "11", d.f1 AS timestamp, timestamp '1980-01-06 00:00 GMT' AS gpstime_zero,
+   d.f1 - timestamp '1980-01-06 00:00 GMT' AS difference
+  FROM TEMP_TIMESTAMP d
   ORDER BY difference;
- ten |           datetime           |         gpstime_zero         |            difference            
------+------------------------------+------------------------------+----------------------------------
-     | epoch                        | Sat Jan 05 16:00:00 1980 PST | @ 3657 days ago
-     | Wed Feb 28 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 5898 days 1 hour 32 mins 1 sec
-     | Thu Feb 29 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 5899 days 1 hour 32 mins 1 sec
-     | Fri Mar 01 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 5900 days 1 hour 32 mins 1 sec
-     | Mon Dec 30 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 6204 days 1 hour 32 mins 1 sec
-     | Tue Dec 31 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 6205 days 1 hour 32 mins 1 sec
-     | Fri Dec 31 17:32:01 1999 PST | Sat Jan 05 16:00:00 1980 PST | @ 7300 days 1 hour 32 mins 1 sec
-     | Sat Jan 01 17:32:01 2000 PST | Sat Jan 05 16:00:00 1980 PST | @ 7301 days 1 hour 32 mins 1 sec
-     | Sun Dec 31 17:32:01 2000 PST | Sat Jan 05 16:00:00 1980 PST | @ 7666 days 1 hour 32 mins 1 sec
-     | Mon Jan 01 17:32:01 2001 PST | Sat Jan 05 16:00:00 1980 PST | @ 7667 days 1 hour 32 mins 1 sec
-(10 rows)
+ 11 |          timestamp           |         gpstime_zero         |             difference              
+----+------------------------------+------------------------------+-------------------------------------
+    | epoch                        | Sat Jan 05 16:00:00 1980 PST | @ 3657 days ago
+    | Wed Feb 28 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 5898 days 1 hour 32 mins 1 sec
+    | Thu Feb 29 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 5899 days 1 hour 32 mins 1 sec
+    | Fri Mar 01 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 5900 days 1 hour 32 mins 1 sec
+    | Mon Dec 30 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 6204 days 1 hour 32 mins 1 sec
+    | Tue Dec 31 17:32:01 1996 PST | Sat Jan 05 16:00:00 1980 PST | @ 6205 days 1 hour 32 mins 1 sec
+    | Fri Dec 31 17:32:01 1999 PST | Sat Jan 05 16:00:00 1980 PST | @ 7300 days 1 hour 32 mins 1 sec
+    | Sat Jan 01 17:32:01 2000 PST | Sat Jan 05 16:00:00 1980 PST | @ 7301 days 1 hour 32 mins 1 sec
+    | Tue Feb 15 23:14:30 2000 PST | Sat Jan 05 16:00:00 1980 PST | @ 7346 days 7 hours 14 mins 30 secs
+    | Sun Dec 31 17:32:01 2000 PST | Sat Jan 05 16:00:00 1980 PST | @ 7666 days 1 hour 32 mins 1 sec
+    | Mon Jan 01 17:32:01 2001 PST | Sat Jan 05 16:00:00 1980 PST | @ 7667 days 1 hour 32 mins 1 sec
+(11 rows)
 
-SELECT '' AS hundred, d1.f1 AS datetime1, d2.f1 AS datetime2, d1.f1 - d2.f1 AS difference
-  FROM TEMP_DATETIME d1, TEMP_DATETIME d2
-  ORDER BY datetime1, datetime2, difference;
- hundred |          datetime1           |          datetime2           |              difference               
----------+------------------------------+------------------------------+---------------------------------------
-         | epoch                        | epoch                        | @ 0
-         | epoch                        | Wed Feb 28 17:32:01 1996 PST | @ 9555 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Thu Feb 29 17:32:01 1996 PST | @ 9556 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Fri Mar 01 17:32:01 1996 PST | @ 9557 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Mon Dec 30 17:32:01 1996 PST | @ 9861 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Tue Dec 31 17:32:01 1996 PST | @ 9862 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Fri Dec 31 17:32:01 1999 PST | @ 10957 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Sat Jan 01 17:32:01 2000 PST | @ 10958 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Sun Dec 31 17:32:01 2000 PST | @ 11323 days 1 hour 32 mins 1 sec ago
-         | epoch                        | Mon Jan 01 17:32:01 2001 PST | @ 11324 days 1 hour 32 mins 1 sec ago
-         | Wed Feb 28 17:32:01 1996 PST | epoch                        | @ 9555 days 1 hour 32 mins 1 sec
-         | Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 0
-         | Wed Feb 28 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 1 day ago
-         | Wed Feb 28 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 2 days ago
-         | Wed Feb 28 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 306 days ago
-         | Wed Feb 28 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 307 days ago
-         | Wed Feb 28 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1402 days ago
-         | Wed Feb 28 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1403 days ago
-         | Wed Feb 28 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1768 days ago
-         | Wed Feb 28 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1769 days ago
-         | Thu Feb 29 17:32:01 1996 PST | epoch                        | @ 9556 days 1 hour 32 mins 1 sec
-         | Thu Feb 29 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 1 day
-         | Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 0
-         | Thu Feb 29 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 1 day ago
-         | Thu Feb 29 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 305 days ago
-         | Thu Feb 29 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 306 days ago
-         | Thu Feb 29 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1401 days ago
-         | Thu Feb 29 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1402 days ago
-         | Thu Feb 29 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1767 days ago
-         | Thu Feb 29 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1768 days ago
-         | Fri Mar 01 17:32:01 1996 PST | epoch                        | @ 9557 days 1 hour 32 mins 1 sec
-         | Fri Mar 01 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 2 days
-         | Fri Mar 01 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 1 day
-         | Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 0
-         | Fri Mar 01 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 304 days ago
-         | Fri Mar 01 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 305 days ago
-         | Fri Mar 01 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1400 days ago
-         | Fri Mar 01 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1401 days ago
-         | Fri Mar 01 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1766 days ago
-         | Fri Mar 01 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1767 days ago
-         | Mon Dec 30 17:32:01 1996 PST | epoch                        | @ 9861 days 1 hour 32 mins 1 sec
-         | Mon Dec 30 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 306 days
-         | Mon Dec 30 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 305 days
-         | Mon Dec 30 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 304 days
-         | Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 0
-         | Mon Dec 30 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 1 day ago
-         | Mon Dec 30 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1096 days ago
-         | Mon Dec 30 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1097 days ago
-         | Mon Dec 30 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1462 days ago
-         | Mon Dec 30 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1463 days ago
-         | Tue Dec 31 17:32:01 1996 PST | epoch                        | @ 9862 days 1 hour 32 mins 1 sec
-         | Tue Dec 31 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 307 days
-         | Tue Dec 31 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 306 days
-         | Tue Dec 31 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 305 days
-         | Tue Dec 31 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 1 day
-         | Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 0
-         | Tue Dec 31 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1095 days ago
-         | Tue Dec 31 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1096 days ago
-         | Tue Dec 31 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1461 days ago
-         | Tue Dec 31 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1462 days ago
-         | Fri Dec 31 17:32:01 1999 PST | epoch                        | @ 10957 days 1 hour 32 mins 1 sec
-         | Fri Dec 31 17:32:01 1999 PST | Wed Feb 28 17:32:01 1996 PST | @ 1402 days
-         | Fri Dec 31 17:32:01 1999 PST | Thu Feb 29 17:32:01 1996 PST | @ 1401 days
-         | Fri Dec 31 17:32:01 1999 PST | Fri Mar 01 17:32:01 1996 PST | @ 1400 days
-         | Fri Dec 31 17:32:01 1999 PST | Mon Dec 30 17:32:01 1996 PST | @ 1096 days
-         | Fri Dec 31 17:32:01 1999 PST | Tue Dec 31 17:32:01 1996 PST | @ 1095 days
-         | Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999 PST | @ 0
-         | Fri Dec 31 17:32:01 1999 PST | Sat Jan 01 17:32:01 2000 PST | @ 1 day ago
-         | Fri Dec 31 17:32:01 1999 PST | Sun Dec 31 17:32:01 2000 PST | @ 366 days ago
-         | Fri Dec 31 17:32:01 1999 PST | Mon Jan 01 17:32:01 2001 PST | @ 367 days ago
-         | Sat Jan 01 17:32:01 2000 PST | epoch                        | @ 10958 days 1 hour 32 mins 1 sec
-         | Sat Jan 01 17:32:01 2000 PST | Wed Feb 28 17:32:01 1996 PST | @ 1403 days
-         | Sat Jan 01 17:32:01 2000 PST | Thu Feb 29 17:32:01 1996 PST | @ 1402 days
-         | Sat Jan 01 17:32:01 2000 PST | Fri Mar 01 17:32:01 1996 PST | @ 1401 days
-         | Sat Jan 01 17:32:01 2000 PST | Mon Dec 30 17:32:01 1996 PST | @ 1097 days
-         | Sat Jan 01 17:32:01 2000 PST | Tue Dec 31 17:32:01 1996 PST | @ 1096 days
-         | Sat Jan 01 17:32:01 2000 PST | Fri Dec 31 17:32:01 1999 PST | @ 1 day
-         | Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000 PST | @ 0
-         | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | @ 365 days ago
-         | Sat Jan 01 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST | @ 366 days ago
-         | Sun Dec 31 17:32:01 2000 PST | epoch                        | @ 11323 days 1 hour 32 mins 1 sec
-         | Sun Dec 31 17:32:01 2000 PST | Wed Feb 28 17:32:01 1996 PST | @ 1768 days
-         | Sun Dec 31 17:32:01 2000 PST | Thu Feb 29 17:32:01 1996 PST | @ 1767 days
-         | Sun Dec 31 17:32:01 2000 PST | Fri Mar 01 17:32:01 1996 PST | @ 1766 days
-         | Sun Dec 31 17:32:01 2000 PST | Mon Dec 30 17:32:01 1996 PST | @ 1462 days
-         | Sun Dec 31 17:32:01 2000 PST | Tue Dec 31 17:32:01 1996 PST | @ 1461 days
-         | Sun Dec 31 17:32:01 2000 PST | Fri Dec 31 17:32:01 1999 PST | @ 366 days
-         | Sun Dec 31 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000 PST | @ 365 days
-         | Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | @ 0
-         | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST | @ 1 day ago
-         | Mon Jan 01 17:32:01 2001 PST | epoch                        | @ 11324 days 1 hour 32 mins 1 sec
-         | Mon Jan 01 17:32:01 2001 PST | Wed Feb 28 17:32:01 1996 PST | @ 1769 days
-         | Mon Jan 01 17:32:01 2001 PST | Thu Feb 29 17:32:01 1996 PST | @ 1768 days
-         | Mon Jan 01 17:32:01 2001 PST | Fri Mar 01 17:32:01 1996 PST | @ 1767 days
-         | Mon Jan 01 17:32:01 2001 PST | Mon Dec 30 17:32:01 1996 PST | @ 1463 days
-         | Mon Jan 01 17:32:01 2001 PST | Tue Dec 31 17:32:01 1996 PST | @ 1462 days
-         | Mon Jan 01 17:32:01 2001 PST | Fri Dec 31 17:32:01 1999 PST | @ 367 days
-         | Mon Jan 01 17:32:01 2001 PST | Sat Jan 01 17:32:01 2000 PST | @ 366 days
-         | Mon Jan 01 17:32:01 2001 PST | Sun Dec 31 17:32:01 2000 PST | @ 1 day
-         | Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001 PST | @ 0
-(100 rows)
+SELECT '' AS "121", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
+  FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2
+  ORDER BY timestamp1, timestamp2, difference;
+ 121 |          timestamp1          |          timestamp2          |                difference                
+-----+------------------------------+------------------------------+------------------------------------------
+     | epoch                        | epoch                        | @ 0
+     | epoch                        | Wed Feb 28 17:32:01 1996 PST | @ 9555 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Thu Feb 29 17:32:01 1996 PST | @ 9556 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Fri Mar 01 17:32:01 1996 PST | @ 9557 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Mon Dec 30 17:32:01 1996 PST | @ 9861 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Tue Dec 31 17:32:01 1996 PST | @ 9862 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Fri Dec 31 17:32:01 1999 PST | @ 10957 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Sat Jan 01 17:32:01 2000 PST | @ 10958 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Tue Feb 15 23:14:30 2000 PST | @ 11003 days 7 hours 14 mins 30 secs ago
+     | epoch                        | Sun Dec 31 17:32:01 2000 PST | @ 11323 days 1 hour 32 mins 1 sec ago
+     | epoch                        | Mon Jan 01 17:32:01 2001 PST | @ 11324 days 1 hour 32 mins 1 sec ago
+     | Wed Feb 28 17:32:01 1996 PST | epoch                        | @ 9555 days 1 hour 32 mins 1 sec
+     | Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 0
+     | Wed Feb 28 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 1 day ago
+     | Wed Feb 28 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 2 days ago
+     | Wed Feb 28 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 306 days ago
+     | Wed Feb 28 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 307 days ago
+     | Wed Feb 28 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1402 days ago
+     | Wed Feb 28 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1403 days ago
+     | Wed Feb 28 17:32:01 1996 PST | Tue Feb 15 23:14:30 2000 PST | @ 1448 days 5 hours 42 mins 29 secs ago
+     | Wed Feb 28 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1768 days ago
+     | Wed Feb 28 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1769 days ago
+     | Thu Feb 29 17:32:01 1996 PST | epoch                        | @ 9556 days 1 hour 32 mins 1 sec
+     | Thu Feb 29 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 1 day
+     | Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 0
+     | Thu Feb 29 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 1 day ago
+     | Thu Feb 29 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 305 days ago
+     | Thu Feb 29 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 306 days ago
+     | Thu Feb 29 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1401 days ago
+     | Thu Feb 29 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1402 days ago
+     | Thu Feb 29 17:32:01 1996 PST | Tue Feb 15 23:14:30 2000 PST | @ 1447 days 5 hours 42 mins 29 secs ago
+     | Thu Feb 29 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1767 days ago
+     | Thu Feb 29 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1768 days ago
+     | Fri Mar 01 17:32:01 1996 PST | epoch                        | @ 9557 days 1 hour 32 mins 1 sec
+     | Fri Mar 01 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 2 days
+     | Fri Mar 01 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 1 day
+     | Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 0
+     | Fri Mar 01 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 304 days ago
+     | Fri Mar 01 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 305 days ago
+     | Fri Mar 01 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1400 days ago
+     | Fri Mar 01 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1401 days ago
+     | Fri Mar 01 17:32:01 1996 PST | Tue Feb 15 23:14:30 2000 PST | @ 1446 days 5 hours 42 mins 29 secs ago
+     | Fri Mar 01 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1766 days ago
+     | Fri Mar 01 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1767 days ago
+     | Mon Dec 30 17:32:01 1996 PST | epoch                        | @ 9861 days 1 hour 32 mins 1 sec
+     | Mon Dec 30 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 306 days
+     | Mon Dec 30 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 305 days
+     | Mon Dec 30 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 304 days
+     | Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 0
+     | Mon Dec 30 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 1 day ago
+     | Mon Dec 30 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1096 days ago
+     | Mon Dec 30 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1097 days ago
+     | Mon Dec 30 17:32:01 1996 PST | Tue Feb 15 23:14:30 2000 PST | @ 1142 days 5 hours 42 mins 29 secs ago
+     | Mon Dec 30 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1462 days ago
+     | Mon Dec 30 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1463 days ago
+     | Tue Dec 31 17:32:01 1996 PST | epoch                        | @ 9862 days 1 hour 32 mins 1 sec
+     | Tue Dec 31 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST | @ 307 days
+     | Tue Dec 31 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST | @ 306 days
+     | Tue Dec 31 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST | @ 305 days
+     | Tue Dec 31 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST | @ 1 day
+     | Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST | @ 0
+     | Tue Dec 31 17:32:01 1996 PST | Fri Dec 31 17:32:01 1999 PST | @ 1095 days ago
+     | Tue Dec 31 17:32:01 1996 PST | Sat Jan 01 17:32:01 2000 PST | @ 1096 days ago
+     | Tue Dec 31 17:32:01 1996 PST | Tue Feb 15 23:14:30 2000 PST | @ 1141 days 5 hours 42 mins 29 secs ago
+     | Tue Dec 31 17:32:01 1996 PST | Sun Dec 31 17:32:01 2000 PST | @ 1461 days ago
+     | Tue Dec 31 17:32:01 1996 PST | Mon Jan 01 17:32:01 2001 PST | @ 1462 days ago
+     | Fri Dec 31 17:32:01 1999 PST | epoch                        | @ 10957 days 1 hour 32 mins 1 sec
+     | Fri Dec 31 17:32:01 1999 PST | Wed Feb 28 17:32:01 1996 PST | @ 1402 days
+     | Fri Dec 31 17:32:01 1999 PST | Thu Feb 29 17:32:01 1996 PST | @ 1401 days
+     | Fri Dec 31 17:32:01 1999 PST | Fri Mar 01 17:32:01 1996 PST | @ 1400 days
+     | Fri Dec 31 17:32:01 1999 PST | Mon Dec 30 17:32:01 1996 PST | @ 1096 days
+     | Fri Dec 31 17:32:01 1999 PST | Tue Dec 31 17:32:01 1996 PST | @ 1095 days
+     | Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999 PST | @ 0
+     | Fri Dec 31 17:32:01 1999 PST | Sat Jan 01 17:32:01 2000 PST | @ 1 day ago
+     | Fri Dec 31 17:32:01 1999 PST | Tue Feb 15 23:14:30 2000 PST | @ 46 days 5 hours 42 mins 29 secs ago
+     | Fri Dec 31 17:32:01 1999 PST | Sun Dec 31 17:32:01 2000 PST | @ 366 days ago
+     | Fri Dec 31 17:32:01 1999 PST | Mon Jan 01 17:32:01 2001 PST | @ 367 days ago
+     | Sat Jan 01 17:32:01 2000 PST | epoch                        | @ 10958 days 1 hour 32 mins 1 sec
+     | Sat Jan 01 17:32:01 2000 PST | Wed Feb 28 17:32:01 1996 PST | @ 1403 days
+     | Sat Jan 01 17:32:01 2000 PST | Thu Feb 29 17:32:01 1996 PST | @ 1402 days
+     | Sat Jan 01 17:32:01 2000 PST | Fri Mar 01 17:32:01 1996 PST | @ 1401 days
+     | Sat Jan 01 17:32:01 2000 PST | Mon Dec 30 17:32:01 1996 PST | @ 1097 days
+     | Sat Jan 01 17:32:01 2000 PST | Tue Dec 31 17:32:01 1996 PST | @ 1096 days
+     | Sat Jan 01 17:32:01 2000 PST | Fri Dec 31 17:32:01 1999 PST | @ 1 day
+     | Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000 PST | @ 0
+     | Sat Jan 01 17:32:01 2000 PST | Tue Feb 15 23:14:30 2000 PST | @ 45 days 5 hours 42 mins 29 secs ago
+     | Sat Jan 01 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | @ 365 days ago
+     | Sat Jan 01 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST | @ 366 days ago
+     | Tue Feb 15 23:14:30 2000 PST | epoch                        | @ 11003 days 7 hours 14 mins 30 secs
+     | Tue Feb 15 23:14:30 2000 PST | Wed Feb 28 17:32:01 1996 PST | @ 1448 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Thu Feb 29 17:32:01 1996 PST | @ 1447 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Fri Mar 01 17:32:01 1996 PST | @ 1446 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Mon Dec 30 17:32:01 1996 PST | @ 1142 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Tue Dec 31 17:32:01 1996 PST | @ 1141 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Fri Dec 31 17:32:01 1999 PST | @ 46 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Sat Jan 01 17:32:01 2000 PST | @ 45 days 5 hours 42 mins 29 secs
+     | Tue Feb 15 23:14:30 2000 PST | Tue Feb 15 23:14:30 2000 PST | @ 0
+     | Tue Feb 15 23:14:30 2000 PST | Sun Dec 31 17:32:01 2000 PST | @ 319 days 18 hours 17 mins 31 secs ago
+     | Tue Feb 15 23:14:30 2000 PST | Mon Jan 01 17:32:01 2001 PST | @ 320 days 18 hours 17 mins 31 secs ago
+     | Sun Dec 31 17:32:01 2000 PST | epoch                        | @ 11323 days 1 hour 32 mins 1 sec
+     | Sun Dec 31 17:32:01 2000 PST | Wed Feb 28 17:32:01 1996 PST | @ 1768 days
+     | Sun Dec 31 17:32:01 2000 PST | Thu Feb 29 17:32:01 1996 PST | @ 1767 days
+     | Sun Dec 31 17:32:01 2000 PST | Fri Mar 01 17:32:01 1996 PST | @ 1766 days
+     | Sun Dec 31 17:32:01 2000 PST | Mon Dec 30 17:32:01 1996 PST | @ 1462 days
+     | Sun Dec 31 17:32:01 2000 PST | Tue Dec 31 17:32:01 1996 PST | @ 1461 days
+     | Sun Dec 31 17:32:01 2000 PST | Fri Dec 31 17:32:01 1999 PST | @ 366 days
+     | Sun Dec 31 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000 PST | @ 365 days
+     | Sun Dec 31 17:32:01 2000 PST | Tue Feb 15 23:14:30 2000 PST | @ 319 days 18 hours 17 mins 31 secs
+     | Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST | @ 0
+     | Sun Dec 31 17:32:01 2000 PST | Mon Jan 01 17:32:01 2001 PST | @ 1 day ago
+     | Mon Jan 01 17:32:01 2001 PST | epoch                        | @ 11324 days 1 hour 32 mins 1 sec
+     | Mon Jan 01 17:32:01 2001 PST | Wed Feb 28 17:32:01 1996 PST | @ 1769 days
+     | Mon Jan 01 17:32:01 2001 PST | Thu Feb 29 17:32:01 1996 PST | @ 1768 days
+     | Mon Jan 01 17:32:01 2001 PST | Fri Mar 01 17:32:01 1996 PST | @ 1767 days
+     | Mon Jan 01 17:32:01 2001 PST | Mon Dec 30 17:32:01 1996 PST | @ 1463 days
+     | Mon Jan 01 17:32:01 2001 PST | Tue Dec 31 17:32:01 1996 PST | @ 1462 days
+     | Mon Jan 01 17:32:01 2001 PST | Fri Dec 31 17:32:01 1999 PST | @ 367 days
+     | Mon Jan 01 17:32:01 2001 PST | Sat Jan 01 17:32:01 2000 PST | @ 366 days
+     | Mon Jan 01 17:32:01 2001 PST | Tue Feb 15 23:14:30 2000 PST | @ 320 days 18 hours 17 mins 31 secs
+     | Mon Jan 01 17:32:01 2001 PST | Sun Dec 31 17:32:01 2000 PST | @ 1 day
+     | Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001 PST | @ 0
+(121 rows)
 
-SELECT '' as fifty, d1 as datetime,
+SELECT '' as fifty, d1 as timestamp,
   date_part('year', d1) AS year, date_part('month', d1) AS month,
   date_part('day',d1) AS day, date_part('hour', d1) AS hour,
   date_part('minute', d1) AS minute, date_part('second', d1) AS second
-  FROM DATETIME_TBL
+  FROM TIMESTAMP_TBL
   WHERE isfinite(d1) and d1 >= '1-jan-1900 GMT'
-  ORDER BY datetime;
- fifty |            datetime             | year | month | day | hour | minute |  second  
+  ORDER BY timestamp;
+ fifty |            timestamp            | year | month | day | hour | minute |  second  
 -------+---------------------------------+------+-------+-----+------+--------+----------
        | epoch                           | 1969 |    12 |  31 |   16 |      0 |        0
        | Wed Feb 28 17:32:01 1996 PST    | 1996 |     2 |  28 |   17 |     32 |        1
@@ -446,10 +489,11 @@ SELECT '' as fifty, d1 as datetime,
        | Wed Dec 31 17:32:01 1997 PST    | 1997 |    12 |  31 |   17 |     32 |        1
        | Fri Dec 31 17:32:01 1999 PST    | 1999 |    12 |  31 |   17 |     32 |        1
        | Sat Jan 01 17:32:01 2000 PST    | 2000 |     1 |   1 |   17 |     32 |        1
+       | Tue Feb 15 23:14:30 2000 PST    | 2000 |     2 |  15 |   23 |     14 |       30
        | 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
        | Sat Feb 16 17:32:01 2097        | 2097 |     2 |  16 |   17 |     32 |        1
-(49 rows)
+(50 rows)
 
 --
 -- abstime, reltime arithmetic
@@ -470,48 +514,50 @@ SELECT '' AS four, f1 AS abstime,
 (4 rows)
 
 --
--- conversions
+-- Conversions
 --
-SELECT '' AS ten, f1 AS datetime, date( f1) AS date
-  FROM TEMP_DATETIME
-  WHERE f1 <> datetime 'current'
+SELECT '' AS "11", f1 AS timestamp, date( f1) AS date
+  FROM TEMP_TIMESTAMP
+  WHERE f1 <> timestamp 'current'
   ORDER BY date;
- ten |           datetime           |    date    
------+------------------------------+------------
-     | epoch                        | 01-01-1970
-     | Wed Feb 28 17:32:01 1996 PST | 02-28-1996
-     | Thu Feb 29 17:32:01 1996 PST | 02-29-1996
-     | Fri Mar 01 17:32:01 1996 PST | 03-01-1996
-     | Mon Dec 30 17:32:01 1996 PST | 12-30-1996
-     | Tue Dec 31 17:32:01 1996 PST | 12-31-1996
-     | Fri Dec 31 17:32:01 1999 PST | 12-31-1999
-     | Sat Jan 01 17:32:01 2000 PST | 01-01-2000
-     | Sun Dec 31 17:32:01 2000 PST | 12-31-2000
-     | Mon Jan 01 17:32:01 2001 PST | 01-01-2001
-(10 rows)
+ 11 |          timestamp           |    date    
+----+------------------------------+------------
+    | epoch                        | 01-01-1970
+    | Wed Feb 28 17:32:01 1996 PST | 02-28-1996
+    | Thu Feb 29 17:32:01 1996 PST | 02-29-1996
+    | Fri Mar 01 17:32:01 1996 PST | 03-01-1996
+    | Mon Dec 30 17:32:01 1996 PST | 12-30-1996
+    | Tue Dec 31 17:32:01 1996 PST | 12-31-1996
+    | Fri Dec 31 17:32:01 1999 PST | 12-31-1999
+    | Sat Jan 01 17:32:01 2000 PST | 01-01-2000
+    | Tue Feb 15 23:14:30 2000 PST | 02-15-2000
+    | Sun Dec 31 17:32:01 2000 PST | 12-31-2000
+    | Mon Jan 01 17:32:01 2001 PST | 01-01-2001
+(11 rows)
 
-SELECT '' AS ten, f1 AS datetime, abstime( f1) AS abstime
-  FROM TEMP_DATETIME
+SELECT '' AS "11", f1 AS timestamp, abstime( f1) AS abstime
+  FROM TEMP_TIMESTAMP
   ORDER BY abstime;
- ten |           datetime           |           abstime            
------+------------------------------+------------------------------
-     | epoch                        | epoch
-     | Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST
-     | Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST
-     | Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST
-     | Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST
-     | Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST
-     | Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999 PST
-     | Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000 PST
-     | Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST
-     | Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001 PST
-(10 rows)
+ 11 |          timestamp           |           abstime            
+----+------------------------------+------------------------------
+    | epoch                        | epoch
+    | Wed Feb 28 17:32:01 1996 PST | Wed Feb 28 17:32:01 1996 PST
+    | Thu Feb 29 17:32:01 1996 PST | Thu Feb 29 17:32:01 1996 PST
+    | Fri Mar 01 17:32:01 1996 PST | Fri Mar 01 17:32:01 1996 PST
+    | Mon Dec 30 17:32:01 1996 PST | Mon Dec 30 17:32:01 1996 PST
+    | Tue Dec 31 17:32:01 1996 PST | Tue Dec 31 17:32:01 1996 PST
+    | Fri Dec 31 17:32:01 1999 PST | Fri Dec 31 17:32:01 1999 PST
+    | Sat Jan 01 17:32:01 2000 PST | Sat Jan 01 17:32:01 2000 PST
+    | Tue Feb 15 23:14:30 2000 PST | Tue Feb 15 23:14:30 2000 PST
+    | Sun Dec 31 17:32:01 2000 PST | Sun Dec 31 17:32:01 2000 PST
+    | Mon Jan 01 17:32:01 2001 PST | Mon Jan 01 17:32:01 2001 PST
+(11 rows)
 
-SELECT '' AS five, f1 AS abstime, date( f1) AS date
+SELECT '' AS four, f1 AS abstime, date( f1) AS date
   FROM ABSTIME_TBL
   WHERE isfinite(f1) AND f1 <> abstime 'current'
   ORDER BY date;
- five |           abstime            |    date    
+ four |           abstime            |    date    
 ------+------------------------------+------------
       | Sat May 10 23:59:12 1947 PST | 05-10-1947
       | epoch                        | 01-01-1970
@@ -519,9 +565,9 @@ SELECT '' AS five, f1 AS abstime, date( f1) AS date
       | Mon May 01 00:30:30 1995 PDT | 05-01-1995
 (4 rows)
 
-SELECT '' AS five, d1 AS datetime, abstime(d1) AS abstime
-  FROM DATETIME_TBL WHERE NOT isfinite(d1);
- five | datetime  |  abstime  
+SELECT '' AS five, d1 AS timestamp, abstime(d1) AS abstime
+  FROM TIMESTAMP_TBL WHERE NOT isfinite(d1);
+ five | timestamp |  abstime  
 ------+-----------+-----------
       | invalid   | invalid
       | -infinity | -infinity
@@ -530,18 +576,18 @@ SELECT '' AS five, d1 AS datetime, abstime(d1) AS abstime
       | invalid   | invalid
 (5 rows)
 
-SELECT '' AS three, f1 as abstime, datetime(f1) AS datetime
+SELECT '' AS three, f1 as abstime, timestamp(f1) AS timestamp
   FROM ABSTIME_TBL WHERE NOT isfinite(f1);
- three |  abstime  | datetime  
+ three |  abstime  | timestamp 
 -------+-----------+-----------
        | infinity  | infinity
        | -infinity | -infinity
        | invalid   | invalid
 (3 rows)
 
-SELECT '' AS ten, f1 AS timespan, reltime( f1) AS reltime
-  FROM TIMESPAN_TBL;
- ten |           timespan            |            reltime            
+SELECT '' AS ten, f1 AS interval, reltime( f1) AS reltime
+  FROM INTERVAL_TBL;
+ ten |           interval            |            reltime            
 -----+-------------------------------+-------------------------------
      | @ 1 min                       | @ 1 min
      | @ 5 hours                     | @ 5 hours
@@ -555,9 +601,9 @@ SELECT '' AS ten, f1 AS timespan, reltime( f1) AS reltime
      | @ 5 mons 12 hours             | @ 5 mons 12 hours
 (10 rows)
 
-SELECT '' AS six, f1 as reltime, timespan( f1) AS timespan
+SELECT '' AS six, f1 as reltime, interval( f1) AS interval
   FROM RELTIME_TBL;
- six |    reltime    |   timespan    
+ six |    reltime    |   interval    
 -----+---------------+---------------
      | @ 1 min       | @ 1 min
      | @ 5 hours     | @ 5 hours
@@ -567,520 +613,14 @@ SELECT '' AS six, f1 as reltime, timespan( f1) AS timespan
      | @ 14 secs ago | @ 14 secs ago
 (6 rows)
 
-DROP TABLE TEMP_DATETIME;
---
--- formats
---
-SET DateStyle TO 'US,Postgres';
-SHOW DateStyle;
-NOTICE:  DateStyle is Postgres with US (NonEuropean) conventions
-SELECT '' AS sixty_two, d1 AS us_postgres FROM DATETIME_TBL;
- sixty_two |           us_postgres           
------------+---------------------------------
-           | invalid
-           | -infinity
-           | infinity
-           | epoch
-           | Mon Feb 10 17:32:01 1997 PST
-           | invalid
-           | invalid
-           | Mon Feb 10 17:32:01.00 1997 PST
-           | Mon Feb 10 17:32:02.00 1997 PST
-           | Mon Feb 10 17:32:01.40 1997 PST
-           | Mon Feb 10 17:32:01.50 1997 PST
-           | Mon Feb 10 17:32:01.60 1997 PST
-           | Thu Jan 02 00:00:00 1997 PST
-           | Thu Jan 02 03:04:05 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Tue Jun 10 17:32:01 1997 PDT
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:00 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 17:32:01 1997 PST
-           | Mon Feb 10 09:32:01 1997 PST
-           | Mon Feb 10 09:32:01 1997 PST
-           | Mon Feb 10 09:32:01 1997 PST
-           | Tue Jun 10 18:32:01 1997 PDT
-           | Mon Feb 10 17:32:01 1997 PST
-           | Tue Feb 11 17:32:01 1997 PST
-           | Wed Feb 12 17:32:01 1997 PST
-           | Thu Feb 13 17:32:01 1997 PST
-           | Fri Feb 14 17:32:01 1997 PST
-           | Sat Feb 15 17:32:01 1997 PST
-           | Sun Feb 16 17:32:01 1997 PST
-           | Tue Feb 16 17:32 0097 BC
-           | Sat Feb 16 17:32:01 0097
-           | Thu Feb 16 17:32:01 0597
-           | Tue Feb 16 17:32:01 1097
-           | Sat Feb 16 17:32:01 1697
-           | Thu Feb 16 17:32:01 1797
-           | Tue Feb 16 17:32:01 1897
-           | Sun Feb 16 17:32:01 1997 PST
-           | Sat Feb 16 17:32:01 2097
-           | Wed Feb 28 17:32:01 1996 PST
-           | Thu Feb 29 17:32:01 1996 PST
-           | Fri Mar 01 17:32:01 1996 PST
-           | Mon Dec 30 17:32:01 1996 PST
-           | Tue Dec 31 17:32:01 1996 PST
-           | Wed Jan 01 17:32:01 1997 PST
-           | Fri Feb 28 17:32:01 1997 PST
-           | Sat Mar 01 17:32:01 1997 PST
-           | Tue Dec 30 17:32:01 1997 PST
-           | Wed Dec 31 17:32:01 1997 PST
-           | Fri Dec 31 17:32:01 1999 PST
-           | Sat Jan 01 17:32:01 2000 PST
-           | Sun Dec 31 17:32:01 2000 PST
-           | Mon Jan 01 17:32:01 2001 PST
-(61 rows)
-
-SELECT '' AS eight, f1 AS us_postgres FROM ABSTIME_TBL;
- eight |         us_postgres          
--------+------------------------------
-       | Sun Jan 14 03:14:21 1973 PST
-       | Mon May 01 00:30:30 1995 PDT
-       | epoch
-       | current
-       | infinity
-       | -infinity
-       | Sat May 10 23:59:12 1947 PST
-       | invalid
-(8 rows)
-
-SET DateStyle TO 'US,ISO';
-SELECT '' AS sixty_two, d1 AS us_iso FROM DATETIME_TBL;
- sixty_two |          us_iso           
------------+---------------------------
-           | invalid
-           | -infinity
-           | infinity
-           | epoch
-           | 1997-02-10 17:32:01-08
-           | invalid
-           | invalid
-           | 1997-02-10 17:32:01.00-08
-           | 1997-02-10 17:32:02.00-08
-           | 1997-02-10 17:32:01.40-08
-           | 1997-02-10 17:32:01.50-08
-           | 1997-02-10 17:32:01.60-08
-           | 1997-01-02 00:00:00-08
-           | 1997-01-02 03:04:05-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-06-10 17:32:01-07
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:00-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 17:32:01-08
-           | 1997-02-10 09:32:01-08
-           | 1997-02-10 09:32:01-08
-           | 1997-02-10 09:32:01-08
-           | 1997-06-10 18:32:01-07
-           | 1997-02-10 17:32:01-08
-           | 1997-02-11 17:32:01-08
-           | 1997-02-12 17:32:01-08
-           | 1997-02-13 17:32:01-08
-           | 1997-02-14 17:32:01-08
-           | 1997-02-15 17:32:01-08
-           | 1997-02-16 17:32:01-08
-           | 0097-02-16 17:32 BC
-           | 0097-02-16 17:32:01
-           | 0597-02-16 17:32:01
-           | 1097-02-16 17:32:01
-           | 1697-02-16 17:32:01
-           | 1797-02-16 17:32:01
-           | 1897-02-16 17:32:01
-           | 1997-02-16 17:32:01-08
-           | 2097-02-16 17:32:01
-           | 1996-02-28 17:32:01-08
-           | 1996-02-29 17:32:01-08
-           | 1996-03-01 17:32:01-08
-           | 1996-12-30 17:32:01-08
-           | 1996-12-31 17:32:01-08
-           | 1997-01-01 17:32:01-08
-           | 1997-02-28 17:32:01-08
-           | 1997-03-01 17:32:01-08
-           | 1997-12-30 17:32:01-08
-           | 1997-12-31 17:32:01-08
-           | 1999-12-31 17:32:01-08
-           | 2000-01-01 17:32:01-08
-           | 2000-12-31 17:32:01-08
-           | 2001-01-01 17:32:01-08
-(61 rows)
-
-SELECT '' AS eight, f1 AS us_iso FROM ABSTIME_TBL;
- eight |         us_iso         
--------+------------------------
-       | 1973-01-14 03:14:21-08
-       | 1995-05-01 00:30:30-07
-       | epoch
-       | current
-       | infinity
-       | -infinity
-       | 1947-05-10 23:59:12-08
-       | invalid
-(8 rows)
-
-SET DateStyle TO 'US,SQL';
-SHOW DateStyle;
-NOTICE:  DateStyle is SQL with US (NonEuropean) conventions
-SELECT '' AS sixty_two, d1 AS us_sql FROM DATETIME_TBL;
- sixty_two |           us_sql           
------------+----------------------------
-           | invalid
-           | -infinity
-           | infinity
-           | epoch
-           | 02/10/1997 17:32:01.00 PST
-           | invalid
-           | invalid
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:02.00 PST
-           | 02/10/1997 17:32:01.40 PST
-           | 02/10/1997 17:32:01.50 PST
-           | 02/10/1997 17:32:01.60 PST
-           | 01/02/1997 00:00:00.00 PST
-           | 01/02/1997 03:04:05.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 06/10/1997 17:32:01.00 PDT
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:00.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 17:32:01.00 PST
-           | 02/10/1997 09:32:01.00 PST
-           | 02/10/1997 09:32:01.00 PST
-           | 02/10/1997 09:32:01.00 PST
-           | 06/10/1997 18:32:01.00 PDT
-           | 02/10/1997 17:32:01.00 PST
-           | 02/11/1997 17:32:01.00 PST
-           | 02/12/1997 17:32:01.00 PST
-           | 02/13/1997 17:32:01.00 PST
-           | 02/14/1997 17:32:01.00 PST
-           | 02/15/1997 17:32:01.00 PST
-           | 02/16/1997 17:32:01.00 PST
-           | 02/16/0097 17:32 BC
-           | 02/16/0097 17:32:01.00
-           | 02/16/0597 17:32:01.00
-           | 02/16/1097 17:32:01.00
-           | 02/16/1697 17:32:01.00
-           | 02/16/1797 17:32:01.00
-           | 02/16/1897 17:32:01.00
-           | 02/16/1997 17:32:01.00 PST
-           | 02/16/2097 17:32:01.00
-           | 02/28/1996 17:32:01.00 PST
-           | 02/29/1996 17:32:01.00 PST
-           | 03/01/1996 17:32:01.00 PST
-           | 12/30/1996 17:32:01.00 PST
-           | 12/31/1996 17:32:01.00 PST
-           | 01/01/1997 17:32:01.00 PST
-           | 02/28/1997 17:32:01.00 PST
-           | 03/01/1997 17:32:01.00 PST
-           | 12/30/1997 17:32:01.00 PST
-           | 12/31/1997 17:32:01.00 PST
-           | 12/31/1999 17:32:01.00 PST
-           | 01/01/2000 17:32:01.00 PST
-           | 12/31/2000 17:32:01.00 PST
-           | 01/01/2001 17:32:01.00 PST
-(61 rows)
-
-SELECT '' AS eight, f1 AS us_sql FROM ABSTIME_TBL;
- eight |           us_sql           
--------+----------------------------
-       | 01/14/1973 03:14:21.00 PST
-       | 05/01/1995 00:30:30.00 PDT
-       | epoch
-       | current
-       | infinity
-       | -infinity
-       | 05/10/1947 23:59:12.00 PST
-       | invalid
-(8 rows)
-
-SET DateStyle TO 'European,Postgres';
-SHOW DateStyle;
-NOTICE:  DateStyle is Postgres with European conventions
-INSERT INTO DATETIME_TBL VALUES('13/06/1957');
-SELECT count(*) as one FROM DATETIME_TBL WHERE d1 = 'Jun 13 1957';
- one 
------
-   1
-(1 row)
-
-SELECT '' AS sixty_three, d1 AS european_postgres FROM DATETIME_TBL;
- sixty_three |        european_postgres        
--------------+---------------------------------
-             | invalid
-             | -infinity
-             | infinity
-             | epoch
-             | Mon 10 Feb 17:32:01 1997 PST
-             | invalid
-             | invalid
-             | Mon 10 Feb 17:32:01.00 1997 PST
-             | Mon 10 Feb 17:32:02.00 1997 PST
-             | Mon 10 Feb 17:32:01.40 1997 PST
-             | Mon 10 Feb 17:32:01.50 1997 PST
-             | Mon 10 Feb 17:32:01.60 1997 PST
-             | Thu 02 Jan 00:00:00 1997 PST
-             | Thu 02 Jan 03:04:05 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Tue 10 Jun 17:32:01 1997 PDT
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:00 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Mon 10 Feb 09:32:01 1997 PST
-             | Mon 10 Feb 09:32:01 1997 PST
-             | Mon 10 Feb 09:32:01 1997 PST
-             | Tue 10 Jun 18:32:01 1997 PDT
-             | Mon 10 Feb 17:32:01 1997 PST
-             | Tue 11 Feb 17:32:01 1997 PST
-             | Wed 12 Feb 17:32:01 1997 PST
-             | Thu 13 Feb 17:32:01 1997 PST
-             | Fri 14 Feb 17:32:01 1997 PST
-             | Sat 15 Feb 17:32:01 1997 PST
-             | Sun 16 Feb 17:32:01 1997 PST
-             | Tue 16 Feb 17:32 0097 BC
-             | Sat 16 Feb 17:32:01 0097
-             | Thu 16 Feb 17:32:01 0597
-             | Tue 16 Feb 17:32:01 1097
-             | Sat 16 Feb 17:32:01 1697
-             | Thu 16 Feb 17:32:01 1797
-             | Tue 16 Feb 17:32:01 1897
-             | Sun 16 Feb 17:32:01 1997 PST
-             | Sat 16 Feb 17:32:01 2097
-             | Wed 28 Feb 17:32:01 1996 PST
-             | Thu 29 Feb 17:32:01 1996 PST
-             | Fri 01 Mar 17:32:01 1996 PST
-             | Mon 30 Dec 17:32:01 1996 PST
-             | Tue 31 Dec 17:32:01 1996 PST
-             | Wed 01 Jan 17:32:01 1997 PST
-             | Fri 28 Feb 17:32:01 1997 PST
-             | Sat 01 Mar 17:32:01 1997 PST
-             | Tue 30 Dec 17:32:01 1997 PST
-             | Wed 31 Dec 17:32:01 1997 PST
-             | Fri 31 Dec 17:32:01 1999 PST
-             | Sat 01 Jan 17:32:01 2000 PST
-             | Sun 31 Dec 17:32:01 2000 PST
-             | Mon 01 Jan 17:32:01 2001 PST
-             | Thu 13 Jun 00:00:00 1957 PDT
-(62 rows)
-
-SELECT '' AS eight, f1 AS european_postgres FROM ABSTIME_TBL;
- eight |      european_postgres       
--------+------------------------------
-       | Sun 14 Jan 03:14:21 1973 PST
-       | Mon 01 May 00:30:30 1995 PDT
-       | epoch
-       | current
-       | infinity
-       | -infinity
-       | Sat 10 May 23:59:12 1947 PST
-       | invalid
-(8 rows)
-
-SET DateStyle TO 'European,ISO';
-SHOW DateStyle;
-NOTICE:  DateStyle is ISO with European conventions
-SELECT '' AS sixty_three, d1 AS european_iso FROM DATETIME_TBL;
- sixty_three |       european_iso        
--------------+---------------------------
-             | invalid
-             | -infinity
-             | infinity
-             | epoch
-             | 1997-02-10 17:32:01-08
-             | invalid
-             | invalid
-             | 1997-02-10 17:32:01.00-08
-             | 1997-02-10 17:32:02.00-08
-             | 1997-02-10 17:32:01.40-08
-             | 1997-02-10 17:32:01.50-08
-             | 1997-02-10 17:32:01.60-08
-             | 1997-01-02 00:00:00-08
-             | 1997-01-02 03:04:05-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-06-10 17:32:01-07
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:00-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 17:32:01-08
-             | 1997-02-10 09:32:01-08
-             | 1997-02-10 09:32:01-08
-             | 1997-02-10 09:32:01-08
-             | 1997-06-10 18:32:01-07
-             | 1997-02-10 17:32:01-08
-             | 1997-02-11 17:32:01-08
-             | 1997-02-12 17:32:01-08
-             | 1997-02-13 17:32:01-08
-             | 1997-02-14 17:32:01-08
-             | 1997-02-15 17:32:01-08
-             | 1997-02-16 17:32:01-08
-             | 0097-02-16 17:32 BC
-             | 0097-02-16 17:32:01
-             | 0597-02-16 17:32:01
-             | 1097-02-16 17:32:01
-             | 1697-02-16 17:32:01
-             | 1797-02-16 17:32:01
-             | 1897-02-16 17:32:01
-             | 1997-02-16 17:32:01-08
-             | 2097-02-16 17:32:01
-             | 1996-02-28 17:32:01-08
-             | 1996-02-29 17:32:01-08
-             | 1996-03-01 17:32:01-08
-             | 1996-12-30 17:32:01-08
-             | 1996-12-31 17:32:01-08
-             | 1997-01-01 17:32:01-08
-             | 1997-02-28 17:32:01-08
-             | 1997-03-01 17:32:01-08
-             | 1997-12-30 17:32:01-08
-             | 1997-12-31 17:32:01-08
-             | 1999-12-31 17:32:01-08
-             | 2000-01-01 17:32:01-08
-             | 2000-12-31 17:32:01-08
-             | 2001-01-01 17:32:01-08
-             | 1957-06-13 00:00:00-07
-(62 rows)
-
-SELECT '' AS eight, f1 AS european_iso FROM ABSTIME_TBL;
- eight |      european_iso      
--------+------------------------
-       | 1973-01-14 03:14:21-08
-       | 1995-05-01 00:30:30-07
-       | epoch
-       | current
-       | infinity
-       | -infinity
-       | 1947-05-10 23:59:12-08
-       | invalid
-(8 rows)
-
-SET DateStyle TO 'European,SQL';
-SHOW DateStyle;
-NOTICE:  DateStyle is SQL with European conventions
-SELECT '' AS sixty_three, d1 AS european_sql FROM DATETIME_TBL;
- sixty_three |        european_sql        
--------------+----------------------------
-             | invalid
-             | -infinity
-             | infinity
-             | epoch
-             | 10/02/1997 17:32:01.00 PST
-             | invalid
-             | invalid
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:02.00 PST
-             | 10/02/1997 17:32:01.40 PST
-             | 10/02/1997 17:32:01.50 PST
-             | 10/02/1997 17:32:01.60 PST
-             | 02/01/1997 00:00:00.00 PST
-             | 02/01/1997 03:04:05.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/06/1997 17:32:01.00 PDT
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:00.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 17:32:01.00 PST
-             | 10/02/1997 09:32:01.00 PST
-             | 10/02/1997 09:32:01.00 PST
-             | 10/02/1997 09:32:01.00 PST
-             | 10/06/1997 18:32:01.00 PDT
-             | 10/02/1997 17:32:01.00 PST
-             | 11/02/1997 17:32:01.00 PST
-             | 12/02/1997 17:32:01.00 PST
-             | 13/02/1997 17:32:01.00 PST
-             | 14/02/1997 17:32:01.00 PST
-             | 15/02/1997 17:32:01.00 PST
-             | 16/02/1997 17:32:01.00 PST
-             | 16/02/0097 17:32 BC
-             | 16/02/0097 17:32:01.00
-             | 16/02/0597 17:32:01.00
-             | 16/02/1097 17:32:01.00
-             | 16/02/1697 17:32:01.00
-             | 16/02/1797 17:32:01.00
-             | 16/02/1897 17:32:01.00
-             | 16/02/1997 17:32:01.00 PST
-             | 16/02/2097 17:32:01.00
-             | 28/02/1996 17:32:01.00 PST
-             | 29/02/1996 17:32:01.00 PST
-             | 01/03/1996 17:32:01.00 PST
-             | 30/12/1996 17:32:01.00 PST
-             | 31/12/1996 17:32:01.00 PST
-             | 01/01/1997 17:32:01.00 PST
-             | 28/02/1997 17:32:01.00 PST
-             | 01/03/1997 17:32:01.00 PST
-             | 30/12/1997 17:32:01.00 PST
-             | 31/12/1997 17:32:01.00 PST
-             | 31/12/1999 17:32:01.00 PST
-             | 01/01/2000 17:32:01.00 PST
-             | 31/12/2000 17:32:01.00 PST
-             | 01/01/2001 17:32:01.00 PST
-             | 13/06/1957 00:00:00.00 PDT
-(62 rows)
-
-SELECT '' AS eight, f1 AS european_sql FROM ABSTIME_TBL;
- eight |        european_sql        
--------+----------------------------
-       | 14/01/1973 03:14:21.00 PST
-       | 01/05/1995 00:30:30.00 PDT
-       | epoch
-       | current
-       | infinity
-       | -infinity
-       | 10/05/1947 23:59:12.00 PST
-       | invalid
-(8 rows)
-
-RESET DateStyle;
-SHOW DateStyle;
-NOTICE:  DateStyle is Postgres with US (NonEuropean) conventions
+DROP TABLE TEMP_TIMESTAMP;
 --
--- formats
+-- Formats
 --
 SET DateStyle TO 'US,Postgres';
 SHOW DateStyle;
 NOTICE:  DateStyle is Postgres with US (NonEuropean) conventions
-SELECT '' AS sixty_two, d1 AS us_postgres FROM DATETIME_TBL;
+SELECT '' AS sixty_two, d1 AS us_postgres FROM TIMESTAMP_TBL;
  sixty_two |           us_postgres           
 -----------+---------------------------------
            | invalid
@@ -1102,6 +642,7 @@ SELECT '' AS sixty_two, d1 AS us_postgres FROM DATETIME_TBL;
            | Mon Feb 10 17:32:01 1997 PST
            | Mon Feb 10 17:32:01 1997 PST
            | Tue Jun 10 17:32:01 1997 PDT
+           | Tue Feb 15 23:14:30 2000 PST
            | Mon Feb 10 17:32:01 1997 PST
            | Mon Feb 10 17:32:01 1997 PST
            | Mon Feb 10 17:32:00 1997 PST
@@ -1144,7 +685,6 @@ SELECT '' AS sixty_two, d1 AS us_postgres FROM DATETIME_TBL;
            | Sat Jan 01 17:32:01 2000 PST
            | Sun Dec 31 17:32:01 2000 PST
            | Mon Jan 01 17:32:01 2001 PST
-           | Thu Jun 13 00:00:00 1957 PDT
 (62 rows)
 
 SELECT '' AS eight, f1 AS us_postgres FROM ABSTIME_TBL;
@@ -1161,7 +701,7 @@ SELECT '' AS eight, f1 AS us_postgres FROM ABSTIME_TBL;
 (8 rows)
 
 SET DateStyle TO 'US,ISO';
-SELECT '' AS sixty_two, d1 AS us_iso FROM DATETIME_TBL;
+SELECT '' AS sixty_two, d1 AS us_iso FROM TIMESTAMP_TBL;
  sixty_two |          us_iso           
 -----------+---------------------------
            | invalid
@@ -1183,6 +723,7 @@ SELECT '' AS sixty_two, d1 AS us_iso FROM DATETIME_TBL;
            | 1997-02-10 17:32:01-08
            | 1997-02-10 17:32:01-08
            | 1997-06-10 17:32:01-07
+           | 2000-02-15 23:14:30-08
            | 1997-02-10 17:32:01-08
            | 1997-02-10 17:32:01-08
            | 1997-02-10 17:32:00-08
@@ -1225,7 +766,6 @@ SELECT '' AS sixty_two, d1 AS us_iso FROM DATETIME_TBL;
            | 2000-01-01 17:32:01-08
            | 2000-12-31 17:32:01-08
            | 2001-01-01 17:32:01-08
-           | 1957-06-13 00:00:00-07
 (62 rows)
 
 SELECT '' AS eight, f1 AS us_iso FROM ABSTIME_TBL;
@@ -1244,7 +784,7 @@ SELECT '' AS eight, f1 AS us_iso FROM ABSTIME_TBL;
 SET DateStyle TO 'US,SQL';
 SHOW DateStyle;
 NOTICE:  DateStyle is SQL with US (NonEuropean) conventions
-SELECT '' AS sixty_two, d1 AS us_sql FROM DATETIME_TBL;
+SELECT '' AS sixty_two, d1 AS us_sql FROM TIMESTAMP_TBL;
  sixty_two |           us_sql           
 -----------+----------------------------
            | invalid
@@ -1266,6 +806,7 @@ SELECT '' AS sixty_two, d1 AS us_sql FROM DATETIME_TBL;
            | 02/10/1997 17:32:01.00 PST
            | 02/10/1997 17:32:01.00 PST
            | 06/10/1997 17:32:01.00 PDT
+           | 02/15/2000 23:14:30.00 PST
            | 02/10/1997 17:32:01.00 PST
            | 02/10/1997 17:32:01.00 PST
            | 02/10/1997 17:32:00.00 PST
@@ -1308,7 +849,6 @@ SELECT '' AS sixty_two, d1 AS us_sql FROM DATETIME_TBL;
            | 01/01/2000 17:32:01.00 PST
            | 12/31/2000 17:32:01.00 PST
            | 01/01/2001 17:32:01.00 PST
-           | 06/13/1957 00:00:00.00 PDT
 (62 rows)
 
 SELECT '' AS eight, f1 AS us_sql FROM ABSTIME_TBL;
@@ -1327,14 +867,14 @@ SELECT '' AS eight, f1 AS us_sql FROM ABSTIME_TBL;
 SET DateStyle TO 'European,Postgres';
 SHOW DateStyle;
 NOTICE:  DateStyle is Postgres with European conventions
-INSERT INTO DATETIME_TBL VALUES('13/06/1957');
-SELECT count(*) as one FROM DATETIME_TBL WHERE d1 = 'Jun 13 1957';
+INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
+SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957';
  one 
 -----
-   2
+   1
 (1 row)
 
-SELECT '' AS sixty_three, d1 AS european_postgres FROM DATETIME_TBL;
+SELECT '' AS sixty_three, d1 AS european_postgres FROM TIMESTAMP_TBL;
  sixty_three |        european_postgres        
 -------------+---------------------------------
              | invalid
@@ -1356,6 +896,7 @@ SELECT '' AS sixty_three, d1 AS european_postgres FROM DATETIME_TBL;
              | Mon 10 Feb 17:32:01 1997 PST
              | Mon 10 Feb 17:32:01 1997 PST
              | Tue 10 Jun 17:32:01 1997 PDT
+             | Tue 15 Feb 23:14:30 2000 PST
              | Mon 10 Feb 17:32:01 1997 PST
              | Mon 10 Feb 17:32:01 1997 PST
              | Mon 10 Feb 17:32:00 1997 PST
@@ -1399,7 +940,6 @@ SELECT '' AS sixty_three, d1 AS european_postgres FROM DATETIME_TBL;
              | Sun 31 Dec 17:32:01 2000 PST
              | Mon 01 Jan 17:32:01 2001 PST
              | Thu 13 Jun 00:00:00 1957 PDT
-             | Thu 13 Jun 00:00:00 1957 PDT
 (63 rows)
 
 SELECT '' AS eight, f1 AS european_postgres FROM ABSTIME_TBL;
@@ -1418,7 +958,7 @@ SELECT '' AS eight, f1 AS european_postgres FROM ABSTIME_TBL;
 SET DateStyle TO 'European,ISO';
 SHOW DateStyle;
 NOTICE:  DateStyle is ISO with European conventions
-SELECT '' AS sixty_three, d1 AS european_iso FROM DATETIME_TBL;
+SELECT '' AS sixty_three, d1 AS european_iso FROM TIMESTAMP_TBL;
  sixty_three |       european_iso        
 -------------+---------------------------
              | invalid
@@ -1440,6 +980,7 @@ SELECT '' AS sixty_three, d1 AS european_iso FROM DATETIME_TBL;
              | 1997-02-10 17:32:01-08
              | 1997-02-10 17:32:01-08
              | 1997-06-10 17:32:01-07
+             | 2000-02-15 23:14:30-08
              | 1997-02-10 17:32:01-08
              | 1997-02-10 17:32:01-08
              | 1997-02-10 17:32:00-08
@@ -1483,7 +1024,6 @@ SELECT '' AS sixty_three, d1 AS european_iso FROM DATETIME_TBL;
              | 2000-12-31 17:32:01-08
              | 2001-01-01 17:32:01-08
              | 1957-06-13 00:00:00-07
-             | 1957-06-13 00:00:00-07
 (63 rows)
 
 SELECT '' AS eight, f1 AS european_iso FROM ABSTIME_TBL;
@@ -1502,7 +1042,7 @@ SELECT '' AS eight, f1 AS european_iso FROM ABSTIME_TBL;
 SET DateStyle TO 'European,SQL';
 SHOW DateStyle;
 NOTICE:  DateStyle is SQL with European conventions
-SELECT '' AS sixty_three, d1 AS european_sql FROM DATETIME_TBL;
+SELECT '' AS sixty_three, d1 AS european_sql FROM TIMESTAMP_TBL;
  sixty_three |        european_sql        
 -------------+----------------------------
              | invalid
@@ -1524,6 +1064,7 @@ SELECT '' AS sixty_three, d1 AS european_sql FROM DATETIME_TBL;
              | 10/02/1997 17:32:01.00 PST
              | 10/02/1997 17:32:01.00 PST
              | 10/06/1997 17:32:01.00 PDT
+             | 15/02/2000 23:14:30.00 PST
              | 10/02/1997 17:32:01.00 PST
              | 10/02/1997 17:32:01.00 PST
              | 10/02/1997 17:32:00.00 PST
@@ -1567,7 +1108,6 @@ SELECT '' AS sixty_three, d1 AS european_sql FROM DATETIME_TBL;
              | 31/12/2000 17:32:01.00 PST
              | 01/01/2001 17:32:01.00 PST
              | 13/06/1957 00:00:00.00 PDT
-             | 13/06/1957 00:00:00.00 PDT
 (63 rows)
 
 SELECT '' AS eight, f1 AS european_sql FROM ABSTIME_TBL;
similarity index 73%
rename from src/test/regress/expected/timespan.out
rename to src/test/regress/expected/interval.out
index f6bc67be2ff9db5ab3ff3cc1685cd5ad68906c22..3a5b24e41f7a2ffd48b860df2858e4b78c830774 100644 (file)
@@ -1,24 +1,24 @@
 --
--- TIMESPAN
+-- INTERVAL
 --
-CREATE TABLE TIMESPAN_TBL (f1 timespan);
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 1 minute');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 5 hour');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 10 day');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 34 year');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 3 months');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 14 seconds ago');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('1 day 2 hours 3 minutes 4 seconds');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('6 years');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months 12 hours');
--- badly formatted timespan
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('badly formatted timespan');
-ERROR:  Bad timespan external representation 'badly formatted timespan'
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 30 eons ago');
-ERROR:  Bad timespan external representation '@ 30 eons ago'
--- test timespan operators
-SELECT '' AS ten, TIMESPAN_TBL.*;
+CREATE TABLE INTERVAL_TBL (f1 interval);
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 1 minute');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 5 hour');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 10 day');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 34 year');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 3 months');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 14 seconds ago');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('1 day 2 hours 3 minutes 4 seconds');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('6 years');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('5 months');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('5 months 12 hours');
+-- badly formatted interval
+INSERT INTO INTERVAL_TBL (f1) VALUES ('badly formatted interval');
+ERROR:  Bad interval external representation 'badly formatted interval'
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');
+ERROR:  Bad interval external representation '@ 30 eons ago'
+-- test interval operators
+SELECT '' AS ten, INTERVAL_TBL.*;
  ten |              f1               
 -----+-------------------------------
      | @ 1 min
@@ -33,8 +33,8 @@ SELECT '' AS ten, TIMESPAN_TBL.*;
      | @ 5 mons 12 hours
 (10 rows)
 
-SELECT '' AS nine, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 <> timespan '@ 10 days';
+SELECT '' AS nine, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';
  nine |              f1               
 ------+-------------------------------
       | @ 1 min
@@ -48,8 +48,8 @@ SELECT '' AS nine, TIMESPAN_TBL.*
       | @ 5 mons 12 hours
 (9 rows)
 
-SELECT '' AS three, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 <= timespan '@ 5 hours';
+SELECT '' AS three, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';
  three |      f1       
 -------+---------------
        | @ 1 min
@@ -57,8 +57,8 @@ SELECT '' AS three, TIMESPAN_TBL.*
        | @ 14 secs ago
 (3 rows)
 
-SELECT '' AS three, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 < timespan '@ 1 day';
+SELECT '' AS three, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 < interval '@ 1 day';
  three |      f1       
 -------+---------------
        | @ 1 min
@@ -66,15 +66,15 @@ SELECT '' AS three, TIMESPAN_TBL.*
        | @ 14 secs ago
 (3 rows)
 
-SELECT '' AS one, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 = timespan '@ 34 years';
+SELECT '' AS one, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 = interval '@ 34 years';
  one |     f1     
 -----+------------
      | @ 34 years
 (1 row)
 
-SELECT '' AS five, TIMESPAN_TBL.* 
-   WHERE TIMESPAN_TBL.f1 >= timespan '@ 1 month';
+SELECT '' AS five, INTERVAL_TBL.* 
+   WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';
  five |        f1         
 ------+-------------------
       | @ 34 years
@@ -84,8 +84,8 @@ SELECT '' AS five, TIMESPAN_TBL.*
       | @ 5 mons 12 hours
 (5 rows)
 
-SELECT '' AS nine, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 > timespan '@ 3 seconds ago';
+SELECT '' AS nine, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';
  nine |              f1               
 ------+-------------------------------
       | @ 1 min
@@ -100,7 +100,7 @@ SELECT '' AS nine, TIMESPAN_TBL.*
 (9 rows)
 
 SELECT '' AS fortyfive, r1.*, r2.*
-   FROM TIMESPAN_TBL r1, TIMESPAN_TBL r2
+   FROM INTERVAL_TBL r1, INTERVAL_TBL r2
    WHERE r1.f1 > r2.f1
    ORDER BY r1.f1, r2.f1;
  fortyfive |              f1               |              f1               
similarity index 77%
rename from src/test/regress/expected/datetime.out
rename to src/test/regress/expected/timestamp.out
index 3cd8f44b5070fe848048590c07206b123d6f8906..37705b615c8f95936e5a7d3faad4aadfcee64192 100644 (file)
 -- Shorthand values
 -- Not directly usable for regression testing since these are not constants.
 -- So, just try to test parser and hope for the best - tgl 97/04/26
-SELECT (datetime 'today' = (datetime 'yesterday' + timespan '1 day')) as "True";
+SELECT (timestamp 'today' = (timestamp 'yesterday' + interval '1 day')) as "True";
  True 
 ------
  t
 (1 row)
 
-SELECT (datetime 'today' = (datetime 'tomorrow' - timespan '1 day')) as "True";
+SELECT (timestamp 'today' = (timestamp 'tomorrow' - interval '1 day')) as "True";
  True 
 ------
  t
 (1 row)
 
-SELECT (datetime 'tomorrow' = (datetime 'yesterday' + timespan '2 days')) as "True";
+SELECT (timestamp 'tomorrow' = (timestamp 'yesterday' + interval '2 days')) as "True";
  True 
 ------
  t
 (1 row)
 
-SELECT (datetime 'current' = 'now') as "True";
+SELECT (timestamp 'current' = 'now') as "True";
  True 
 ------
  t
 (1 row)
 
-SELECT (datetime 'now' - 'current') AS "ZeroSecs";
+SELECT (timestamp 'now' - 'current') AS "ZeroSecs";
  ZeroSecs 
 ----------
  @ 0
 (1 row)
 
 SET DateStyle = 'Postgres,noneuropean';
-SELECT datetime('1994-01-01', '11:00') AS "Jan_01_1994_11am";
+SELECT timestamp('1994-01-01', '11:00') AS "Jan_01_1994_11am";
        Jan_01_1994_11am       
 ------------------------------
  Sat Jan 01 11:00:00 1994 PST
 (1 row)
 
-CREATE TABLE DATETIME_TBL( d1 datetime);
-INSERT INTO DATETIME_TBL VALUES ('current');
-INSERT INTO DATETIME_TBL VALUES ('today');
-INSERT INTO DATETIME_TBL VALUES ('yesterday');
-INSERT INTO DATETIME_TBL VALUES ('tomorrow');
-INSERT INTO DATETIME_TBL VALUES ('tomorrow EST');
-INSERT INTO DATETIME_TBL VALUES ('tomorrow zulu');
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today';
+CREATE TABLE TIMESTAMP_TBL ( d1 timestamp);
+INSERT INTO TIMESTAMP_TBL VALUES ('current');
+INSERT INTO TIMESTAMP_TBL VALUES ('today');
+INSERT INTO TIMESTAMP_TBL VALUES ('yesterday');
+INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow');
+INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST');
+INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu');
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today';
  one 
 -----
    1
 (1 row)
 
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'tomorrow';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'tomorrow';
  one 
 -----
    1
 (1 row)
 
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'yesterday';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'yesterday';
  one 
 -----
    1
 (1 row)
 
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today' + timespan '1 day';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' + interval '1 day';
  one 
 -----
    1
 (1 row)
 
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today' - timespan '1 day';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' - interval '1 day';
  one 
 -----
    1
 (1 row)
 
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'now';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now';
  one 
 -----
    1
 (1 row)
 
-DELETE FROM DATETIME_TBL;
+DELETE FROM TIMESTAMP_TBL;
 -- verify uniform transaction time within transaction block
-INSERT INTO DATETIME_TBL VALUES ('current');
+INSERT INTO TIMESTAMP_TBL VALUES ('current');
 BEGIN;
-INSERT INTO DATETIME_TBL VALUES ('now');
-SELECT count(*) AS two FROM DATETIME_TBL WHERE d1 = datetime 'now';
+INSERT INTO TIMESTAMP_TBL VALUES ('now');
+SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now';
  two 
 -----
    2
 (1 row)
 
 END;
-DELETE FROM DATETIME_TBL;
+DELETE FROM TIMESTAMP_TBL;
 -- Special values
-INSERT INTO DATETIME_TBL VALUES ('invalid');
-INSERT INTO DATETIME_TBL VALUES ('-infinity');
-INSERT INTO DATETIME_TBL VALUES ('infinity');
-INSERT INTO DATETIME_TBL VALUES ('epoch');
+INSERT INTO TIMESTAMP_TBL VALUES ('invalid');
+INSERT INTO TIMESTAMP_TBL VALUES ('-infinity');
+INSERT INTO TIMESTAMP_TBL VALUES ('infinity');
+INSERT INTO TIMESTAMP_TBL VALUES ('epoch');
 -- Postgres v6.0 standard output format
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Invalid Abstime');
-INSERT INTO DATETIME_TBL VALUES ('Undefined Abstime');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Invalid Abstime');
+INSERT INTO TIMESTAMP_TBL VALUES ('Undefined Abstime');
 -- Variations on Postgres v6.1 standard output format
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
 -- ISO 8601 format
-INSERT INTO DATETIME_TBL VALUES ('1997-01-02');
-INSERT INTO DATETIME_TBL VALUES ('1997-01-02 03:04:05');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01-08');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01-0800');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01 -08:00');
-INSERT INTO DATETIME_TBL VALUES ('19970210 173201 -0800');
-INSERT INTO DATETIME_TBL VALUES ('1997-06-10 17:32:01 -07:00');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-01-02');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-01-02 03:04:05');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-08');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00');
+INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00');
+-- POSIX format
+INSERT INTO TIMESTAMP_TBL VALUES ('2000-02-15 23:14:30 GMT+8');
+INSERT INTO TIMESTAMP_TBL VALUES ('2000-02-15 23:14:30 EST+3');
+ERROR:  Bad timestamp external representation '2000-02-15 23:14:30 EST+3'
 -- Variations for acceptable input formats
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 5:32PM 1997');
-INSERT INTO DATETIME_TBL VALUES ('1997/02/10 17:32:01-0800');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01 PST');
-INSERT INTO DATETIME_TBL VALUES ('Feb-10-1997 17:32:01 PST');
-INSERT INTO DATETIME_TBL VALUES ('02-10-1997 17:32:01 PST');
-INSERT INTO DATETIME_TBL VALUES ('19970210 173201 PST');
-INSERT INTO DATETIME_TBL VALUES ('97FEB10 5:32:01PM UTC');
-INSERT INTO DATETIME_TBL VALUES ('97/02/10 17:32:01 UTC');
-INSERT INTO DATETIME_TBL VALUES ('97.041 17:32:01 UTC');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 5:32PM 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997/02/10 17:32:01-0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb-10-1997 17:32:01 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('02-10-1997 17:32:01 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('97FEB10 5:32:01PM UTC');
+INSERT INTO TIMESTAMP_TBL VALUES ('97/02/10 17:32:01 UTC');
+INSERT INTO TIMESTAMP_TBL VALUES ('97.041 17:32:01 UTC');
 -- Check date conversion and date arithmetic
-INSERT INTO DATETIME_TBL VALUES ('1997-06-10 18:32:01 PDT');
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 11 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 12 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 13 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 14 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 15 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 0097 BC');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 0097');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 0597');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1097');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1697');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1797');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1897');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 2097');
-INSERT INTO DATETIME_TBL VALUES ('Feb 28 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Feb 29 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Mar 01 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Dec 30 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 28 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 29 17:32:01 1997');
-ERROR:  Bad datetime external representation 'Feb 29 17:32:01 1997'
-INSERT INTO DATETIME_TBL VALUES ('Mar 01 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Dec 30 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 1999');
-INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 2000');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 2000');
-INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 2001');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 18:32:01 PDT');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 11 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 12 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 13 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 14 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 15 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0097 BC');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0097');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0597');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1097');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1697');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1797');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1897');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 2097');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1997');
+ERROR:  Bad timestamp external representation 'Feb 29 17:32:01 1997'
+INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1999');
+INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2000');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 2000');
+INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2001');
 -- Currently unsupported syntax and ranges
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 -0097');
-ERROR:  Bad datetime external representation 'Feb 16 17:32:01 -0097'
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 5097 BC');
-ERROR:  Datetime out of range 'Feb 16 17:32:01 5097 BC'
-SELECT '' AS sixtythree, d1 FROM DATETIME_TBL; 
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
+ERROR:  Bad timestamp external representation 'Feb 16 17:32:01 -0097'
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
+ERROR:  Timestamp out of range 'Feb 16 17:32:01 5097 BC'
+SELECT '' AS sixtythree, d1 FROM TIMESTAMP_TBL; 
  sixtythree |               d1                
 ------------+---------------------------------
             | invalid
@@ -193,6 +197,7 @@ SELECT '' AS sixtythree, d1 FROM DATETIME_TBL;
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Tue Jun 10 17:32:01 1997 PDT
+            | Tue Feb 15 23:14:30 2000 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:00 1997 PST
@@ -235,11 +240,11 @@ SELECT '' AS sixtythree, d1 FROM DATETIME_TBL;
             | Sat Jan 01 17:32:01 2000 PST
             | Sun Dec 31 17:32:01 2000 PST
             | Mon Jan 01 17:32:01 2001 PST
-(61 rows)
+(62 rows)
 
 -- Demonstrate functions and operators
-SELECT '' AS fortythree, d1 FROM DATETIME_TBL
-   WHERE d1 > datetime '1997-01-02' and d1 != datetime 'current';
+SELECT '' AS fortythree, d1 FROM TIMESTAMP_TBL
+   WHERE d1 > timestamp '1997-01-02' and d1 != timestamp 'current';
  fortythree |               d1                
 ------------+---------------------------------
             | infinity
@@ -255,6 +260,7 @@ SELECT '' AS fortythree, d1 FROM DATETIME_TBL
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Tue Jun 10 17:32:01 1997 PDT
+            | Tue Feb 15 23:14:30 2000 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:00 1997 PST
@@ -284,10 +290,10 @@ SELECT '' AS fortythree, d1 FROM DATETIME_TBL
             | Sat Jan 01 17:32:01 2000 PST
             | Sun Dec 31 17:32:01 2000 PST
             | Mon Jan 01 17:32:01 2001 PST
-(42 rows)
+(43 rows)
 
-SELECT '' AS fifteen, d1 FROM DATETIME_TBL
-   WHERE d1 < datetime '1997-01-02' and d1 != datetime 'current';
+SELECT '' AS fifteen, d1 FROM TIMESTAMP_TBL
+   WHERE d1 < timestamp '1997-01-02' and d1 != timestamp 'current';
  fifteen |              d1              
 ---------+------------------------------
          | -infinity
@@ -307,15 +313,15 @@ SELECT '' AS fifteen, d1 FROM DATETIME_TBL
          | Wed Jan 01 17:32:01 1997 PST
 (15 rows)
 
-SELECT '' AS one, d1 FROM DATETIME_TBL
-   WHERE d1 = datetime '1997-01-02' and d1 != datetime 'current';
+SELECT '' AS one, d1 FROM TIMESTAMP_TBL
+   WHERE d1 = timestamp '1997-01-02' and d1 != timestamp 'current';
  one |              d1              
 -----+------------------------------
      | Thu Jan 02 00:00:00 1997 PST
 (1 row)
 
-SELECT '' AS fiftyeight, d1 FROM DATETIME_TBL
-   WHERE d1 != datetime '1997-01-02' and d1 != datetime 'current';
+SELECT '' AS fiftyeight, d1 FROM TIMESTAMP_TBL
+   WHERE d1 != timestamp '1997-01-02' and d1 != timestamp 'current';
  fiftyeight |               d1                
 ------------+---------------------------------
             | -infinity
@@ -333,6 +339,7 @@ SELECT '' AS fiftyeight, d1 FROM DATETIME_TBL
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Tue Jun 10 17:32:01 1997 PDT
+            | Tue Feb 15 23:14:30 2000 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:01 1997 PST
             | Mon Feb 10 17:32:00 1997 PST
@@ -375,10 +382,10 @@ SELECT '' AS fiftyeight, d1 FROM DATETIME_TBL
             | Sat Jan 01 17:32:01 2000 PST
             | Sun Dec 31 17:32:01 2000 PST
             | Mon Jan 01 17:32:01 2001 PST
-(57 rows)
+(58 rows)
 
-SELECT '' AS sixteen, d1 FROM DATETIME_TBL
-   WHERE d1 <= datetime '1997-01-02' and d1 != datetime 'current';
+SELECT '' AS sixteen, d1 FROM TIMESTAMP_TBL
+   WHERE d1 <= timestamp '1997-01-02' and d1 != timestamp 'current';
  sixteen |              d1              
 ---------+------------------------------
          | -infinity
@@ -399,8 +406,8 @@ SELECT '' AS sixteen, d1 FROM DATETIME_TBL
          | Wed Jan 01 17:32:01 1997 PST
 (16 rows)
 
-SELECT '' AS fortyfour, d1 FROM DATETIME_TBL
-   WHERE d1 >= datetime '1997-01-02' and d1 != datetime 'current';
+SELECT '' AS fortyfour, d1 FROM TIMESTAMP_TBL
+   WHERE d1 >= timestamp '1997-01-02' and d1 != timestamp 'current';
  fortyfour |               d1                
 -----------+---------------------------------
            | infinity
@@ -417,6 +424,7 @@ SELECT '' AS fortyfour, d1 FROM DATETIME_TBL
            | Mon Feb 10 17:32:01 1997 PST
            | Mon Feb 10 17:32:01 1997 PST
            | Tue Jun 10 17:32:01 1997 PDT
+           | Tue Feb 15 23:14:30 2000 PST
            | Mon Feb 10 17:32:01 1997 PST
            | Mon Feb 10 17:32:01 1997 PST
            | Mon Feb 10 17:32:00 1997 PST
@@ -446,9 +454,9 @@ SELECT '' AS fortyfour, d1 FROM DATETIME_TBL
            | Sat Jan 01 17:32:01 2000 PST
            | Sun Dec 31 17:32:01 2000 PST
            | Mon Jan 01 17:32:01 2001 PST
-(43 rows)
+(44 rows)
 
-SELECT '' AS sixtythree, d1 + timespan '1 year' AS one_year FROM DATETIME_TBL;
+SELECT '' AS sixtythree, d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
  sixtythree |            one_year             
 ------------+---------------------------------
             | invalid
@@ -470,6 +478,7 @@ SELECT '' AS sixtythree, d1 + timespan '1 year' AS one_year FROM DATETIME_TBL;
             | Tue Feb 10 17:32:01 1998 PST
             | Tue Feb 10 17:32:01 1998 PST
             | Wed Jun 10 17:32:01 1998 PDT
+            | Thu Feb 15 23:14:30 2001 PST
             | Tue Feb 10 17:32:01 1998 PST
             | Tue Feb 10 17:32:01 1998 PST
             | Tue Feb 10 17:32:00 1998 PST
@@ -512,9 +521,9 @@ SELECT '' AS sixtythree, d1 + timespan '1 year' AS one_year FROM DATETIME_TBL;
             | Mon Jan 01 17:32:01 2001 PST
             | Mon Dec 31 17:32:01 2001 PST
             | Tue Jan 01 17:32:01 2002 PST
-(61 rows)
+(62 rows)
 
-SELECT '' AS sixtythree, d1 - timespan '1 year' AS one_year FROM DATETIME_TBL;
+SELECT '' AS sixtythree, d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
  sixtythree |            one_year             
 ------------+---------------------------------
             | invalid
@@ -536,6 +545,7 @@ SELECT '' AS sixtythree, d1 - timespan '1 year' AS one_year FROM DATETIME_TBL;
             | Sat Feb 10 17:32:01 1996 PST
             | Sat Feb 10 17:32:01 1996 PST
             | Mon Jun 10 17:32:01 1996 PDT
+            | Mon Feb 15 23:14:30 1999 PST
             | Sat Feb 10 17:32:01 1996 PST
             | Sat Feb 10 17:32:01 1996 PST
             | Sat Feb 10 17:32:00 1996 PST
@@ -578,13 +588,13 @@ SELECT '' AS sixtythree, d1 - timespan '1 year' AS one_year FROM DATETIME_TBL;
             | Fri Jan 01 17:32:01 1999 PST
             | Fri Dec 31 17:32:01 1999 PST
             | Sat Jan 01 17:32:01 2000 PST
-(61 rows)
+(62 rows)
 
 -- Casting within a BETWEEN qualifier should probably be allowed by the parser. - tgl 97/04/26
---SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff
---   FROM DATETIME_TBL WHERE d1 BETWEEN datetime '1902-01-01' AND datetime '2038-01-01';
-SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff
-   FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
+--SELECT '' AS fifty, d1 - timestamp '1997-01-02' AS diff
+--   FROM TIMESTAMP_TBL WHERE d1 BETWEEN timestamp '1902-01-01' AND timestamp '2038-01-01';
+SELECT '' AS fifty, d1 - timestamp '1997-01-02' AS diff
+   FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
  fifty |                  diff                  
 -------+----------------------------------------
        | @ 9863 days 8 hours ago
@@ -601,6 +611,7 @@ SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff
        | @ 39 days 17 hours 32 mins 1 sec
        | @ 39 days 17 hours 32 mins 1 sec
        | @ 159 days 16 hours 32 mins 1 sec
+       | @ 1139 days 23 hours 14 mins 30 secs
        | @ 39 days 17 hours 32 mins 1 sec
        | @ 39 days 17 hours 32 mins 1 sec
        | @ 39 days 17 hours 32 mins
@@ -635,12 +646,12 @@ SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff
        | @ 1094 days 17 hours 32 mins 1 sec
        | @ 1459 days 17 hours 32 mins 1 sec
        | @ 1460 days 17 hours 32 mins 1 sec
-(48 rows)
+(49 rows)
 
 SELECT '' AS fortynine, date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
    date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
    date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
-   FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
+   FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
  fortynine | year | month | day | hour | minute |  second  
 -----------+------+-------+-----+------+--------+----------
            | 1969 |    12 |  31 |   16 |      0 |        0
@@ -657,6 +668,7 @@ SELECT '' AS fortynine, date_part( 'year', d1) AS year, date_part( 'month', d1)
            | 1997 |     2 |  10 |   17 |     32 |        1
            | 1997 |     2 |  10 |   17 |     32 |        1
            | 1997 |     6 |  10 |   17 |     32 |        1
+           | 2000 |     2 |  15 |   23 |     14 |       30
            | 1997 |     2 |  10 |   17 |     32 |        1
            | 1997 |     2 |  10 |   17 |     32 |        1
            | 1997 |     2 |  10 |   17 |     32 |        0
@@ -691,11 +703,11 @@ SELECT '' AS fortynine, date_part( 'year', d1) AS year, date_part( 'month', d1)
            | 2000 |     1 |   1 |   17 |     32 |        1
            | 2000 |    12 |  31 |   17 |     32 |        1
            | 2001 |     1 |   1 |   17 |     32 |        1
-(48 rows)
+(49 rows)
 
 SELECT '' AS fortynine, date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
    date_part( 'usec', d1) AS usec
-   FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
+   FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
  fortynine | quarter |         msec         |       usec        
 -----------+---------+----------------------+-------------------
            |       4 |                    0 |                 0
@@ -723,6 +735,7 @@ SELECT '' AS fortynine, date_part( 'quarter', d1) AS quarter, date_part( 'msec',
            |       1 |                    0 |                 0
            |       1 |                    0 |                 0
            |       1 |                    0 |                 0
+           |       1 |                    0 |                 0
            |       2 |                    0 |                 0
            |       1 |                    0 |                 0
            |       1 |                    0 |                 0
@@ -746,5 +759,5 @@ SELECT '' AS fortynine, date_part( 'quarter', d1) AS quarter, date_part( 'msec',
            |       1 |                    0 |                 0
            |       4 |                    0 |                 0
            |       1 |                    0 |                 0
-(48 rows)
+(49 rows)
 
index 3b8db49106c6c03dfbcd2cc17810e39becb9f8dc..a3098387750f97ec5266082eb490c82556c9c9a3 100644 (file)
@@ -557,7 +557,6 @@ SELECT user_relns() AS user_relns
  city
  copy_tbl
  d_star
- datetime_tbl
  default_seq
  default_tbl
  defaultexpr_tbl
@@ -582,6 +581,7 @@ SELECT user_relns() AS user_relns
  int2_tbl
  int4_tbl
  int8_tbl
+ interval_tbl
  iportaltest
  join3_tbl
  join4_tbl
@@ -616,7 +616,7 @@ SELECT user_relns() AS user_relns
  tenk1
  tenk2
  text_tbl
- timespan_tbl
+ timestamp_tbl
  tinterval_tbl
  toyemp
  varchar_tbl
diff --git a/src/test/regress/sql/datetime.sql b/src/test/regress/sql/datetime.sql
deleted file mode 100644 (file)
index 3b9400c..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
---
--- DATETIME
---
-
--- Shorthand values
--- Not directly usable for regression testing since these are not constants.
--- So, just try to test parser and hope for the best - tgl 97/04/26
-
-SELECT (datetime 'today' = (datetime 'yesterday' + timespan '1 day')) as "True";
-SELECT (datetime 'today' = (datetime 'tomorrow' - timespan '1 day')) as "True";
-SELECT (datetime 'tomorrow' = (datetime 'yesterday' + timespan '2 days')) as "True";
-SELECT (datetime 'current' = 'now') as "True";
-SELECT (datetime 'now' - 'current') AS "ZeroSecs";
-
-SET DateStyle = 'Postgres,noneuropean';
-SELECT datetime('1994-01-01', '11:00') AS "Jan_01_1994_11am";
-
-CREATE TABLE DATETIME_TBL( d1 datetime);
-
-INSERT INTO DATETIME_TBL VALUES ('current');
-INSERT INTO DATETIME_TBL VALUES ('today');
-INSERT INTO DATETIME_TBL VALUES ('yesterday');
-INSERT INTO DATETIME_TBL VALUES ('tomorrow');
-INSERT INTO DATETIME_TBL VALUES ('tomorrow EST');
-INSERT INTO DATETIME_TBL VALUES ('tomorrow zulu');
-
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today';
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'tomorrow';
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'yesterday';
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today' + timespan '1 day';
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today' - timespan '1 day';
-
-SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'now';
-
-DELETE FROM DATETIME_TBL;
-
--- verify uniform transaction time within transaction block
-INSERT INTO DATETIME_TBL VALUES ('current');
-BEGIN;
-INSERT INTO DATETIME_TBL VALUES ('now');
-SELECT count(*) AS two FROM DATETIME_TBL WHERE d1 = datetime 'now';
-END;
-DELETE FROM DATETIME_TBL;
-
--- Special values
-INSERT INTO DATETIME_TBL VALUES ('invalid');
-INSERT INTO DATETIME_TBL VALUES ('-infinity');
-INSERT INTO DATETIME_TBL VALUES ('infinity');
-INSERT INTO DATETIME_TBL VALUES ('epoch');
-
--- Postgres v6.0 standard output format
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Invalid Abstime');
-INSERT INTO DATETIME_TBL VALUES ('Undefined Abstime');
-
--- Variations on Postgres v6.1 standard output format
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
-INSERT INTO DATETIME_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
-
--- ISO 8601 format
-INSERT INTO DATETIME_TBL VALUES ('1997-01-02');
-INSERT INTO DATETIME_TBL VALUES ('1997-01-02 03:04:05');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01-08');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01-0800');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01 -08:00');
-INSERT INTO DATETIME_TBL VALUES ('19970210 173201 -0800');
-INSERT INTO DATETIME_TBL VALUES ('1997-06-10 17:32:01 -07:00');
-
--- Variations for acceptable input formats
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 5:32PM 1997');
-INSERT INTO DATETIME_TBL VALUES ('1997/02/10 17:32:01-0800');
-INSERT INTO DATETIME_TBL VALUES ('1997-02-10 17:32:01 PST');
-INSERT INTO DATETIME_TBL VALUES ('Feb-10-1997 17:32:01 PST');
-INSERT INTO DATETIME_TBL VALUES ('02-10-1997 17:32:01 PST');
-INSERT INTO DATETIME_TBL VALUES ('19970210 173201 PST');
-INSERT INTO DATETIME_TBL VALUES ('97FEB10 5:32:01PM UTC');
-INSERT INTO DATETIME_TBL VALUES ('97/02/10 17:32:01 UTC');
-INSERT INTO DATETIME_TBL VALUES ('97.041 17:32:01 UTC');
-
--- Check date conversion and date arithmetic
-INSERT INTO DATETIME_TBL VALUES ('1997-06-10 18:32:01 PDT');
-
-INSERT INTO DATETIME_TBL VALUES ('Feb 10 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 11 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 12 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 13 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 14 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 15 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1997');
-
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 0097 BC');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 0097');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 0597');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1097');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1697');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1797');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1897');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 2097');
-
-INSERT INTO DATETIME_TBL VALUES ('Feb 28 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Feb 29 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Mar 01 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Dec 30 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 1996');
-INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 28 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Feb 29 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Mar 01 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Dec 30 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 1997');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 1999');
-INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 2000');
-INSERT INTO DATETIME_TBL VALUES ('Dec 31 17:32:01 2000');
-INSERT INTO DATETIME_TBL VALUES ('Jan 01 17:32:01 2001');
-
--- Currently unsupported syntax and ranges
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 -0097');
-INSERT INTO DATETIME_TBL VALUES ('Feb 16 17:32:01 5097 BC');
-
-SELECT '' AS sixtythree, d1 FROM DATETIME_TBL; 
-
--- Demonstrate functions and operators
-SELECT '' AS fortythree, d1 FROM DATETIME_TBL
-   WHERE d1 > datetime '1997-01-02' and d1 != datetime 'current';
-
-SELECT '' AS fifteen, d1 FROM DATETIME_TBL
-   WHERE d1 < datetime '1997-01-02' and d1 != datetime 'current';
-
-SELECT '' AS one, d1 FROM DATETIME_TBL
-   WHERE d1 = datetime '1997-01-02' and d1 != datetime 'current';
-
-SELECT '' AS fiftyeight, d1 FROM DATETIME_TBL
-   WHERE d1 != datetime '1997-01-02' and d1 != datetime 'current';
-
-SELECT '' AS sixteen, d1 FROM DATETIME_TBL
-   WHERE d1 <= datetime '1997-01-02' and d1 != datetime 'current';
-
-SELECT '' AS fortyfour, d1 FROM DATETIME_TBL
-   WHERE d1 >= datetime '1997-01-02' and d1 != datetime 'current';
-
-SELECT '' AS sixtythree, d1 + timespan '1 year' AS one_year FROM DATETIME_TBL;
-
-SELECT '' AS sixtythree, d1 - timespan '1 year' AS one_year FROM DATETIME_TBL;
-
--- Casting within a BETWEEN qualifier should probably be allowed by the parser. - tgl 97/04/26
---SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff
---   FROM DATETIME_TBL WHERE d1 BETWEEN datetime '1902-01-01' AND datetime '2038-01-01';
-SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff
-   FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-
-SELECT '' AS fortynine, date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
-   date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
-   date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
-   FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-
-SELECT '' AS fortynine, date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
-   date_part( 'usec', d1) AS usec
-   FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
-
index 247910ffb642736024419d16d5305351bb85ea95..baa59c02f30aa8d7bf4d7131f4f3814084eede3e 100644 (file)
@@ -3,52 +3,52 @@
 --
 
 --
--- datetime, timespan arithmetic
+-- timestamp, interval arithmetic
 --
 
-SELECT datetime '1996-03-01' - timespan '1 second' AS "Feb 29";
-SELECT datetime '1999-03-01' - timespan '1 second' AS "Feb 28";
-SELECT datetime '2000-03-01' - timespan '1 second' AS "Feb 29";
-SELECT datetime '1999-12-01' + timespan '1 month - 1 second' AS "Dec 31";
+SELECT timestamp '1996-03-01' - interval '1 second' AS "Feb 29";
+SELECT timestamp '1999-03-01' - interval '1 second' AS "Feb 28";
+SELECT timestamp '2000-03-01' - interval '1 second' AS "Feb 29";
+SELECT timestamp '1999-12-01' + interval '1 month - 1 second' AS "Dec 31";
 
-CREATE TABLE TEMP_DATETIME (f1 datetime);
+CREATE TABLE TEMP_TIMESTAMP (f1 timestamp);
 
 -- get some candidate input values
 
-INSERT INTO TEMP_DATETIME (f1)
-  SELECT d1 FROM DATETIME_TBL
+INSERT INTO TEMP_TIMESTAMP (f1)
+  SELECT d1 FROM TIMESTAMP_TBL
   WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997'
    OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010';
 
-SELECT '' AS ten, f1 AS datetime
-  FROM TEMP_DATETIME
-  ORDER BY datetime;
+SELECT '' AS "11", f1 AS timestamp
+  FROM TEMP_TIMESTAMP
+  ORDER BY timestamp;
 
-SELECT '' AS hundred, d.f1 AS datetime, t.f1 AS timespan, d.f1 + t.f1 AS plus
-  FROM TEMP_DATETIME d, TIMESPAN_TBL t
-  ORDER BY plus, datetime, timespan;
+SELECT '' AS "110", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
+  FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
+  ORDER BY plus, timestamp, interval;
 
-SELECT '' AS hundred, d.f1 AS datetime, t.f1 AS timespan, d.f1 - t.f1 AS minus
-  FROM TEMP_DATETIME d, TIMESPAN_TBL t
+SELECT '' AS "110", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
+  FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
   WHERE isfinite(d.f1)
-  ORDER BY minus, datetime, timespan;
+  ORDER BY minus, timestamp, interval;
 
-SELECT '' AS ten, d.f1 AS datetime, datetime '1980-01-06 00:00 GMT' AS gpstime_zero,
-   d.f1 - datetime '1980-01-06 00:00 GMT' AS difference
-  FROM TEMP_DATETIME d
+SELECT '' AS "11", d.f1 AS timestamp, timestamp '1980-01-06 00:00 GMT' AS gpstime_zero,
+   d.f1 - timestamp '1980-01-06 00:00 GMT' AS difference
+  FROM TEMP_TIMESTAMP d
   ORDER BY difference;
 
-SELECT '' AS hundred, d1.f1 AS datetime1, d2.f1 AS datetime2, d1.f1 - d2.f1 AS difference
-  FROM TEMP_DATETIME d1, TEMP_DATETIME d2
-  ORDER BY datetime1, datetime2, difference;
+SELECT '' AS "121", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
+  FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2
+  ORDER BY timestamp1, timestamp2, difference;
 
-SELECT '' as fifty, d1 as datetime,
+SELECT '' as fifty, d1 as timestamp,
   date_part('year', d1) AS year, date_part('month', d1) AS month,
   date_part('day',d1) AS day, date_part('hour', d1) AS hour,
   date_part('minute', d1) AS minute, date_part('second', d1) AS second
-  FROM DATETIME_TBL
+  FROM TIMESTAMP_TBL
   WHERE isfinite(d1) and d1 >= '1-jan-1900 GMT'
-  ORDER BY datetime;
+  ORDER BY timestamp;
 
 --
 -- abstime, reltime arithmetic
@@ -63,52 +63,52 @@ SELECT '' AS four, f1 AS abstime,
   ORDER BY abstime;
 
 --
--- conversions
+-- Conversions
 --
 
-SELECT '' AS ten, f1 AS datetime, date( f1) AS date
-  FROM TEMP_DATETIME
-  WHERE f1 <> datetime 'current'
+SELECT '' AS "11", f1 AS timestamp, date( f1) AS date
+  FROM TEMP_TIMESTAMP
+  WHERE f1 <> timestamp 'current'
   ORDER BY date;
 
-SELECT '' AS ten, f1 AS datetime, abstime( f1) AS abstime
-  FROM TEMP_DATETIME
+SELECT '' AS "11", f1 AS timestamp, abstime( f1) AS abstime
+  FROM TEMP_TIMESTAMP
   ORDER BY abstime;
 
-SELECT '' AS five, f1 AS abstime, date( f1) AS date
+SELECT '' AS four, f1 AS abstime, date( f1) AS date
   FROM ABSTIME_TBL
   WHERE isfinite(f1) AND f1 <> abstime 'current'
   ORDER BY date;
 
-SELECT '' AS five, d1 AS datetime, abstime(d1) AS abstime
-  FROM DATETIME_TBL WHERE NOT isfinite(d1);
+SELECT '' AS five, d1 AS timestamp, abstime(d1) AS abstime
+  FROM TIMESTAMP_TBL WHERE NOT isfinite(d1);
 
-SELECT '' AS three, f1 as abstime, datetime(f1) AS datetime
+SELECT '' AS three, f1 as abstime, timestamp(f1) AS timestamp
   FROM ABSTIME_TBL WHERE NOT isfinite(f1);
 
-SELECT '' AS ten, f1 AS timespan, reltime( f1) AS reltime
-  FROM TIMESPAN_TBL;
+SELECT '' AS ten, f1 AS interval, reltime( f1) AS reltime
+  FROM INTERVAL_TBL;
 
-SELECT '' AS six, f1 as reltime, timespan( f1) AS timespan
+SELECT '' AS six, f1 as reltime, interval( f1) AS interval
   FROM RELTIME_TBL;
 
-DROP TABLE TEMP_DATETIME;
+DROP TABLE TEMP_TIMESTAMP;
 
 --
--- formats
+-- Formats
 --
 
 SET DateStyle TO 'US,Postgres';
 
 SHOW DateStyle;
 
-SELECT '' AS sixty_two, d1 AS us_postgres FROM DATETIME_TBL;
+SELECT '' AS sixty_two, d1 AS us_postgres FROM TIMESTAMP_TBL;
 
 SELECT '' AS eight, f1 AS us_postgres FROM ABSTIME_TBL;
 
 SET DateStyle TO 'US,ISO';
 
-SELECT '' AS sixty_two, d1 AS us_iso FROM DATETIME_TBL;
+SELECT '' AS sixty_two, d1 AS us_iso FROM TIMESTAMP_TBL;
 
 SELECT '' AS eight, f1 AS us_iso FROM ABSTIME_TBL;
 
@@ -116,7 +116,7 @@ SET DateStyle TO 'US,SQL';
 
 SHOW DateStyle;
 
-SELECT '' AS sixty_two, d1 AS us_sql FROM DATETIME_TBL;
+SELECT '' AS sixty_two, d1 AS us_sql FROM TIMESTAMP_TBL;
 
 SELECT '' AS eight, f1 AS us_sql FROM ABSTIME_TBL;
 
@@ -124,11 +124,11 @@ SET DateStyle TO 'European,Postgres';
 
 SHOW DateStyle;
 
-INSERT INTO DATETIME_TBL VALUES('13/06/1957');
+INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
 
-SELECT count(*) as one FROM DATETIME_TBL WHERE d1 = 'Jun 13 1957';
+SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957';
 
-SELECT '' AS sixty_three, d1 AS european_postgres FROM DATETIME_TBL;
+SELECT '' AS sixty_three, d1 AS european_postgres FROM TIMESTAMP_TBL;
 
 SELECT '' AS eight, f1 AS european_postgres FROM ABSTIME_TBL;
 
@@ -136,7 +136,7 @@ SET DateStyle TO 'European,ISO';
 
 SHOW DateStyle;
 
-SELECT '' AS sixty_three, d1 AS european_iso FROM DATETIME_TBL;
+SELECT '' AS sixty_three, d1 AS european_iso FROM TIMESTAMP_TBL;
 
 SELECT '' AS eight, f1 AS european_iso FROM ABSTIME_TBL;
 
@@ -144,65 +144,7 @@ SET DateStyle TO 'European,SQL';
 
 SHOW DateStyle;
 
-SELECT '' AS sixty_three, d1 AS european_sql FROM DATETIME_TBL;
-
-SELECT '' AS eight, f1 AS european_sql FROM ABSTIME_TBL;
-
-RESET DateStyle;
-
-SHOW DateStyle;
-
---
--- formats
---
-
-SET DateStyle TO 'US,Postgres';
-
-SHOW DateStyle;
-
-SELECT '' AS sixty_two, d1 AS us_postgres FROM DATETIME_TBL;
-
-SELECT '' AS eight, f1 AS us_postgres FROM ABSTIME_TBL;
-
-SET DateStyle TO 'US,ISO';
-
-SELECT '' AS sixty_two, d1 AS us_iso FROM DATETIME_TBL;
-
-SELECT '' AS eight, f1 AS us_iso FROM ABSTIME_TBL;
-
-SET DateStyle TO 'US,SQL';
-
-SHOW DateStyle;
-
-SELECT '' AS sixty_two, d1 AS us_sql FROM DATETIME_TBL;
-
-SELECT '' AS eight, f1 AS us_sql FROM ABSTIME_TBL;
-
-SET DateStyle TO 'European,Postgres';
-
-SHOW DateStyle;
-
-INSERT INTO DATETIME_TBL VALUES('13/06/1957');
-
-SELECT count(*) as one FROM DATETIME_TBL WHERE d1 = 'Jun 13 1957';
-
-SELECT '' AS sixty_three, d1 AS european_postgres FROM DATETIME_TBL;
-
-SELECT '' AS eight, f1 AS european_postgres FROM ABSTIME_TBL;
-
-SET DateStyle TO 'European,ISO';
-
-SHOW DateStyle;
-
-SELECT '' AS sixty_three, d1 AS european_iso FROM DATETIME_TBL;
-
-SELECT '' AS eight, f1 AS european_iso FROM ABSTIME_TBL;
-
-SET DateStyle TO 'European,SQL';
-
-SHOW DateStyle;
-
-SELECT '' AS sixty_three, d1 AS european_sql FROM DATETIME_TBL;
+SELECT '' AS sixty_three, d1 AS european_sql FROM TIMESTAMP_TBL;
 
 SELECT '' AS eight, f1 AS european_sql FROM ABSTIME_TBL;
 
diff --git a/src/test/regress/sql/interval.sql b/src/test/regress/sql/interval.sql
new file mode 100644 (file)
index 0000000..fc75302
--- /dev/null
@@ -0,0 +1,48 @@
+--
+-- INTERVAL
+--
+
+CREATE TABLE INTERVAL_TBL (f1 interval);
+
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 1 minute');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 5 hour');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 10 day');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 34 year');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 3 months');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 14 seconds ago');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('1 day 2 hours 3 minutes 4 seconds');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('6 years');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('5 months');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('5 months 12 hours');
+
+-- badly formatted interval
+INSERT INTO INTERVAL_TBL (f1) VALUES ('badly formatted interval');
+INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');
+
+-- test interval operators
+
+SELECT '' AS ten, INTERVAL_TBL.*;
+
+SELECT '' AS nine, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';
+
+SELECT '' AS three, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';
+
+SELECT '' AS three, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 < interval '@ 1 day';
+
+SELECT '' AS one, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 = interval '@ 34 years';
+
+SELECT '' AS five, INTERVAL_TBL.* 
+   WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';
+
+SELECT '' AS nine, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';
+
+SELECT '' AS fortyfive, r1.*, r2.*
+   FROM INTERVAL_TBL r1, INTERVAL_TBL r2
+   WHERE r1.f1 > r2.f1
+   ORDER BY r1.f1, r2.f1;
+
index 2de51d3a48ceeea300c506824cd0a0616d767b01..33d8904237656ed46aca9492f2704f4912a1474e 100644 (file)
@@ -29,8 +29,8 @@ parallel  group2
    test    path
    test    polygon
    test    circle
-   test    timespan
-   test    datetime
+   test    interval
+   test    timestamp
    test    reltime
    test    tinterval
    test    inet
@@ -42,7 +42,7 @@ endparallel
 
 test   abstime     # Depends on the reltime test
 test   geometry    # Depends on point, lseg, box, path, polygon and circle
-test   horology    # Depends on timespan, datetime, reltime and abstime
+test   horology    # Depends on interval, timestamp, reltime and abstime
 
 # ----------
 # These four each depend on the previous one
index aaf239b418ccf0956f10eb8ff15ba59fba4d1376..69f928b005fa95b01f6a02d5ddf85823ce563542 100644 (file)
@@ -18,8 +18,8 @@ path
 polygon
 circle
 geometry
-timespan
-datetime
+interval
+timestamp
 reltime
 abstime
 tinterval
diff --git a/src/test/regress/sql/timespan.sql b/src/test/regress/sql/timespan.sql
deleted file mode 100644 (file)
index 0ce1851..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
---
--- TIMESPAN
---
-
-CREATE TABLE TIMESPAN_TBL (f1 timespan);
-
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 1 minute');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 5 hour');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 10 day');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 34 year');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 3 months');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 14 seconds ago');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('1 day 2 hours 3 minutes 4 seconds');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('6 years');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months 12 hours');
-
--- badly formatted timespan
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('badly formatted timespan');
-INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 30 eons ago');
-
--- test timespan operators
-
-SELECT '' AS ten, TIMESPAN_TBL.*;
-
-SELECT '' AS nine, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 <> timespan '@ 10 days';
-
-SELECT '' AS three, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 <= timespan '@ 5 hours';
-
-SELECT '' AS three, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 < timespan '@ 1 day';
-
-SELECT '' AS one, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 = timespan '@ 34 years';
-
-SELECT '' AS five, TIMESPAN_TBL.* 
-   WHERE TIMESPAN_TBL.f1 >= timespan '@ 1 month';
-
-SELECT '' AS nine, TIMESPAN_TBL.*
-   WHERE TIMESPAN_TBL.f1 > timespan '@ 3 seconds ago';
-
-SELECT '' AS fortyfive, r1.*, r2.*
-   FROM TIMESPAN_TBL r1, TIMESPAN_TBL r2
-   WHERE r1.f1 > r2.f1
-   ORDER BY r1.f1, r2.f1;
-
diff --git a/src/test/regress/sql/timestamp.sql b/src/test/regress/sql/timestamp.sql
new file mode 100644 (file)
index 0000000..264d40a
--- /dev/null
@@ -0,0 +1,169 @@
+--
+-- DATETIME
+--
+
+-- Shorthand values
+-- Not directly usable for regression testing since these are not constants.
+-- So, just try to test parser and hope for the best - tgl 97/04/26
+
+SELECT (timestamp 'today' = (timestamp 'yesterday' + interval '1 day')) as "True";
+SELECT (timestamp 'today' = (timestamp 'tomorrow' - interval '1 day')) as "True";
+SELECT (timestamp 'tomorrow' = (timestamp 'yesterday' + interval '2 days')) as "True";
+SELECT (timestamp 'current' = 'now') as "True";
+SELECT (timestamp 'now' - 'current') AS "ZeroSecs";
+
+SET DateStyle = 'Postgres,noneuropean';
+SELECT timestamp('1994-01-01', '11:00') AS "Jan_01_1994_11am";
+
+CREATE TABLE TIMESTAMP_TBL ( d1 timestamp);
+
+INSERT INTO TIMESTAMP_TBL VALUES ('current');
+INSERT INTO TIMESTAMP_TBL VALUES ('today');
+INSERT INTO TIMESTAMP_TBL VALUES ('yesterday');
+INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow');
+INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST');
+INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu');
+
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'tomorrow';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'yesterday';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' + interval '1 day';
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' - interval '1 day';
+
+SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now';
+
+DELETE FROM TIMESTAMP_TBL;
+
+-- verify uniform transaction time within transaction block
+INSERT INTO TIMESTAMP_TBL VALUES ('current');
+BEGIN;
+INSERT INTO TIMESTAMP_TBL VALUES ('now');
+SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp 'now';
+END;
+DELETE FROM TIMESTAMP_TBL;
+
+-- Special values
+INSERT INTO TIMESTAMP_TBL VALUES ('invalid');
+INSERT INTO TIMESTAMP_TBL VALUES ('-infinity');
+INSERT INTO TIMESTAMP_TBL VALUES ('infinity');
+INSERT INTO TIMESTAMP_TBL VALUES ('epoch');
+
+-- Postgres v6.0 standard output format
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Invalid Abstime');
+INSERT INTO TIMESTAMP_TBL VALUES ('Undefined Abstime');
+
+-- Variations on Postgres v6.1 standard output format
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.000001 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.999999 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.4 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.5 1997 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01.6 1997 PST');
+
+-- ISO 8601 format
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-01-02');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-01-02 03:04:05');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-08');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01-0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 -08:00');
+INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 -0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-06-10 17:32:01 -07:00');
+
+-- POSIX format
+INSERT INTO TIMESTAMP_TBL VALUES ('2000-02-15 23:14:30 GMT+8');
+INSERT INTO TIMESTAMP_TBL VALUES ('2000-02-15 23:14:30 EST+3');
+
+-- Variations for acceptable input formats
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997 -0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 10 5:32PM 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997/02/10 17:32:01-0800');
+INSERT INTO TIMESTAMP_TBL VALUES ('1997-02-10 17:32:01 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb-10-1997 17:32:01 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('02-10-1997 17:32:01 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('19970210 173201 PST');
+INSERT INTO TIMESTAMP_TBL VALUES ('97FEB10 5:32:01PM UTC');
+INSERT INTO TIMESTAMP_TBL VALUES ('97/02/10 17:32:01 UTC');
+INSERT INTO TIMESTAMP_TBL VALUES ('97.041 17:32:01 UTC');
+
+-- 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');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 11 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 12 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 13 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 14 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 15 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1997');
+
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0097 BC');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0097');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 0597');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1097');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1697');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1797');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1897');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 2097');
+
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1996');
+INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1997');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1999');
+INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2000');
+INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 2000');
+INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2001');
+
+-- Currently unsupported syntax and ranges
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
+INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
+
+SELECT '' AS sixtythree, d1 FROM TIMESTAMP_TBL; 
+
+-- Demonstrate functions and operators
+SELECT '' AS fortythree, d1 FROM TIMESTAMP_TBL
+   WHERE d1 > timestamp '1997-01-02' and d1 != timestamp 'current';
+
+SELECT '' AS fifteen, d1 FROM TIMESTAMP_TBL
+   WHERE d1 < timestamp '1997-01-02' and d1 != timestamp 'current';
+
+SELECT '' AS one, d1 FROM TIMESTAMP_TBL
+   WHERE d1 = timestamp '1997-01-02' and d1 != timestamp 'current';
+
+SELECT '' AS fiftyeight, d1 FROM TIMESTAMP_TBL
+   WHERE d1 != timestamp '1997-01-02' and d1 != timestamp 'current';
+
+SELECT '' AS sixteen, d1 FROM TIMESTAMP_TBL
+   WHERE d1 <= timestamp '1997-01-02' and d1 != timestamp 'current';
+
+SELECT '' AS fortyfour, d1 FROM TIMESTAMP_TBL
+   WHERE d1 >= timestamp '1997-01-02' and d1 != timestamp 'current';
+
+SELECT '' AS sixtythree, d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
+
+SELECT '' AS sixtythree, d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
+
+-- Casting within a BETWEEN qualifier should probably be allowed by the parser. - tgl 97/04/26
+--SELECT '' AS fifty, d1 - timestamp '1997-01-02' AS diff
+--   FROM TIMESTAMP_TBL WHERE d1 BETWEEN timestamp '1902-01-01' AND timestamp '2038-01-01';
+SELECT '' AS fifty, d1 - timestamp '1997-01-02' AS diff
+   FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
+
+SELECT '' AS fortynine, date_part( 'year', d1) AS year, date_part( 'month', d1) AS month,
+   date_part( 'day', d1) AS day, date_part( 'hour', d1) AS hour,
+   date_part( 'minute', d1) AS minute, date_part( 'second', d1) AS second
+   FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
+
+SELECT '' AS fortynine, date_part( 'quarter', d1) AS quarter, date_part( 'msec', d1) AS msec,
+   date_part( 'usec', d1) AS usec
+   FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
+