From 07272c6f8baca5d2950b228f3c962af2d635ad13 Mon Sep 17 00:00:00 2001
From: "Thomas G. Lockhart" <lockhart@fourpalms.org>
Date: Mon, 6 Nov 2000 16:03:47 +0000
Subject: [PATCH] Add tests for more INTERVAL syntax. Add more tests for JOIN
 syntax. All tests pass on my Linux box (except for the usual couple of lines 
 for geometry).

---
 src/test/regress/expected/horology.out |  152 +-
 src/test/regress/expected/interval.out |  298 ++--
 src/test/regress/expected/join.out     | 1881 ++++++++++++++++++++----
 src/test/regress/sql/interval.sql      |   14 +
 src/test/regress/sql/join.sql          |   46 +-
 5 files changed, 1909 insertions(+), 482 deletions(-)

diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out
index 7e9475d794a..4a74bec84ab 100644
--- a/src/test/regress/expected/horology.out
+++ b/src/test/regress/expected/horology.out
@@ -109,8 +109,8 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
      | 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                        | @ 5 mons                      | Sun May 31 16:00:00 1970 PDT
+     | epoch                        | @ 5 mons 12 hours             | Mon Jun 01 04: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
@@ -127,15 +127,15 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
      | 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
+     | Wed Feb 28 17:32:01 1996 PST | @ 3 mons                      | Tue May 28 17:32:01 1996 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 3 mons                      | Wed May 29 17:32:01 1996 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 3 mons                      | Sat Jun 01 17:32:01 1996 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons                      | Sun Jul 28 17:32:01 1996 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons 12 hours             | Mon Jul 29 05:32:01 1996 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons                      | Mon Jul 29 17:32:01 1996 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons 12 hours             | Tue Jul 30 05:32:01 1996 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons                      | Thu Aug 01 17:32:01 1996 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons 12 hours             | Fri Aug 02 05: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
@@ -148,10 +148,10 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
      | 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
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons                      | Fri May 30 17:32:01 1997 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons 12 hours             | Sat May 31 05:32:01 1997 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons                      | Sat May 31 17:32:01 1997 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons 12 hours             | Sun Jun 01 05: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
@@ -189,25 +189,25 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
      | Wed Mar 15 08:14:01 2000 PST | @ 10 days                     | Sat Mar 25 08:14: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
-     | Wed Mar 15 01:14:05 2000 PST | @ 3 mons                      | Thu Jun 15 02:14:05 2000 PDT
-     | Wed Mar 15 02:14:03 2000 PST | @ 3 mons                      | Thu Jun 15 03:14:03 2000 PDT
-     | Wed Mar 15 03:14:04 2000 PST | @ 3 mons                      | Thu Jun 15 04:14:04 2000 PDT
-     | Wed Mar 15 04:14:02 2000 PST | @ 3 mons                      | Thu Jun 15 05:14:02 2000 PDT
-     | Wed Mar 15 08:14:01 2000 PST | @ 3 mons                      | Thu Jun 15 09:14:01 2000 PDT
-     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons                      | Tue Aug 15 02:14:05 2000 PDT
-     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons                      | Tue Aug 15 03:14:03 2000 PDT
-     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons                      | Tue Aug 15 04:14:04 2000 PDT
-     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons                      | Tue Aug 15 05:14:02 2000 PDT
-     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons                      | Tue Aug 15 09:14:01 2000 PDT
-     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 14:14:05 2000 PDT
-     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 15:14:03 2000 PDT
-     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 16:14:04 2000 PDT
-     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 17:14:02 2000 PDT
-     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 21:14:01 2000 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons                      | Wed May 31 17:32:01 2000 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons 12 hours             | Thu Jun 01 05:32:01 2000 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons                      | Thu Jun 01 17:32:01 2000 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons 12 hours             | Fri Jun 02 05:32:01 2000 PDT
+     | Wed Mar 15 01:14:05 2000 PST | @ 3 mons                      | Thu Jun 15 01:14:05 2000 PDT
+     | Wed Mar 15 02:14:03 2000 PST | @ 3 mons                      | Thu Jun 15 02:14:03 2000 PDT
+     | Wed Mar 15 03:14:04 2000 PST | @ 3 mons                      | Thu Jun 15 03:14:04 2000 PDT
+     | Wed Mar 15 04:14:02 2000 PST | @ 3 mons                      | Thu Jun 15 04:14:02 2000 PDT
+     | Wed Mar 15 08:14:01 2000 PST | @ 3 mons                      | Thu Jun 15 08:14:01 2000 PDT
+     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons                      | Tue Aug 15 01:14:05 2000 PDT
+     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons                      | Tue Aug 15 02:14:03 2000 PDT
+     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons                      | Tue Aug 15 03:14:04 2000 PDT
+     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons                      | Tue Aug 15 04:14:02 2000 PDT
+     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons                      | Tue Aug 15 08:14:01 2000 PDT
+     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 13:14:05 2000 PDT
+     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 14:14:03 2000 PDT
+     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 15:14:04 2000 PDT
+     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 16:14:02 2000 PDT
+     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons 12 hours             | Tue Aug 15 20:14: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
@@ -219,11 +219,11 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 + t.f1 AS plus
      | 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
+     | Mon Jan 01 17:32:01 2001 PST | @ 3 mons                      | Sun Apr 01 17:32:01 2001 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons                      | Thu May 31 17:32:01 2001 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons 12 hours             | Fri Jun 01 05:32:01 2001 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons                      | Fri Jun 01 17:32:01 2001 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons 12 hours             | Sat Jun 02 05: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
@@ -277,9 +277,9 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
      | Wed Mar 15 08:14:01 2000 PST | @ 34 years                    | Tue Mar 15 08:14: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                        | @ 5 mons 12 hours             | Thu Jul 31 04:00:00 1969 PDT
+     | epoch                        | @ 5 mons                      | Thu Jul 31 16:00:00 1969 PDT
+     | epoch                        | @ 3 mons                      | Tue Sep 30 16: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
@@ -299,12 +299,12 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
      | Wed Mar 15 08:14:01 2000 PST | @ 6 years                     | Tue Mar 15 08:14: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 | @ 5 mons 12 hours             | Thu Sep 28 05:32:01 1995 PDT
+     | Wed Feb 28 17:32:01 1996 PST | @ 5 mons                      | Thu Sep 28 17:32:01 1995 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons 12 hours             | Fri Sep 29 05:32:01 1995 PDT
+     | Thu Feb 29 17:32:01 1996 PST | @ 5 mons                      | Fri Sep 29 17:32:01 1995 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons 12 hours             | Sun Oct 01 05:32:01 1995 PDT
+     | Fri Mar 01 17:32:01 1996 PST | @ 5 mons                      | Sun Oct 01 17: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
@@ -323,12 +323,12 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
      | 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 | @ 5 mons 12 hours             | Tue Jul 30 05:32:01 1996 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 5 mons                      | Tue Jul 30 17:32:01 1996 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons 12 hours             | Wed Jul 31 05:32:01 1996 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 5 mons                      | Wed Jul 31 17:32:01 1996 PDT
+     | Mon Dec 30 17:32:01 1996 PST | @ 3 mons                      | Mon Sep 30 17:32:01 1996 PDT
+     | Tue Dec 31 17:32:01 1996 PST | @ 3 mons                      | Mon Sep 30 17: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
@@ -339,22 +339,22 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
      | 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
-     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 14:14:05 1999 PDT
-     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 15:14:03 1999 PDT
-     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 16:14:04 1999 PDT
-     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 17:14:02 1999 PDT
-     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 21:14:01 1999 PDT
-     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons                      | Fri Oct 15 02:14:05 1999 PDT
-     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons                      | Fri Oct 15 03:14:03 1999 PDT
-     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons                      | Fri Oct 15 04:14:04 1999 PDT
-     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons                      | Fri Oct 15 05:14:02 1999 PDT
-     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons                      | Fri Oct 15 09:14:01 1999 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons 12 hours             | Sat Jul 31 05:32:01 1999 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 5 mons                      | Sat Jul 31 17:32:01 1999 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons 12 hours             | Sun Aug 01 05:32:01 1999 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 5 mons                      | Sun Aug 01 17:32:01 1999 PDT
+     | Fri Dec 31 17:32:01 1999 PST | @ 3 mons                      | Thu Sep 30 17:32:01 1999 PDT
+     | Sat Jan 01 17:32:01 2000 PST | @ 3 mons                      | Fri Oct 01 17:32:01 1999 PDT
+     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 13:14:05 1999 PDT
+     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 14:14:03 1999 PDT
+     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 15:14:04 1999 PDT
+     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 16:14:02 1999 PDT
+     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons 12 hours             | Thu Oct 14 20:14:01 1999 PDT
+     | Wed Mar 15 01:14:05 2000 PST | @ 5 mons                      | Fri Oct 15 01:14:05 1999 PDT
+     | Wed Mar 15 02:14:03 2000 PST | @ 5 mons                      | Fri Oct 15 02:14:03 1999 PDT
+     | Wed Mar 15 03:14:04 2000 PST | @ 5 mons                      | Fri Oct 15 03:14:04 1999 PDT
+     | Wed Mar 15 04:14:02 2000 PST | @ 5 mons                      | Fri Oct 15 04:14:02 1999 PDT
+     | Wed Mar 15 08:14:01 2000 PST | @ 5 mons                      | Fri Oct 15 08:14:01 1999 PDT
      | Wed Mar 15 01:14:05 2000 PST | @ 3 mons                      | Wed Dec 15 01:14:05 1999 PST
      | Wed Mar 15 02:14:03 2000 PST | @ 3 mons                      | Wed Dec 15 02:14:03 1999 PST
      | Wed Mar 15 03:14:04 2000 PST | @ 3 mons                      | Wed Dec 15 03:14:04 1999 PST
@@ -395,12 +395,12 @@ SELECT '' AS "150", d.f1 AS timestamp, t.f1 AS interval, d.f1 - t.f1 AS minus
      | Wed Mar 15 04:14:02 2000 PST | @ 14 secs ago                 | Wed Mar 15 04:14:16 2000 PST
      | Wed Mar 15 08:14:01 2000 PST | @ 1 min                       | Wed Mar 15 08:13:01 2000 PST
      | Wed Mar 15 08:14:01 2000 PST | @ 14 secs ago                 | Wed Mar 15 08:14: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 | @ 5 mons 12 hours             | Mon Jul 31 05:32:01 2000 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 5 mons                      | Mon Jul 31 17:32:01 2000 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons 12 hours             | Tue Aug 01 05:32:01 2000 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 5 mons                      | Tue Aug 01 17:32:01 2000 PDT
+     | Sun Dec 31 17:32:01 2000 PST | @ 3 mons                      | Sat Sep 30 17:32:01 2000 PDT
+     | Mon Jan 01 17:32:01 2001 PST | @ 3 mons                      | Sun Oct 01 17: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
diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out
index 3a5b24e41f7..a8ea6c24d7d 100644
--- a/src/test/regress/expected/interval.out
+++ b/src/test/regress/expected/interval.out
@@ -1,6 +1,50 @@
 --
 -- INTERVAL
 --
+SET DATESTYLE = DEFAULT;
+-- check acceptance of "time zone style"
+SELECT INTERVAL '01:00';
+ ?column? 
+----------
+ +01:00
+(1 row)
+
+SELECT INTERVAL '+02:00';
+ ?column? 
+----------
+ +02:00
+(1 row)
+
+SELECT INTERVAL '-08:00';
+ ?column? 
+----------
+ -08:00
+(1 row)
+
+SELECT INTERVAL '-05';
+ ?column?  
+-----------
+ -00:00:05
+(1 row)
+
+SELECT INTERVAL '-1 +02:03';
+ ?column? 
+----------
+ -21:57
+(1 row)
+
+SELECT INTERVAL '-1 days +02:03';
+ ?column? 
+----------
+ -21:57
+(1 row)
+
+SELECT INTERVAL '10 years -11 month -12 days +13:14';
+         ?column?         
+--------------------------
+ 9 years 1 mon -11 -10:46
+(1 row)
+
 CREATE TABLE INTERVAL_TBL (f1 interval);
 INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 1 minute');
 INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 5 hour');
@@ -18,6 +62,141 @@ 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        
+-----+-----------------
+     | +00:01
+     | +05:00
+     | 10 +00:00
+     | 34 years +00:00
+     | 3 mons +00:00
+     | -00:00:14
+     | 1 +02:03:04
+     | 6 years +00:00
+     | 5 mons +00:00
+     | 5 mons +12:00
+(10 rows)
+
+SELECT '' AS nine, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';
+ nine |       f1        
+------+-----------------
+      | +00:01
+      | +05:00
+      | 34 years +00:00
+      | 3 mons +00:00
+      | -00:00:14
+      | 1 +02:03:04
+      | 6 years +00:00
+      | 5 mons +00:00
+      | 5 mons +12:00
+(9 rows)
+
+SELECT '' AS three, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';
+ three |    f1     
+-------+-----------
+       | +00:01
+       | +05:00
+       | -00:00:14
+(3 rows)
+
+SELECT '' AS three, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 < interval '@ 1 day';
+ three |    f1     
+-------+-----------
+       | +00:01
+       | +05:00
+       | -00:00:14
+(3 rows)
+
+SELECT '' AS one, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 = interval '@ 34 years';
+ one |       f1        
+-----+-----------------
+     | 34 years +00:00
+(1 row)
+
+SELECT '' AS five, INTERVAL_TBL.* 
+   WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';
+ five |       f1        
+------+-----------------
+      | 34 years +00:00
+      | 3 mons +00:00
+      | 6 years +00:00
+      | 5 mons +00:00
+      | 5 mons +12:00
+(5 rows)
+
+SELECT '' AS nine, INTERVAL_TBL.*
+   WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';
+ nine |       f1        
+------+-----------------
+      | +00:01
+      | +05:00
+      | 10 +00:00
+      | 34 years +00:00
+      | 3 mons +00:00
+      | 1 +02:03:04
+      | 6 years +00:00
+      | 5 mons +00:00
+      | 5 mons +12:00
+(9 rows)
+
+SELECT '' AS fortyfive, r1.*, r2.*
+   FROM INTERVAL_TBL r1, INTERVAL_TBL r2
+   WHERE r1.f1 > r2.f1
+   ORDER BY r1.f1, r2.f1;
+ fortyfive |       f1        |       f1       
+-----------+-----------------+----------------
+           | +00:01          | -00:00:14
+           | +05:00          | -00:00:14
+           | +05:00          | +00:01
+           | 1 +02:03:04     | -00:00:14
+           | 1 +02:03:04     | +00:01
+           | 1 +02:03:04     | +05:00
+           | 10 +00:00       | -00:00:14
+           | 10 +00:00       | +00:01
+           | 10 +00:00       | +05:00
+           | 10 +00:00       | 1 +02:03:04
+           | 3 mons +00:00   | -00:00:14
+           | 3 mons +00:00   | +00:01
+           | 3 mons +00:00   | +05:00
+           | 3 mons +00:00   | 1 +02:03:04
+           | 3 mons +00:00   | 10 +00:00
+           | 5 mons +00:00   | -00:00:14
+           | 5 mons +00:00   | +00:01
+           | 5 mons +00:00   | +05:00
+           | 5 mons +00:00   | 1 +02:03:04
+           | 5 mons +00:00   | 10 +00:00
+           | 5 mons +00:00   | 3 mons +00:00
+           | 5 mons +12:00   | -00:00:14
+           | 5 mons +12:00   | +00:01
+           | 5 mons +12:00   | +05:00
+           | 5 mons +12:00   | 1 +02:03:04
+           | 5 mons +12:00   | 10 +00:00
+           | 5 mons +12:00   | 3 mons +00:00
+           | 5 mons +12:00   | 5 mons +00:00
+           | 6 years +00:00  | -00:00:14
+           | 6 years +00:00  | +00:01
+           | 6 years +00:00  | +05:00
+           | 6 years +00:00  | 1 +02:03:04
+           | 6 years +00:00  | 10 +00:00
+           | 6 years +00:00  | 3 mons +00:00
+           | 6 years +00:00  | 5 mons +00:00
+           | 6 years +00:00  | 5 mons +12:00
+           | 34 years +00:00 | -00:00:14
+           | 34 years +00:00 | +00:01
+           | 34 years +00:00 | +05:00
+           | 34 years +00:00 | 1 +02:03:04
+           | 34 years +00:00 | 10 +00:00
+           | 34 years +00:00 | 3 mons +00:00
+           | 34 years +00:00 | 5 mons +00:00
+           | 34 years +00:00 | 5 mons +12:00
+           | 34 years +00:00 | 6 years +00:00
+(45 rows)
+
+SET DATESTYLE = 'postgres';
 SELECT '' AS ten, INTERVAL_TBL.*;
  ten |              f1               
 -----+-------------------------------
@@ -33,122 +212,3 @@ SELECT '' AS ten, INTERVAL_TBL.*;
      | @ 5 mons 12 hours
 (10 rows)
 
-SELECT '' AS nine, INTERVAL_TBL.*
-   WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';
- nine |              f1               
-------+-------------------------------
-      | @ 1 min
-      | @ 5 hours
-      | @ 34 years
-      | @ 3 mons
-      | @ 14 secs ago
-      | @ 1 day 2 hours 3 mins 4 secs
-      | @ 6 years
-      | @ 5 mons
-      | @ 5 mons 12 hours
-(9 rows)
-
-SELECT '' AS three, INTERVAL_TBL.*
-   WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';
- three |      f1       
--------+---------------
-       | @ 1 min
-       | @ 5 hours
-       | @ 14 secs ago
-(3 rows)
-
-SELECT '' AS three, INTERVAL_TBL.*
-   WHERE INTERVAL_TBL.f1 < interval '@ 1 day';
- three |      f1       
--------+---------------
-       | @ 1 min
-       | @ 5 hours
-       | @ 14 secs ago
-(3 rows)
-
-SELECT '' AS one, INTERVAL_TBL.*
-   WHERE INTERVAL_TBL.f1 = interval '@ 34 years';
- one |     f1     
------+------------
-     | @ 34 years
-(1 row)
-
-SELECT '' AS five, INTERVAL_TBL.* 
-   WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';
- five |        f1         
-------+-------------------
-      | @ 34 years
-      | @ 3 mons
-      | @ 6 years
-      | @ 5 mons
-      | @ 5 mons 12 hours
-(5 rows)
-
-SELECT '' AS nine, INTERVAL_TBL.*
-   WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';
- nine |              f1               
-------+-------------------------------
-      | @ 1 min
-      | @ 5 hours
-      | @ 10 days
-      | @ 34 years
-      | @ 3 mons
-      | @ 1 day 2 hours 3 mins 4 secs
-      | @ 6 years
-      | @ 5 mons
-      | @ 5 mons 12 hours
-(9 rows)
-
-SELECT '' AS fortyfive, r1.*, r2.*
-   FROM INTERVAL_TBL r1, INTERVAL_TBL r2
-   WHERE r1.f1 > r2.f1
-   ORDER BY r1.f1, r2.f1;
- fortyfive |              f1               |              f1               
------------+-------------------------------+-------------------------------
-           | @ 1 min                       | @ 14 secs ago
-           | @ 5 hours                     | @ 14 secs ago
-           | @ 5 hours                     | @ 1 min
-           | @ 1 day 2 hours 3 mins 4 secs | @ 14 secs ago
-           | @ 1 day 2 hours 3 mins 4 secs | @ 1 min
-           | @ 1 day 2 hours 3 mins 4 secs | @ 5 hours
-           | @ 10 days                     | @ 14 secs ago
-           | @ 10 days                     | @ 1 min
-           | @ 10 days                     | @ 5 hours
-           | @ 10 days                     | @ 1 day 2 hours 3 mins 4 secs
-           | @ 3 mons                      | @ 14 secs ago
-           | @ 3 mons                      | @ 1 min
-           | @ 3 mons                      | @ 5 hours
-           | @ 3 mons                      | @ 1 day 2 hours 3 mins 4 secs
-           | @ 3 mons                      | @ 10 days
-           | @ 5 mons                      | @ 14 secs ago
-           | @ 5 mons                      | @ 1 min
-           | @ 5 mons                      | @ 5 hours
-           | @ 5 mons                      | @ 1 day 2 hours 3 mins 4 secs
-           | @ 5 mons                      | @ 10 days
-           | @ 5 mons                      | @ 3 mons
-           | @ 5 mons 12 hours             | @ 14 secs ago
-           | @ 5 mons 12 hours             | @ 1 min
-           | @ 5 mons 12 hours             | @ 5 hours
-           | @ 5 mons 12 hours             | @ 1 day 2 hours 3 mins 4 secs
-           | @ 5 mons 12 hours             | @ 10 days
-           | @ 5 mons 12 hours             | @ 3 mons
-           | @ 5 mons 12 hours             | @ 5 mons
-           | @ 6 years                     | @ 14 secs ago
-           | @ 6 years                     | @ 1 min
-           | @ 6 years                     | @ 5 hours
-           | @ 6 years                     | @ 1 day 2 hours 3 mins 4 secs
-           | @ 6 years                     | @ 10 days
-           | @ 6 years                     | @ 3 mons
-           | @ 6 years                     | @ 5 mons
-           | @ 6 years                     | @ 5 mons 12 hours
-           | @ 34 years                    | @ 14 secs ago
-           | @ 34 years                    | @ 1 min
-           | @ 34 years                    | @ 5 hours
-           | @ 34 years                    | @ 1 day 2 hours 3 mins 4 secs
-           | @ 34 years                    | @ 10 days
-           | @ 34 years                    | @ 3 mons
-           | @ 34 years                    | @ 5 mons
-           | @ 34 years                    | @ 5 mons 12 hours
-           | @ 34 years                    | @ 6 years
-(45 rows)
-
diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out
index 3c156ee46c1..1849297f757 100644
--- a/src/test/regress/expected/join.out
+++ b/src/test/regress/expected/join.out
@@ -11,24 +11,26 @@ CREATE TABLE J2_TBL (
   i integer,
   k integer
 );
-CREATE TABLE JOIN3_TBL (
-  i integer,
-  j integer,
-  y integer
-);
-CREATE TABLE JOIN4_TBL (
-  k integer,
-  z integer
-);
-INSERT INTO J1_TBL VALUES (1, 3, 'one');
-INSERT INTO J1_TBL VALUES (2, 2, 'two');
-INSERT INTO J1_TBL VALUES (3, 1, 'three');
-INSERT INTO J1_TBL VALUES (4, 0, 'four');
+INSERT INTO J1_TBL VALUES (1, 4, 'one');
+INSERT INTO J1_TBL VALUES (2, 3, 'two');
+INSERT INTO J1_TBL VALUES (3, 2, 'three');
+INSERT INTO J1_TBL VALUES (4, 1, 'four');
+INSERT INTO J1_TBL VALUES (5, 0, 'five');
+INSERT INTO J1_TBL VALUES (6, 6, 'six');
+INSERT INTO J1_TBL VALUES (7, 7, 'seven');
+INSERT INTO J1_TBL VALUES (8, 8, 'eight');
+INSERT INTO J1_TBL VALUES (0, NULL, 'zero');
+INSERT INTO J1_TBL VALUES (NULL, NULL, 'null');
+INSERT INTO J1_TBL VALUES (NULL, 0, 'zero');
 INSERT INTO J2_TBL VALUES (1, -1);
 INSERT INTO J2_TBL VALUES (2, 2);
 INSERT INTO J2_TBL VALUES (3, -3);
 INSERT INTO J2_TBL VALUES (2, 4);
 INSERT INTO J2_TBL VALUES (5, -5);
+INSERT INTO J2_TBL VALUES (5, -5);
+INSERT INTO J2_TBL VALUES (0, NULL);
+INSERT INTO J2_TBL VALUES (NULL, NULL);
+INSERT INTO J2_TBL VALUES (NULL, 0);
 --
 -- CORRELATION NAMES
 -- Make sure that table/column aliases are supported
@@ -38,78 +40,188 @@ SELECT '' AS "xxx", *
   FROM J1_TBL AS tx;
  xxx | i | j |   t   
 -----+---+---+-------
-     | 1 | 3 | one
-     | 2 | 2 | two
-     | 3 | 1 | three
-     | 4 | 0 | four
-(4 rows)
+     | 1 | 4 | one
+     | 2 | 3 | two
+     | 3 | 2 | three
+     | 4 | 1 | four
+     | 5 | 0 | five
+     | 6 | 6 | six
+     | 7 | 7 | seven
+     | 8 | 8 | eight
+     | 0 |   | zero
+     |   |   | null
+     |   | 0 | zero
+(11 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL tx;
  xxx | i | j |   t   
 -----+---+---+-------
-     | 1 | 3 | one
-     | 2 | 2 | two
-     | 3 | 1 | three
-     | 4 | 0 | four
-(4 rows)
+     | 1 | 4 | one
+     | 2 | 3 | two
+     | 3 | 2 | three
+     | 4 | 1 | four
+     | 5 | 0 | five
+     | 6 | 6 | six
+     | 7 | 7 | seven
+     | 8 | 8 | eight
+     | 0 |   | zero
+     |   |   | null
+     |   | 0 | zero
+(11 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL AS t1 (a, b, c);
  xxx | a | b |   c   
 -----+---+---+-------
-     | 1 | 3 | one
-     | 2 | 2 | two
-     | 3 | 1 | three
-     | 4 | 0 | four
-(4 rows)
+     | 1 | 4 | one
+     | 2 | 3 | two
+     | 3 | 2 | three
+     | 4 | 1 | four
+     | 5 | 0 | five
+     | 6 | 6 | six
+     | 7 | 7 | seven
+     | 8 | 8 | eight
+     | 0 |   | zero
+     |   |   | null
+     |   | 0 | zero
+(11 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b, c);
  xxx | a | b |   c   
 -----+---+---+-------
-     | 1 | 3 | one
-     | 2 | 2 | two
-     | 3 | 1 | three
-     | 4 | 0 | four
-(4 rows)
+     | 1 | 4 | one
+     | 2 | 3 | two
+     | 3 | 2 | three
+     | 4 | 1 | four
+     | 5 | 0 | five
+     | 6 | 6 | six
+     | 7 | 7 | seven
+     | 8 | 8 | eight
+     | 0 |   | zero
+     |   |   | null
+     |   | 0 | zero
+(11 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e);
  xxx | a | b |   c   | d | e  
 -----+---+---+-------+---+----
-     | 1 | 3 | one   | 1 | -1
-     | 1 | 3 | one   | 2 |  2
-     | 1 | 3 | one   | 3 | -3
-     | 1 | 3 | one   | 2 |  4
-     | 1 | 3 | one   | 5 | -5
-     | 2 | 2 | two   | 1 | -1
-     | 2 | 2 | two   | 2 |  2
-     | 2 | 2 | two   | 3 | -3
-     | 2 | 2 | two   | 2 |  4
-     | 2 | 2 | two   | 5 | -5
-     | 3 | 1 | three | 1 | -1
-     | 3 | 1 | three | 2 |  2
-     | 3 | 1 | three | 3 | -3
-     | 3 | 1 | three | 2 |  4
-     | 3 | 1 | three | 5 | -5
-     | 4 | 0 | four  | 1 | -1
-     | 4 | 0 | four  | 2 |  2
-     | 4 | 0 | four  | 3 | -3
-     | 4 | 0 | four  | 2 |  4
-     | 4 | 0 | four  | 5 | -5
-(20 rows)
+     | 1 | 4 | one   | 1 | -1
+     | 1 | 4 | one   | 2 |  2
+     | 1 | 4 | one   | 3 | -3
+     | 1 | 4 | one   | 2 |  4
+     | 1 | 4 | one   | 5 | -5
+     | 1 | 4 | one   | 5 | -5
+     | 1 | 4 | one   | 0 |   
+     | 1 | 4 | one   |   |   
+     | 1 | 4 | one   |   |  0
+     | 2 | 3 | two   | 1 | -1
+     | 2 | 3 | two   | 2 |  2
+     | 2 | 3 | two   | 3 | -3
+     | 2 | 3 | two   | 2 |  4
+     | 2 | 3 | two   | 5 | -5
+     | 2 | 3 | two   | 5 | -5
+     | 2 | 3 | two   | 0 |   
+     | 2 | 3 | two   |   |   
+     | 2 | 3 | two   |   |  0
+     | 3 | 2 | three | 1 | -1
+     | 3 | 2 | three | 2 |  2
+     | 3 | 2 | three | 3 | -3
+     | 3 | 2 | three | 2 |  4
+     | 3 | 2 | three | 5 | -5
+     | 3 | 2 | three | 5 | -5
+     | 3 | 2 | three | 0 |   
+     | 3 | 2 | three |   |   
+     | 3 | 2 | three |   |  0
+     | 4 | 1 | four  | 1 | -1
+     | 4 | 1 | four  | 2 |  2
+     | 4 | 1 | four  | 3 | -3
+     | 4 | 1 | four  | 2 |  4
+     | 4 | 1 | four  | 5 | -5
+     | 4 | 1 | four  | 5 | -5
+     | 4 | 1 | four  | 0 |   
+     | 4 | 1 | four  |   |   
+     | 4 | 1 | four  |   |  0
+     | 5 | 0 | five  | 1 | -1
+     | 5 | 0 | five  | 2 |  2
+     | 5 | 0 | five  | 3 | -3
+     | 5 | 0 | five  | 2 |  4
+     | 5 | 0 | five  | 5 | -5
+     | 5 | 0 | five  | 5 | -5
+     | 5 | 0 | five  | 0 |   
+     | 5 | 0 | five  |   |   
+     | 5 | 0 | five  |   |  0
+     | 6 | 6 | six   | 1 | -1
+     | 6 | 6 | six   | 2 |  2
+     | 6 | 6 | six   | 3 | -3
+     | 6 | 6 | six   | 2 |  4
+     | 6 | 6 | six   | 5 | -5
+     | 6 | 6 | six   | 5 | -5
+     | 6 | 6 | six   | 0 |   
+     | 6 | 6 | six   |   |   
+     | 6 | 6 | six   |   |  0
+     | 7 | 7 | seven | 1 | -1
+     | 7 | 7 | seven | 2 |  2
+     | 7 | 7 | seven | 3 | -3
+     | 7 | 7 | seven | 2 |  4
+     | 7 | 7 | seven | 5 | -5
+     | 7 | 7 | seven | 5 | -5
+     | 7 | 7 | seven | 0 |   
+     | 7 | 7 | seven |   |   
+     | 7 | 7 | seven |   |  0
+     | 8 | 8 | eight | 1 | -1
+     | 8 | 8 | eight | 2 |  2
+     | 8 | 8 | eight | 3 | -3
+     | 8 | 8 | eight | 2 |  4
+     | 8 | 8 | eight | 5 | -5
+     | 8 | 8 | eight | 5 | -5
+     | 8 | 8 | eight | 0 |   
+     | 8 | 8 | eight |   |   
+     | 8 | 8 | eight |   |  0
+     | 0 |   | zero  | 1 | -1
+     | 0 |   | zero  | 2 |  2
+     | 0 |   | zero  | 3 | -3
+     | 0 |   | zero  | 2 |  4
+     | 0 |   | zero  | 5 | -5
+     | 0 |   | zero  | 5 | -5
+     | 0 |   | zero  | 0 |   
+     | 0 |   | zero  |   |   
+     | 0 |   | zero  |   |  0
+     |   |   | null  | 1 | -1
+     |   |   | null  | 2 |  2
+     |   |   | null  | 3 | -3
+     |   |   | null  | 2 |  4
+     |   |   | null  | 5 | -5
+     |   |   | null  | 5 | -5
+     |   |   | null  | 0 |   
+     |   |   | null  |   |   
+     |   |   | null  |   |  0
+     |   | 0 | zero  | 1 | -1
+     |   | 0 | zero  | 2 |  2
+     |   | 0 | zero  | 3 | -3
+     |   | 0 | zero  | 2 |  4
+     |   | 0 | zero  | 5 | -5
+     |   | 0 | zero  | 5 | -5
+     |   | 0 | zero  | 0 |   
+     |   | 0 | zero  |   |   
+     |   | 0 | zero  |   |  0
+(99 rows)
 
 SELECT '' AS "xxx", t1.a, t2.e
   FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e)
   WHERE t1.a = t2.d;
  xxx | a | e  
 -----+---+----
+     | 0 |   
      | 1 | -1
      | 2 |  2
      | 2 |  4
      | 3 | -3
-(4 rows)
+     | 5 | -5
+     | 5 | -5
+(7 rows)
 
 --
 -- CROSS JOIN
@@ -120,27 +232,106 @@ SELECT '' AS "xxx", *
   FROM J1_TBL CROSS JOIN J2_TBL;
  xxx | i | j |   t   | i | k  
 -----+---+---+-------+---+----
-     | 1 | 3 | one   | 1 | -1
-     | 1 | 3 | one   | 2 |  2
-     | 1 | 3 | one   | 3 | -3
-     | 1 | 3 | one   | 2 |  4
-     | 1 | 3 | one   | 5 | -5
-     | 2 | 2 | two   | 1 | -1
-     | 2 | 2 | two   | 2 |  2
-     | 2 | 2 | two   | 3 | -3
-     | 2 | 2 | two   | 2 |  4
-     | 2 | 2 | two   | 5 | -5
-     | 3 | 1 | three | 1 | -1
-     | 3 | 1 | three | 2 |  2
-     | 3 | 1 | three | 3 | -3
-     | 3 | 1 | three | 2 |  4
-     | 3 | 1 | three | 5 | -5
-     | 4 | 0 | four  | 1 | -1
-     | 4 | 0 | four  | 2 |  2
-     | 4 | 0 | four  | 3 | -3
-     | 4 | 0 | four  | 2 |  4
-     | 4 | 0 | four  | 5 | -5
-(20 rows)
+     | 1 | 4 | one   | 1 | -1
+     | 1 | 4 | one   | 2 |  2
+     | 1 | 4 | one   | 3 | -3
+     | 1 | 4 | one   | 2 |  4
+     | 1 | 4 | one   | 5 | -5
+     | 1 | 4 | one   | 5 | -5
+     | 1 | 4 | one   | 0 |   
+     | 1 | 4 | one   |   |   
+     | 1 | 4 | one   |   |  0
+     | 2 | 3 | two   | 1 | -1
+     | 2 | 3 | two   | 2 |  2
+     | 2 | 3 | two   | 3 | -3
+     | 2 | 3 | two   | 2 |  4
+     | 2 | 3 | two   | 5 | -5
+     | 2 | 3 | two   | 5 | -5
+     | 2 | 3 | two   | 0 |   
+     | 2 | 3 | two   |   |   
+     | 2 | 3 | two   |   |  0
+     | 3 | 2 | three | 1 | -1
+     | 3 | 2 | three | 2 |  2
+     | 3 | 2 | three | 3 | -3
+     | 3 | 2 | three | 2 |  4
+     | 3 | 2 | three | 5 | -5
+     | 3 | 2 | three | 5 | -5
+     | 3 | 2 | three | 0 |   
+     | 3 | 2 | three |   |   
+     | 3 | 2 | three |   |  0
+     | 4 | 1 | four  | 1 | -1
+     | 4 | 1 | four  | 2 |  2
+     | 4 | 1 | four  | 3 | -3
+     | 4 | 1 | four  | 2 |  4
+     | 4 | 1 | four  | 5 | -5
+     | 4 | 1 | four  | 5 | -5
+     | 4 | 1 | four  | 0 |   
+     | 4 | 1 | four  |   |   
+     | 4 | 1 | four  |   |  0
+     | 5 | 0 | five  | 1 | -1
+     | 5 | 0 | five  | 2 |  2
+     | 5 | 0 | five  | 3 | -3
+     | 5 | 0 | five  | 2 |  4
+     | 5 | 0 | five  | 5 | -5
+     | 5 | 0 | five  | 5 | -5
+     | 5 | 0 | five  | 0 |   
+     | 5 | 0 | five  |   |   
+     | 5 | 0 | five  |   |  0
+     | 6 | 6 | six   | 1 | -1
+     | 6 | 6 | six   | 2 |  2
+     | 6 | 6 | six   | 3 | -3
+     | 6 | 6 | six   | 2 |  4
+     | 6 | 6 | six   | 5 | -5
+     | 6 | 6 | six   | 5 | -5
+     | 6 | 6 | six   | 0 |   
+     | 6 | 6 | six   |   |   
+     | 6 | 6 | six   |   |  0
+     | 7 | 7 | seven | 1 | -1
+     | 7 | 7 | seven | 2 |  2
+     | 7 | 7 | seven | 3 | -3
+     | 7 | 7 | seven | 2 |  4
+     | 7 | 7 | seven | 5 | -5
+     | 7 | 7 | seven | 5 | -5
+     | 7 | 7 | seven | 0 |   
+     | 7 | 7 | seven |   |   
+     | 7 | 7 | seven |   |  0
+     | 8 | 8 | eight | 1 | -1
+     | 8 | 8 | eight | 2 |  2
+     | 8 | 8 | eight | 3 | -3
+     | 8 | 8 | eight | 2 |  4
+     | 8 | 8 | eight | 5 | -5
+     | 8 | 8 | eight | 5 | -5
+     | 8 | 8 | eight | 0 |   
+     | 8 | 8 | eight |   |   
+     | 8 | 8 | eight |   |  0
+     | 0 |   | zero  | 1 | -1
+     | 0 |   | zero  | 2 |  2
+     | 0 |   | zero  | 3 | -3
+     | 0 |   | zero  | 2 |  4
+     | 0 |   | zero  | 5 | -5
+     | 0 |   | zero  | 5 | -5
+     | 0 |   | zero  | 0 |   
+     | 0 |   | zero  |   |   
+     | 0 |   | zero  |   |  0
+     |   |   | null  | 1 | -1
+     |   |   | null  | 2 |  2
+     |   |   | null  | 3 | -3
+     |   |   | null  | 2 |  4
+     |   |   | null  | 5 | -5
+     |   |   | null  | 5 | -5
+     |   |   | null  | 0 |   
+     |   |   | null  |   |   
+     |   |   | null  |   |  0
+     |   | 0 | zero  | 1 | -1
+     |   | 0 | zero  | 2 |  2
+     |   | 0 | zero  | 3 | -3
+     |   | 0 | zero  | 2 |  4
+     |   | 0 | zero  | 5 | -5
+     |   | 0 | zero  | 5 | -5
+     |   | 0 | zero  | 0 |   
+     |   | 0 | zero  |   |   
+     |   | 0 | zero  |   |  0
+(99 rows)
 
 -- ambiguous column
 SELECT '' AS "xxx", i, k, t
@@ -156,22 +347,101 @@ SELECT '' AS "xxx", t1.i, k, t
      | 1 | -3 | one
      | 1 |  4 | one
      | 1 | -5 | one
+     | 1 | -5 | one
+     | 1 |    | one
+     | 1 |    | one
+     | 1 |  0 | one
      | 2 | -1 | two
      | 2 |  2 | two
      | 2 | -3 | two
      | 2 |  4 | two
      | 2 | -5 | two
+     | 2 | -5 | two
+     | 2 |    | two
+     | 2 |    | two
+     | 2 |  0 | two
      | 3 | -1 | three
      | 3 |  2 | three
      | 3 | -3 | three
      | 3 |  4 | three
      | 3 | -5 | three
+     | 3 | -5 | three
+     | 3 |    | three
+     | 3 |    | three
+     | 3 |  0 | three
      | 4 | -1 | four
      | 4 |  2 | four
      | 4 | -3 | four
      | 4 |  4 | four
      | 4 | -5 | four
-(20 rows)
+     | 4 | -5 | four
+     | 4 |    | four
+     | 4 |    | four
+     | 4 |  0 | four
+     | 5 | -1 | five
+     | 5 |  2 | five
+     | 5 | -3 | five
+     | 5 |  4 | five
+     | 5 | -5 | five
+     | 5 | -5 | five
+     | 5 |    | five
+     | 5 |    | five
+     | 5 |  0 | five
+     | 6 | -1 | six
+     | 6 |  2 | six
+     | 6 | -3 | six
+     | 6 |  4 | six
+     | 6 | -5 | six
+     | 6 | -5 | six
+     | 6 |    | six
+     | 6 |    | six
+     | 6 |  0 | six
+     | 7 | -1 | seven
+     | 7 |  2 | seven
+     | 7 | -3 | seven
+     | 7 |  4 | seven
+     | 7 | -5 | seven
+     | 7 | -5 | seven
+     | 7 |    | seven
+     | 7 |    | seven
+     | 7 |  0 | seven
+     | 8 | -1 | eight
+     | 8 |  2 | eight
+     | 8 | -3 | eight
+     | 8 |  4 | eight
+     | 8 | -5 | eight
+     | 8 | -5 | eight
+     | 8 |    | eight
+     | 8 |    | eight
+     | 8 |  0 | eight
+     | 0 | -1 | zero
+     | 0 |  2 | zero
+     | 0 | -3 | zero
+     | 0 |  4 | zero
+     | 0 | -5 | zero
+     | 0 | -5 | zero
+     | 0 |    | zero
+     | 0 |    | zero
+     | 0 |  0 | zero
+     |   | -1 | null
+     |   |  2 | null
+     |   | -3 | null
+     |   |  4 | null
+     |   | -5 | null
+     |   | -5 | null
+     |   |    | null
+     |   |    | null
+     |   |  0 | null
+     |   | -1 | zero
+     |   |  2 | zero
+     |   | -3 | zero
+     |   |  4 | zero
+     |   | -5 | zero
+     |   | -5 | zero
+     |   |    | zero
+     |   |    | zero
+     |   |  0 | zero
+(99 rows)
 
 SELECT '' AS "xxx", ii, tt, kk
   FROM (J1_TBL CROSS JOIN J2_TBL)
@@ -183,155 +453,1104 @@ SELECT '' AS "xxx", ii, tt, kk
      |  1 | one   | -3
      |  1 | one   |  4
      |  1 | one   | -5
+     |  1 | one   | -5
+     |  1 | one   |   
+     |  1 | one   |   
+     |  1 | one   |  0
      |  2 | two   | -1
      |  2 | two   |  2
      |  2 | two   | -3
      |  2 | two   |  4
      |  2 | two   | -5
+     |  2 | two   | -5
+     |  2 | two   |   
+     |  2 | two   |   
+     |  2 | two   |  0
      |  3 | three | -1
      |  3 | three |  2
      |  3 | three | -3
      |  3 | three |  4
      |  3 | three | -5
+     |  3 | three | -5
+     |  3 | three |   
+     |  3 | three |   
+     |  3 | three |  0
      |  4 | four  | -1
      |  4 | four  |  2
      |  4 | four  | -3
      |  4 | four  |  4
      |  4 | four  | -5
-(20 rows)
+     |  4 | four  | -5
+     |  4 | four  |   
+     |  4 | four  |   
+     |  4 | four  |  0
+     |  5 | five  | -1
+     |  5 | five  |  2
+     |  5 | five  | -3
+     |  5 | five  |  4
+     |  5 | five  | -5
+     |  5 | five  | -5
+     |  5 | five  |   
+     |  5 | five  |   
+     |  5 | five  |  0
+     |  6 | six   | -1
+     |  6 | six   |  2
+     |  6 | six   | -3
+     |  6 | six   |  4
+     |  6 | six   | -5
+     |  6 | six   | -5
+     |  6 | six   |   
+     |  6 | six   |   
+     |  6 | six   |  0
+     |  7 | seven | -1
+     |  7 | seven |  2
+     |  7 | seven | -3
+     |  7 | seven |  4
+     |  7 | seven | -5
+     |  7 | seven | -5
+     |  7 | seven |   
+     |  7 | seven |   
+     |  7 | seven |  0
+     |  8 | eight | -1
+     |  8 | eight |  2
+     |  8 | eight | -3
+     |  8 | eight |  4
+     |  8 | eight | -5
+     |  8 | eight | -5
+     |  8 | eight |   
+     |  8 | eight |   
+     |  8 | eight |  0
+     |  0 | zero  | -1
+     |  0 | zero  |  2
+     |  0 | zero  | -3
+     |  0 | zero  |  4
+     |  0 | zero  | -5
+     |  0 | zero  | -5
+     |  0 | zero  |   
+     |  0 | zero  |   
+     |  0 | zero  |  0
+     |    | null  | -1
+     |    | null  |  2
+     |    | null  | -3
+     |    | null  |  4
+     |    | null  | -5
+     |    | null  | -5
+     |    | null  |   
+     |    | null  |   
+     |    | null  |  0
+     |    | zero  | -1
+     |    | zero  |  2
+     |    | zero  | -3
+     |    | zero  |  4
+     |    | zero  | -5
+     |    | zero  | -5
+     |    | zero  |   
+     |    | zero  |   
+     |    | zero  |  0
+(99 rows)
 
 SELECT '' AS "xxx", tx.ii, tx.jj, tx.kk
   FROM (J1_TBL t1 (a, b, c) CROSS JOIN J2_TBL t2 (d, e))
     AS tx (ii, jj, tt, ii2, kk);
  xxx | ii | jj | kk 
 -----+----+----+----
-     |  1 |  3 | -1
-     |  1 |  3 |  2
-     |  1 |  3 | -3
-     |  1 |  3 |  4
-     |  1 |  3 | -5
-     |  2 |  2 | -1
-     |  2 |  2 |  2
-     |  2 |  2 | -3
-     |  2 |  2 |  4
-     |  2 |  2 | -5
-     |  3 |  1 | -1
-     |  3 |  1 |  2
-     |  3 |  1 | -3
-     |  3 |  1 |  4
-     |  3 |  1 | -5
-     |  4 |  0 | -1
-     |  4 |  0 |  2
-     |  4 |  0 | -3
-     |  4 |  0 |  4
-     |  4 |  0 | -5
-(20 rows)
+     |  1 |  4 | -1
+     |  1 |  4 |  2
+     |  1 |  4 | -3
+     |  1 |  4 |  4
+     |  1 |  4 | -5
+     |  1 |  4 | -5
+     |  1 |  4 |   
+     |  1 |  4 |   
+     |  1 |  4 |  0
+     |  2 |  3 | -1
+     |  2 |  3 |  2
+     |  2 |  3 | -3
+     |  2 |  3 |  4
+     |  2 |  3 | -5
+     |  2 |  3 | -5
+     |  2 |  3 |   
+     |  2 |  3 |   
+     |  2 |  3 |  0
+     |  3 |  2 | -1
+     |  3 |  2 |  2
+     |  3 |  2 | -3
+     |  3 |  2 |  4
+     |  3 |  2 | -5
+     |  3 |  2 | -5
+     |  3 |  2 |   
+     |  3 |  2 |   
+     |  3 |  2 |  0
+     |  4 |  1 | -1
+     |  4 |  1 |  2
+     |  4 |  1 | -3
+     |  4 |  1 |  4
+     |  4 |  1 | -5
+     |  4 |  1 | -5
+     |  4 |  1 |   
+     |  4 |  1 |   
+     |  4 |  1 |  0
+     |  5 |  0 | -1
+     |  5 |  0 |  2
+     |  5 |  0 | -3
+     |  5 |  0 |  4
+     |  5 |  0 | -5
+     |  5 |  0 | -5
+     |  5 |  0 |   
+     |  5 |  0 |   
+     |  5 |  0 |  0
+     |  6 |  6 | -1
+     |  6 |  6 |  2
+     |  6 |  6 | -3
+     |  6 |  6 |  4
+     |  6 |  6 | -5
+     |  6 |  6 | -5
+     |  6 |  6 |   
+     |  6 |  6 |   
+     |  6 |  6 |  0
+     |  7 |  7 | -1
+     |  7 |  7 |  2
+     |  7 |  7 | -3
+     |  7 |  7 |  4
+     |  7 |  7 | -5
+     |  7 |  7 | -5
+     |  7 |  7 |   
+     |  7 |  7 |   
+     |  7 |  7 |  0
+     |  8 |  8 | -1
+     |  8 |  8 |  2
+     |  8 |  8 | -3
+     |  8 |  8 |  4
+     |  8 |  8 | -5
+     |  8 |  8 | -5
+     |  8 |  8 |   
+     |  8 |  8 |   
+     |  8 |  8 |  0
+     |  0 |    | -1
+     |  0 |    |  2
+     |  0 |    | -3
+     |  0 |    |  4
+     |  0 |    | -5
+     |  0 |    | -5
+     |  0 |    |   
+     |  0 |    |   
+     |  0 |    |  0
+     |    |    | -1
+     |    |    |  2
+     |    |    | -3
+     |    |    |  4
+     |    |    | -5
+     |    |    | -5
+     |    |    |   
+     |    |    |   
+     |    |    |  0
+     |    |  0 | -1
+     |    |  0 |  2
+     |    |  0 | -3
+     |    |  0 |  4
+     |    |  0 | -5
+     |    |  0 | -5
+     |    |  0 |   
+     |    |  0 |   
+     |    |  0 |  0
+(99 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL CROSS JOIN J2_TBL a CROSS JOIN J2_TBL b;
  xxx | i | j |   t   | i | k  | i | k  
 -----+---+---+-------+---+----+---+----
-     | 1 | 3 | one   | 1 | -1 | 1 | -1
-     | 1 | 3 | one   | 1 | -1 | 2 |  2
-     | 1 | 3 | one   | 1 | -1 | 3 | -3
-     | 1 | 3 | one   | 1 | -1 | 2 |  4
-     | 1 | 3 | one   | 1 | -1 | 5 | -5
-     | 1 | 3 | one   | 2 |  2 | 1 | -1
-     | 1 | 3 | one   | 2 |  2 | 2 |  2
-     | 1 | 3 | one   | 2 |  2 | 3 | -3
-     | 1 | 3 | one   | 2 |  2 | 2 |  4
-     | 1 | 3 | one   | 2 |  2 | 5 | -5
-     | 1 | 3 | one   | 3 | -3 | 1 | -1
-     | 1 | 3 | one   | 3 | -3 | 2 |  2
-     | 1 | 3 | one   | 3 | -3 | 3 | -3
-     | 1 | 3 | one   | 3 | -3 | 2 |  4
-     | 1 | 3 | one   | 3 | -3 | 5 | -5
-     | 1 | 3 | one   | 2 |  4 | 1 | -1
-     | 1 | 3 | one   | 2 |  4 | 2 |  2
-     | 1 | 3 | one   | 2 |  4 | 3 | -3
-     | 1 | 3 | one   | 2 |  4 | 2 |  4
-     | 1 | 3 | one   | 2 |  4 | 5 | -5
-     | 1 | 3 | one   | 5 | -5 | 1 | -1
-     | 1 | 3 | one   | 5 | -5 | 2 |  2
-     | 1 | 3 | one   | 5 | -5 | 3 | -3
-     | 1 | 3 | one   | 5 | -5 | 2 |  4
-     | 1 | 3 | one   | 5 | -5 | 5 | -5
-     | 2 | 2 | two   | 1 | -1 | 1 | -1
-     | 2 | 2 | two   | 1 | -1 | 2 |  2
-     | 2 | 2 | two   | 1 | -1 | 3 | -3
-     | 2 | 2 | two   | 1 | -1 | 2 |  4
-     | 2 | 2 | two   | 1 | -1 | 5 | -5
-     | 2 | 2 | two   | 2 |  2 | 1 | -1
-     | 2 | 2 | two   | 2 |  2 | 2 |  2
-     | 2 | 2 | two   | 2 |  2 | 3 | -3
-     | 2 | 2 | two   | 2 |  2 | 2 |  4
-     | 2 | 2 | two   | 2 |  2 | 5 | -5
-     | 2 | 2 | two   | 3 | -3 | 1 | -1
-     | 2 | 2 | two   | 3 | -3 | 2 |  2
-     | 2 | 2 | two   | 3 | -3 | 3 | -3
-     | 2 | 2 | two   | 3 | -3 | 2 |  4
-     | 2 | 2 | two   | 3 | -3 | 5 | -5
-     | 2 | 2 | two   | 2 |  4 | 1 | -1
-     | 2 | 2 | two   | 2 |  4 | 2 |  2
-     | 2 | 2 | two   | 2 |  4 | 3 | -3
-     | 2 | 2 | two   | 2 |  4 | 2 |  4
-     | 2 | 2 | two   | 2 |  4 | 5 | -5
-     | 2 | 2 | two   | 5 | -5 | 1 | -1
-     | 2 | 2 | two   | 5 | -5 | 2 |  2
-     | 2 | 2 | two   | 5 | -5 | 3 | -3
-     | 2 | 2 | two   | 5 | -5 | 2 |  4
-     | 2 | 2 | two   | 5 | -5 | 5 | -5
-     | 3 | 1 | three | 1 | -1 | 1 | -1
-     | 3 | 1 | three | 1 | -1 | 2 |  2
-     | 3 | 1 | three | 1 | -1 | 3 | -3
-     | 3 | 1 | three | 1 | -1 | 2 |  4
-     | 3 | 1 | three | 1 | -1 | 5 | -5
-     | 3 | 1 | three | 2 |  2 | 1 | -1
-     | 3 | 1 | three | 2 |  2 | 2 |  2
-     | 3 | 1 | three | 2 |  2 | 3 | -3
-     | 3 | 1 | three | 2 |  2 | 2 |  4
-     | 3 | 1 | three | 2 |  2 | 5 | -5
-     | 3 | 1 | three | 3 | -3 | 1 | -1
-     | 3 | 1 | three | 3 | -3 | 2 |  2
-     | 3 | 1 | three | 3 | -3 | 3 | -3
-     | 3 | 1 | three | 3 | -3 | 2 |  4
-     | 3 | 1 | three | 3 | -3 | 5 | -5
-     | 3 | 1 | three | 2 |  4 | 1 | -1
-     | 3 | 1 | three | 2 |  4 | 2 |  2
-     | 3 | 1 | three | 2 |  4 | 3 | -3
-     | 3 | 1 | three | 2 |  4 | 2 |  4
-     | 3 | 1 | three | 2 |  4 | 5 | -5
-     | 3 | 1 | three | 5 | -5 | 1 | -1
-     | 3 | 1 | three | 5 | -5 | 2 |  2
-     | 3 | 1 | three | 5 | -5 | 3 | -3
-     | 3 | 1 | three | 5 | -5 | 2 |  4
-     | 3 | 1 | three | 5 | -5 | 5 | -5
-     | 4 | 0 | four  | 1 | -1 | 1 | -1
-     | 4 | 0 | four  | 1 | -1 | 2 |  2
-     | 4 | 0 | four  | 1 | -1 | 3 | -3
-     | 4 | 0 | four  | 1 | -1 | 2 |  4
-     | 4 | 0 | four  | 1 | -1 | 5 | -5
-     | 4 | 0 | four  | 2 |  2 | 1 | -1
-     | 4 | 0 | four  | 2 |  2 | 2 |  2
-     | 4 | 0 | four  | 2 |  2 | 3 | -3
-     | 4 | 0 | four  | 2 |  2 | 2 |  4
-     | 4 | 0 | four  | 2 |  2 | 5 | -5
-     | 4 | 0 | four  | 3 | -3 | 1 | -1
-     | 4 | 0 | four  | 3 | -3 | 2 |  2
-     | 4 | 0 | four  | 3 | -3 | 3 | -3
-     | 4 | 0 | four  | 3 | -3 | 2 |  4
-     | 4 | 0 | four  | 3 | -3 | 5 | -5
-     | 4 | 0 | four  | 2 |  4 | 1 | -1
-     | 4 | 0 | four  | 2 |  4 | 2 |  2
-     | 4 | 0 | four  | 2 |  4 | 3 | -3
-     | 4 | 0 | four  | 2 |  4 | 2 |  4
-     | 4 | 0 | four  | 2 |  4 | 5 | -5
-     | 4 | 0 | four  | 5 | -5 | 1 | -1
-     | 4 | 0 | four  | 5 | -5 | 2 |  2
-     | 4 | 0 | four  | 5 | -5 | 3 | -3
-     | 4 | 0 | four  | 5 | -5 | 2 |  4
-     | 4 | 0 | four  | 5 | -5 | 5 | -5
-(100 rows)
+     | 1 | 4 | one   | 1 | -1 | 1 | -1
+     | 1 | 4 | one   | 1 | -1 | 2 |  2
+     | 1 | 4 | one   | 1 | -1 | 3 | -3
+     | 1 | 4 | one   | 1 | -1 | 2 |  4
+     | 1 | 4 | one   | 1 | -1 | 5 | -5
+     | 1 | 4 | one   | 1 | -1 | 5 | -5
+     | 1 | 4 | one   | 1 | -1 | 0 |   
+     | 1 | 4 | one   | 1 | -1 |   |   
+     | 1 | 4 | one   | 1 | -1 |   |  0
+     | 1 | 4 | one   | 2 |  2 | 1 | -1
+     | 1 | 4 | one   | 2 |  2 | 2 |  2
+     | 1 | 4 | one   | 2 |  2 | 3 | -3
+     | 1 | 4 | one   | 2 |  2 | 2 |  4
+     | 1 | 4 | one   | 2 |  2 | 5 | -5
+     | 1 | 4 | one   | 2 |  2 | 5 | -5
+     | 1 | 4 | one   | 2 |  2 | 0 |   
+     | 1 | 4 | one   | 2 |  2 |   |   
+     | 1 | 4 | one   | 2 |  2 |   |  0
+     | 1 | 4 | one   | 3 | -3 | 1 | -1
+     | 1 | 4 | one   | 3 | -3 | 2 |  2
+     | 1 | 4 | one   | 3 | -3 | 3 | -3
+     | 1 | 4 | one   | 3 | -3 | 2 |  4
+     | 1 | 4 | one   | 3 | -3 | 5 | -5
+     | 1 | 4 | one   | 3 | -3 | 5 | -5
+     | 1 | 4 | one   | 3 | -3 | 0 |   
+     | 1 | 4 | one   | 3 | -3 |   |   
+     | 1 | 4 | one   | 3 | -3 |   |  0
+     | 1 | 4 | one   | 2 |  4 | 1 | -1
+     | 1 | 4 | one   | 2 |  4 | 2 |  2
+     | 1 | 4 | one   | 2 |  4 | 3 | -3
+     | 1 | 4 | one   | 2 |  4 | 2 |  4
+     | 1 | 4 | one   | 2 |  4 | 5 | -5
+     | 1 | 4 | one   | 2 |  4 | 5 | -5
+     | 1 | 4 | one   | 2 |  4 | 0 |   
+     | 1 | 4 | one   | 2 |  4 |   |   
+     | 1 | 4 | one   | 2 |  4 |   |  0
+     | 1 | 4 | one   | 5 | -5 | 1 | -1
+     | 1 | 4 | one   | 5 | -5 | 2 |  2
+     | 1 | 4 | one   | 5 | -5 | 3 | -3
+     | 1 | 4 | one   | 5 | -5 | 2 |  4
+     | 1 | 4 | one   | 5 | -5 | 5 | -5
+     | 1 | 4 | one   | 5 | -5 | 5 | -5
+     | 1 | 4 | one   | 5 | -5 | 0 |   
+     | 1 | 4 | one   | 5 | -5 |   |   
+     | 1 | 4 | one   | 5 | -5 |   |  0
+     | 1 | 4 | one   | 5 | -5 | 1 | -1
+     | 1 | 4 | one   | 5 | -5 | 2 |  2
+     | 1 | 4 | one   | 5 | -5 | 3 | -3
+     | 1 | 4 | one   | 5 | -5 | 2 |  4
+     | 1 | 4 | one   | 5 | -5 | 5 | -5
+     | 1 | 4 | one   | 5 | -5 | 5 | -5
+     | 1 | 4 | one   | 5 | -5 | 0 |   
+     | 1 | 4 | one   | 5 | -5 |   |   
+     | 1 | 4 | one   | 5 | -5 |   |  0
+     | 1 | 4 | one   | 0 |    | 1 | -1
+     | 1 | 4 | one   | 0 |    | 2 |  2
+     | 1 | 4 | one   | 0 |    | 3 | -3
+     | 1 | 4 | one   | 0 |    | 2 |  4
+     | 1 | 4 | one   | 0 |    | 5 | -5
+     | 1 | 4 | one   | 0 |    | 5 | -5
+     | 1 | 4 | one   | 0 |    | 0 |   
+     | 1 | 4 | one   | 0 |    |   |   
+     | 1 | 4 | one   | 0 |    |   |  0
+     | 1 | 4 | one   |   |    | 1 | -1
+     | 1 | 4 | one   |   |    | 2 |  2
+     | 1 | 4 | one   |   |    | 3 | -3
+     | 1 | 4 | one   |   |    | 2 |  4
+     | 1 | 4 | one   |   |    | 5 | -5
+     | 1 | 4 | one   |   |    | 5 | -5
+     | 1 | 4 | one   |   |    | 0 |   
+     | 1 | 4 | one   |   |    |   |   
+     | 1 | 4 | one   |   |    |   |  0
+     | 1 | 4 | one   |   |  0 | 1 | -1
+     | 1 | 4 | one   |   |  0 | 2 |  2
+     | 1 | 4 | one   |   |  0 | 3 | -3
+     | 1 | 4 | one   |   |  0 | 2 |  4
+     | 1 | 4 | one   |   |  0 | 5 | -5
+     | 1 | 4 | one   |   |  0 | 5 | -5
+     | 1 | 4 | one   |   |  0 | 0 |   
+     | 1 | 4 | one   |   |  0 |   |   
+     | 1 | 4 | one   |   |  0 |   |  0
+     | 2 | 3 | two   | 1 | -1 | 1 | -1
+     | 2 | 3 | two   | 1 | -1 | 2 |  2
+     | 2 | 3 | two   | 1 | -1 | 3 | -3
+     | 2 | 3 | two   | 1 | -1 | 2 |  4
+     | 2 | 3 | two   | 1 | -1 | 5 | -5
+     | 2 | 3 | two   | 1 | -1 | 5 | -5
+     | 2 | 3 | two   | 1 | -1 | 0 |   
+     | 2 | 3 | two   | 1 | -1 |   |   
+     | 2 | 3 | two   | 1 | -1 |   |  0
+     | 2 | 3 | two   | 2 |  2 | 1 | -1
+     | 2 | 3 | two   | 2 |  2 | 2 |  2
+     | 2 | 3 | two   | 2 |  2 | 3 | -3
+     | 2 | 3 | two   | 2 |  2 | 2 |  4
+     | 2 | 3 | two   | 2 |  2 | 5 | -5
+     | 2 | 3 | two   | 2 |  2 | 5 | -5
+     | 2 | 3 | two   | 2 |  2 | 0 |   
+     | 2 | 3 | two   | 2 |  2 |   |   
+     | 2 | 3 | two   | 2 |  2 |   |  0
+     | 2 | 3 | two   | 3 | -3 | 1 | -1
+     | 2 | 3 | two   | 3 | -3 | 2 |  2
+     | 2 | 3 | two   | 3 | -3 | 3 | -3
+     | 2 | 3 | two   | 3 | -3 | 2 |  4
+     | 2 | 3 | two   | 3 | -3 | 5 | -5
+     | 2 | 3 | two   | 3 | -3 | 5 | -5
+     | 2 | 3 | two   | 3 | -3 | 0 |   
+     | 2 | 3 | two   | 3 | -3 |   |   
+     | 2 | 3 | two   | 3 | -3 |   |  0
+     | 2 | 3 | two   | 2 |  4 | 1 | -1
+     | 2 | 3 | two   | 2 |  4 | 2 |  2
+     | 2 | 3 | two   | 2 |  4 | 3 | -3
+     | 2 | 3 | two   | 2 |  4 | 2 |  4
+     | 2 | 3 | two   | 2 |  4 | 5 | -5
+     | 2 | 3 | two   | 2 |  4 | 5 | -5
+     | 2 | 3 | two   | 2 |  4 | 0 |   
+     | 2 | 3 | two   | 2 |  4 |   |   
+     | 2 | 3 | two   | 2 |  4 |   |  0
+     | 2 | 3 | two   | 5 | -5 | 1 | -1
+     | 2 | 3 | two   | 5 | -5 | 2 |  2
+     | 2 | 3 | two   | 5 | -5 | 3 | -3
+     | 2 | 3 | two   | 5 | -5 | 2 |  4
+     | 2 | 3 | two   | 5 | -5 | 5 | -5
+     | 2 | 3 | two   | 5 | -5 | 5 | -5
+     | 2 | 3 | two   | 5 | -5 | 0 |   
+     | 2 | 3 | two   | 5 | -5 |   |   
+     | 2 | 3 | two   | 5 | -5 |   |  0
+     | 2 | 3 | two   | 5 | -5 | 1 | -1
+     | 2 | 3 | two   | 5 | -5 | 2 |  2
+     | 2 | 3 | two   | 5 | -5 | 3 | -3
+     | 2 | 3 | two   | 5 | -5 | 2 |  4
+     | 2 | 3 | two   | 5 | -5 | 5 | -5
+     | 2 | 3 | two   | 5 | -5 | 5 | -5
+     | 2 | 3 | two   | 5 | -5 | 0 |   
+     | 2 | 3 | two   | 5 | -5 |   |   
+     | 2 | 3 | two   | 5 | -5 |   |  0
+     | 2 | 3 | two   | 0 |    | 1 | -1
+     | 2 | 3 | two   | 0 |    | 2 |  2
+     | 2 | 3 | two   | 0 |    | 3 | -3
+     | 2 | 3 | two   | 0 |    | 2 |  4
+     | 2 | 3 | two   | 0 |    | 5 | -5
+     | 2 | 3 | two   | 0 |    | 5 | -5
+     | 2 | 3 | two   | 0 |    | 0 |   
+     | 2 | 3 | two   | 0 |    |   |   
+     | 2 | 3 | two   | 0 |    |   |  0
+     | 2 | 3 | two   |   |    | 1 | -1
+     | 2 | 3 | two   |   |    | 2 |  2
+     | 2 | 3 | two   |   |    | 3 | -3
+     | 2 | 3 | two   |   |    | 2 |  4
+     | 2 | 3 | two   |   |    | 5 | -5
+     | 2 | 3 | two   |   |    | 5 | -5
+     | 2 | 3 | two   |   |    | 0 |   
+     | 2 | 3 | two   |   |    |   |   
+     | 2 | 3 | two   |   |    |   |  0
+     | 2 | 3 | two   |   |  0 | 1 | -1
+     | 2 | 3 | two   |   |  0 | 2 |  2
+     | 2 | 3 | two   |   |  0 | 3 | -3
+     | 2 | 3 | two   |   |  0 | 2 |  4
+     | 2 | 3 | two   |   |  0 | 5 | -5
+     | 2 | 3 | two   |   |  0 | 5 | -5
+     | 2 | 3 | two   |   |  0 | 0 |   
+     | 2 | 3 | two   |   |  0 |   |   
+     | 2 | 3 | two   |   |  0 |   |  0
+     | 3 | 2 | three | 1 | -1 | 1 | -1
+     | 3 | 2 | three | 1 | -1 | 2 |  2
+     | 3 | 2 | three | 1 | -1 | 3 | -3
+     | 3 | 2 | three | 1 | -1 | 2 |  4
+     | 3 | 2 | three | 1 | -1 | 5 | -5
+     | 3 | 2 | three | 1 | -1 | 5 | -5
+     | 3 | 2 | three | 1 | -1 | 0 |   
+     | 3 | 2 | three | 1 | -1 |   |   
+     | 3 | 2 | three | 1 | -1 |   |  0
+     | 3 | 2 | three | 2 |  2 | 1 | -1
+     | 3 | 2 | three | 2 |  2 | 2 |  2
+     | 3 | 2 | three | 2 |  2 | 3 | -3
+     | 3 | 2 | three | 2 |  2 | 2 |  4
+     | 3 | 2 | three | 2 |  2 | 5 | -5
+     | 3 | 2 | three | 2 |  2 | 5 | -5
+     | 3 | 2 | three | 2 |  2 | 0 |   
+     | 3 | 2 | three | 2 |  2 |   |   
+     | 3 | 2 | three | 2 |  2 |   |  0
+     | 3 | 2 | three | 3 | -3 | 1 | -1
+     | 3 | 2 | three | 3 | -3 | 2 |  2
+     | 3 | 2 | three | 3 | -3 | 3 | -3
+     | 3 | 2 | three | 3 | -3 | 2 |  4
+     | 3 | 2 | three | 3 | -3 | 5 | -5
+     | 3 | 2 | three | 3 | -3 | 5 | -5
+     | 3 | 2 | three | 3 | -3 | 0 |   
+     | 3 | 2 | three | 3 | -3 |   |   
+     | 3 | 2 | three | 3 | -3 |   |  0
+     | 3 | 2 | three | 2 |  4 | 1 | -1
+     | 3 | 2 | three | 2 |  4 | 2 |  2
+     | 3 | 2 | three | 2 |  4 | 3 | -3
+     | 3 | 2 | three | 2 |  4 | 2 |  4
+     | 3 | 2 | three | 2 |  4 | 5 | -5
+     | 3 | 2 | three | 2 |  4 | 5 | -5
+     | 3 | 2 | three | 2 |  4 | 0 |   
+     | 3 | 2 | three | 2 |  4 |   |   
+     | 3 | 2 | three | 2 |  4 |   |  0
+     | 3 | 2 | three | 5 | -5 | 1 | -1
+     | 3 | 2 | three | 5 | -5 | 2 |  2
+     | 3 | 2 | three | 5 | -5 | 3 | -3
+     | 3 | 2 | three | 5 | -5 | 2 |  4
+     | 3 | 2 | three | 5 | -5 | 5 | -5
+     | 3 | 2 | three | 5 | -5 | 5 | -5
+     | 3 | 2 | three | 5 | -5 | 0 |   
+     | 3 | 2 | three | 5 | -5 |   |   
+     | 3 | 2 | three | 5 | -5 |   |  0
+     | 3 | 2 | three | 5 | -5 | 1 | -1
+     | 3 | 2 | three | 5 | -5 | 2 |  2
+     | 3 | 2 | three | 5 | -5 | 3 | -3
+     | 3 | 2 | three | 5 | -5 | 2 |  4
+     | 3 | 2 | three | 5 | -5 | 5 | -5
+     | 3 | 2 | three | 5 | -5 | 5 | -5
+     | 3 | 2 | three | 5 | -5 | 0 |   
+     | 3 | 2 | three | 5 | -5 |   |   
+     | 3 | 2 | three | 5 | -5 |   |  0
+     | 3 | 2 | three | 0 |    | 1 | -1
+     | 3 | 2 | three | 0 |    | 2 |  2
+     | 3 | 2 | three | 0 |    | 3 | -3
+     | 3 | 2 | three | 0 |    | 2 |  4
+     | 3 | 2 | three | 0 |    | 5 | -5
+     | 3 | 2 | three | 0 |    | 5 | -5
+     | 3 | 2 | three | 0 |    | 0 |   
+     | 3 | 2 | three | 0 |    |   |   
+     | 3 | 2 | three | 0 |    |   |  0
+     | 3 | 2 | three |   |    | 1 | -1
+     | 3 | 2 | three |   |    | 2 |  2
+     | 3 | 2 | three |   |    | 3 | -3
+     | 3 | 2 | three |   |    | 2 |  4
+     | 3 | 2 | three |   |    | 5 | -5
+     | 3 | 2 | three |   |    | 5 | -5
+     | 3 | 2 | three |   |    | 0 |   
+     | 3 | 2 | three |   |    |   |   
+     | 3 | 2 | three |   |    |   |  0
+     | 3 | 2 | three |   |  0 | 1 | -1
+     | 3 | 2 | three |   |  0 | 2 |  2
+     | 3 | 2 | three |   |  0 | 3 | -3
+     | 3 | 2 | three |   |  0 | 2 |  4
+     | 3 | 2 | three |   |  0 | 5 | -5
+     | 3 | 2 | three |   |  0 | 5 | -5
+     | 3 | 2 | three |   |  0 | 0 |   
+     | 3 | 2 | three |   |  0 |   |   
+     | 3 | 2 | three |   |  0 |   |  0
+     | 4 | 1 | four  | 1 | -1 | 1 | -1
+     | 4 | 1 | four  | 1 | -1 | 2 |  2
+     | 4 | 1 | four  | 1 | -1 | 3 | -3
+     | 4 | 1 | four  | 1 | -1 | 2 |  4
+     | 4 | 1 | four  | 1 | -1 | 5 | -5
+     | 4 | 1 | four  | 1 | -1 | 5 | -5
+     | 4 | 1 | four  | 1 | -1 | 0 |   
+     | 4 | 1 | four  | 1 | -1 |   |   
+     | 4 | 1 | four  | 1 | -1 |   |  0
+     | 4 | 1 | four  | 2 |  2 | 1 | -1
+     | 4 | 1 | four  | 2 |  2 | 2 |  2
+     | 4 | 1 | four  | 2 |  2 | 3 | -3
+     | 4 | 1 | four  | 2 |  2 | 2 |  4
+     | 4 | 1 | four  | 2 |  2 | 5 | -5
+     | 4 | 1 | four  | 2 |  2 | 5 | -5
+     | 4 | 1 | four  | 2 |  2 | 0 |   
+     | 4 | 1 | four  | 2 |  2 |   |   
+     | 4 | 1 | four  | 2 |  2 |   |  0
+     | 4 | 1 | four  | 3 | -3 | 1 | -1
+     | 4 | 1 | four  | 3 | -3 | 2 |  2
+     | 4 | 1 | four  | 3 | -3 | 3 | -3
+     | 4 | 1 | four  | 3 | -3 | 2 |  4
+     | 4 | 1 | four  | 3 | -3 | 5 | -5
+     | 4 | 1 | four  | 3 | -3 | 5 | -5
+     | 4 | 1 | four  | 3 | -3 | 0 |   
+     | 4 | 1 | four  | 3 | -3 |   |   
+     | 4 | 1 | four  | 3 | -3 |   |  0
+     | 4 | 1 | four  | 2 |  4 | 1 | -1
+     | 4 | 1 | four  | 2 |  4 | 2 |  2
+     | 4 | 1 | four  | 2 |  4 | 3 | -3
+     | 4 | 1 | four  | 2 |  4 | 2 |  4
+     | 4 | 1 | four  | 2 |  4 | 5 | -5
+     | 4 | 1 | four  | 2 |  4 | 5 | -5
+     | 4 | 1 | four  | 2 |  4 | 0 |   
+     | 4 | 1 | four  | 2 |  4 |   |   
+     | 4 | 1 | four  | 2 |  4 |   |  0
+     | 4 | 1 | four  | 5 | -5 | 1 | -1
+     | 4 | 1 | four  | 5 | -5 | 2 |  2
+     | 4 | 1 | four  | 5 | -5 | 3 | -3
+     | 4 | 1 | four  | 5 | -5 | 2 |  4
+     | 4 | 1 | four  | 5 | -5 | 5 | -5
+     | 4 | 1 | four  | 5 | -5 | 5 | -5
+     | 4 | 1 | four  | 5 | -5 | 0 |   
+     | 4 | 1 | four  | 5 | -5 |   |   
+     | 4 | 1 | four  | 5 | -5 |   |  0
+     | 4 | 1 | four  | 5 | -5 | 1 | -1
+     | 4 | 1 | four  | 5 | -5 | 2 |  2
+     | 4 | 1 | four  | 5 | -5 | 3 | -3
+     | 4 | 1 | four  | 5 | -5 | 2 |  4
+     | 4 | 1 | four  | 5 | -5 | 5 | -5
+     | 4 | 1 | four  | 5 | -5 | 5 | -5
+     | 4 | 1 | four  | 5 | -5 | 0 |   
+     | 4 | 1 | four  | 5 | -5 |   |   
+     | 4 | 1 | four  | 5 | -5 |   |  0
+     | 4 | 1 | four  | 0 |    | 1 | -1
+     | 4 | 1 | four  | 0 |    | 2 |  2
+     | 4 | 1 | four  | 0 |    | 3 | -3
+     | 4 | 1 | four  | 0 |    | 2 |  4
+     | 4 | 1 | four  | 0 |    | 5 | -5
+     | 4 | 1 | four  | 0 |    | 5 | -5
+     | 4 | 1 | four  | 0 |    | 0 |   
+     | 4 | 1 | four  | 0 |    |   |   
+     | 4 | 1 | four  | 0 |    |   |  0
+     | 4 | 1 | four  |   |    | 1 | -1
+     | 4 | 1 | four  |   |    | 2 |  2
+     | 4 | 1 | four  |   |    | 3 | -3
+     | 4 | 1 | four  |   |    | 2 |  4
+     | 4 | 1 | four  |   |    | 5 | -5
+     | 4 | 1 | four  |   |    | 5 | -5
+     | 4 | 1 | four  |   |    | 0 |   
+     | 4 | 1 | four  |   |    |   |   
+     | 4 | 1 | four  |   |    |   |  0
+     | 4 | 1 | four  |   |  0 | 1 | -1
+     | 4 | 1 | four  |   |  0 | 2 |  2
+     | 4 | 1 | four  |   |  0 | 3 | -3
+     | 4 | 1 | four  |   |  0 | 2 |  4
+     | 4 | 1 | four  |   |  0 | 5 | -5
+     | 4 | 1 | four  |   |  0 | 5 | -5
+     | 4 | 1 | four  |   |  0 | 0 |   
+     | 4 | 1 | four  |   |  0 |   |   
+     | 4 | 1 | four  |   |  0 |   |  0
+     | 5 | 0 | five  | 1 | -1 | 1 | -1
+     | 5 | 0 | five  | 1 | -1 | 2 |  2
+     | 5 | 0 | five  | 1 | -1 | 3 | -3
+     | 5 | 0 | five  | 1 | -1 | 2 |  4
+     | 5 | 0 | five  | 1 | -1 | 5 | -5
+     | 5 | 0 | five  | 1 | -1 | 5 | -5
+     | 5 | 0 | five  | 1 | -1 | 0 |   
+     | 5 | 0 | five  | 1 | -1 |   |   
+     | 5 | 0 | five  | 1 | -1 |   |  0
+     | 5 | 0 | five  | 2 |  2 | 1 | -1
+     | 5 | 0 | five  | 2 |  2 | 2 |  2
+     | 5 | 0 | five  | 2 |  2 | 3 | -3
+     | 5 | 0 | five  | 2 |  2 | 2 |  4
+     | 5 | 0 | five  | 2 |  2 | 5 | -5
+     | 5 | 0 | five  | 2 |  2 | 5 | -5
+     | 5 | 0 | five  | 2 |  2 | 0 |   
+     | 5 | 0 | five  | 2 |  2 |   |   
+     | 5 | 0 | five  | 2 |  2 |   |  0
+     | 5 | 0 | five  | 3 | -3 | 1 | -1
+     | 5 | 0 | five  | 3 | -3 | 2 |  2
+     | 5 | 0 | five  | 3 | -3 | 3 | -3
+     | 5 | 0 | five  | 3 | -3 | 2 |  4
+     | 5 | 0 | five  | 3 | -3 | 5 | -5
+     | 5 | 0 | five  | 3 | -3 | 5 | -5
+     | 5 | 0 | five  | 3 | -3 | 0 |   
+     | 5 | 0 | five  | 3 | -3 |   |   
+     | 5 | 0 | five  | 3 | -3 |   |  0
+     | 5 | 0 | five  | 2 |  4 | 1 | -1
+     | 5 | 0 | five  | 2 |  4 | 2 |  2
+     | 5 | 0 | five  | 2 |  4 | 3 | -3
+     | 5 | 0 | five  | 2 |  4 | 2 |  4
+     | 5 | 0 | five  | 2 |  4 | 5 | -5
+     | 5 | 0 | five  | 2 |  4 | 5 | -5
+     | 5 | 0 | five  | 2 |  4 | 0 |   
+     | 5 | 0 | five  | 2 |  4 |   |   
+     | 5 | 0 | five  | 2 |  4 |   |  0
+     | 5 | 0 | five  | 5 | -5 | 1 | -1
+     | 5 | 0 | five  | 5 | -5 | 2 |  2
+     | 5 | 0 | five  | 5 | -5 | 3 | -3
+     | 5 | 0 | five  | 5 | -5 | 2 |  4
+     | 5 | 0 | five  | 5 | -5 | 5 | -5
+     | 5 | 0 | five  | 5 | -5 | 5 | -5
+     | 5 | 0 | five  | 5 | -5 | 0 |   
+     | 5 | 0 | five  | 5 | -5 |   |   
+     | 5 | 0 | five  | 5 | -5 |   |  0
+     | 5 | 0 | five  | 5 | -5 | 1 | -1
+     | 5 | 0 | five  | 5 | -5 | 2 |  2
+     | 5 | 0 | five  | 5 | -5 | 3 | -3
+     | 5 | 0 | five  | 5 | -5 | 2 |  4
+     | 5 | 0 | five  | 5 | -5 | 5 | -5
+     | 5 | 0 | five  | 5 | -5 | 5 | -5
+     | 5 | 0 | five  | 5 | -5 | 0 |   
+     | 5 | 0 | five  | 5 | -5 |   |   
+     | 5 | 0 | five  | 5 | -5 |   |  0
+     | 5 | 0 | five  | 0 |    | 1 | -1
+     | 5 | 0 | five  | 0 |    | 2 |  2
+     | 5 | 0 | five  | 0 |    | 3 | -3
+     | 5 | 0 | five  | 0 |    | 2 |  4
+     | 5 | 0 | five  | 0 |    | 5 | -5
+     | 5 | 0 | five  | 0 |    | 5 | -5
+     | 5 | 0 | five  | 0 |    | 0 |   
+     | 5 | 0 | five  | 0 |    |   |   
+     | 5 | 0 | five  | 0 |    |   |  0
+     | 5 | 0 | five  |   |    | 1 | -1
+     | 5 | 0 | five  |   |    | 2 |  2
+     | 5 | 0 | five  |   |    | 3 | -3
+     | 5 | 0 | five  |   |    | 2 |  4
+     | 5 | 0 | five  |   |    | 5 | -5
+     | 5 | 0 | five  |   |    | 5 | -5
+     | 5 | 0 | five  |   |    | 0 |   
+     | 5 | 0 | five  |   |    |   |   
+     | 5 | 0 | five  |   |    |   |  0
+     | 5 | 0 | five  |   |  0 | 1 | -1
+     | 5 | 0 | five  |   |  0 | 2 |  2
+     | 5 | 0 | five  |   |  0 | 3 | -3
+     | 5 | 0 | five  |   |  0 | 2 |  4
+     | 5 | 0 | five  |   |  0 | 5 | -5
+     | 5 | 0 | five  |   |  0 | 5 | -5
+     | 5 | 0 | five  |   |  0 | 0 |   
+     | 5 | 0 | five  |   |  0 |   |   
+     | 5 | 0 | five  |   |  0 |   |  0
+     | 6 | 6 | six   | 1 | -1 | 1 | -1
+     | 6 | 6 | six   | 1 | -1 | 2 |  2
+     | 6 | 6 | six   | 1 | -1 | 3 | -3
+     | 6 | 6 | six   | 1 | -1 | 2 |  4
+     | 6 | 6 | six   | 1 | -1 | 5 | -5
+     | 6 | 6 | six   | 1 | -1 | 5 | -5
+     | 6 | 6 | six   | 1 | -1 | 0 |   
+     | 6 | 6 | six   | 1 | -1 |   |   
+     | 6 | 6 | six   | 1 | -1 |   |  0
+     | 6 | 6 | six   | 2 |  2 | 1 | -1
+     | 6 | 6 | six   | 2 |  2 | 2 |  2
+     | 6 | 6 | six   | 2 |  2 | 3 | -3
+     | 6 | 6 | six   | 2 |  2 | 2 |  4
+     | 6 | 6 | six   | 2 |  2 | 5 | -5
+     | 6 | 6 | six   | 2 |  2 | 5 | -5
+     | 6 | 6 | six   | 2 |  2 | 0 |   
+     | 6 | 6 | six   | 2 |  2 |   |   
+     | 6 | 6 | six   | 2 |  2 |   |  0
+     | 6 | 6 | six   | 3 | -3 | 1 | -1
+     | 6 | 6 | six   | 3 | -3 | 2 |  2
+     | 6 | 6 | six   | 3 | -3 | 3 | -3
+     | 6 | 6 | six   | 3 | -3 | 2 |  4
+     | 6 | 6 | six   | 3 | -3 | 5 | -5
+     | 6 | 6 | six   | 3 | -3 | 5 | -5
+     | 6 | 6 | six   | 3 | -3 | 0 |   
+     | 6 | 6 | six   | 3 | -3 |   |   
+     | 6 | 6 | six   | 3 | -3 |   |  0
+     | 6 | 6 | six   | 2 |  4 | 1 | -1
+     | 6 | 6 | six   | 2 |  4 | 2 |  2
+     | 6 | 6 | six   | 2 |  4 | 3 | -3
+     | 6 | 6 | six   | 2 |  4 | 2 |  4
+     | 6 | 6 | six   | 2 |  4 | 5 | -5
+     | 6 | 6 | six   | 2 |  4 | 5 | -5
+     | 6 | 6 | six   | 2 |  4 | 0 |   
+     | 6 | 6 | six   | 2 |  4 |   |   
+     | 6 | 6 | six   | 2 |  4 |   |  0
+     | 6 | 6 | six   | 5 | -5 | 1 | -1
+     | 6 | 6 | six   | 5 | -5 | 2 |  2
+     | 6 | 6 | six   | 5 | -5 | 3 | -3
+     | 6 | 6 | six   | 5 | -5 | 2 |  4
+     | 6 | 6 | six   | 5 | -5 | 5 | -5
+     | 6 | 6 | six   | 5 | -5 | 5 | -5
+     | 6 | 6 | six   | 5 | -5 | 0 |   
+     | 6 | 6 | six   | 5 | -5 |   |   
+     | 6 | 6 | six   | 5 | -5 |   |  0
+     | 6 | 6 | six   | 5 | -5 | 1 | -1
+     | 6 | 6 | six   | 5 | -5 | 2 |  2
+     | 6 | 6 | six   | 5 | -5 | 3 | -3
+     | 6 | 6 | six   | 5 | -5 | 2 |  4
+     | 6 | 6 | six   | 5 | -5 | 5 | -5
+     | 6 | 6 | six   | 5 | -5 | 5 | -5
+     | 6 | 6 | six   | 5 | -5 | 0 |   
+     | 6 | 6 | six   | 5 | -5 |   |   
+     | 6 | 6 | six   | 5 | -5 |   |  0
+     | 6 | 6 | six   | 0 |    | 1 | -1
+     | 6 | 6 | six   | 0 |    | 2 |  2
+     | 6 | 6 | six   | 0 |    | 3 | -3
+     | 6 | 6 | six   | 0 |    | 2 |  4
+     | 6 | 6 | six   | 0 |    | 5 | -5
+     | 6 | 6 | six   | 0 |    | 5 | -5
+     | 6 | 6 | six   | 0 |    | 0 |   
+     | 6 | 6 | six   | 0 |    |   |   
+     | 6 | 6 | six   | 0 |    |   |  0
+     | 6 | 6 | six   |   |    | 1 | -1
+     | 6 | 6 | six   |   |    | 2 |  2
+     | 6 | 6 | six   |   |    | 3 | -3
+     | 6 | 6 | six   |   |    | 2 |  4
+     | 6 | 6 | six   |   |    | 5 | -5
+     | 6 | 6 | six   |   |    | 5 | -5
+     | 6 | 6 | six   |   |    | 0 |   
+     | 6 | 6 | six   |   |    |   |   
+     | 6 | 6 | six   |   |    |   |  0
+     | 6 | 6 | six   |   |  0 | 1 | -1
+     | 6 | 6 | six   |   |  0 | 2 |  2
+     | 6 | 6 | six   |   |  0 | 3 | -3
+     | 6 | 6 | six   |   |  0 | 2 |  4
+     | 6 | 6 | six   |   |  0 | 5 | -5
+     | 6 | 6 | six   |   |  0 | 5 | -5
+     | 6 | 6 | six   |   |  0 | 0 |   
+     | 6 | 6 | six   |   |  0 |   |   
+     | 6 | 6 | six   |   |  0 |   |  0
+     | 7 | 7 | seven | 1 | -1 | 1 | -1
+     | 7 | 7 | seven | 1 | -1 | 2 |  2
+     | 7 | 7 | seven | 1 | -1 | 3 | -3
+     | 7 | 7 | seven | 1 | -1 | 2 |  4
+     | 7 | 7 | seven | 1 | -1 | 5 | -5
+     | 7 | 7 | seven | 1 | -1 | 5 | -5
+     | 7 | 7 | seven | 1 | -1 | 0 |   
+     | 7 | 7 | seven | 1 | -1 |   |   
+     | 7 | 7 | seven | 1 | -1 |   |  0
+     | 7 | 7 | seven | 2 |  2 | 1 | -1
+     | 7 | 7 | seven | 2 |  2 | 2 |  2
+     | 7 | 7 | seven | 2 |  2 | 3 | -3
+     | 7 | 7 | seven | 2 |  2 | 2 |  4
+     | 7 | 7 | seven | 2 |  2 | 5 | -5
+     | 7 | 7 | seven | 2 |  2 | 5 | -5
+     | 7 | 7 | seven | 2 |  2 | 0 |   
+     | 7 | 7 | seven | 2 |  2 |   |   
+     | 7 | 7 | seven | 2 |  2 |   |  0
+     | 7 | 7 | seven | 3 | -3 | 1 | -1
+     | 7 | 7 | seven | 3 | -3 | 2 |  2
+     | 7 | 7 | seven | 3 | -3 | 3 | -3
+     | 7 | 7 | seven | 3 | -3 | 2 |  4
+     | 7 | 7 | seven | 3 | -3 | 5 | -5
+     | 7 | 7 | seven | 3 | -3 | 5 | -5
+     | 7 | 7 | seven | 3 | -3 | 0 |   
+     | 7 | 7 | seven | 3 | -3 |   |   
+     | 7 | 7 | seven | 3 | -3 |   |  0
+     | 7 | 7 | seven | 2 |  4 | 1 | -1
+     | 7 | 7 | seven | 2 |  4 | 2 |  2
+     | 7 | 7 | seven | 2 |  4 | 3 | -3
+     | 7 | 7 | seven | 2 |  4 | 2 |  4
+     | 7 | 7 | seven | 2 |  4 | 5 | -5
+     | 7 | 7 | seven | 2 |  4 | 5 | -5
+     | 7 | 7 | seven | 2 |  4 | 0 |   
+     | 7 | 7 | seven | 2 |  4 |   |   
+     | 7 | 7 | seven | 2 |  4 |   |  0
+     | 7 | 7 | seven | 5 | -5 | 1 | -1
+     | 7 | 7 | seven | 5 | -5 | 2 |  2
+     | 7 | 7 | seven | 5 | -5 | 3 | -3
+     | 7 | 7 | seven | 5 | -5 | 2 |  4
+     | 7 | 7 | seven | 5 | -5 | 5 | -5
+     | 7 | 7 | seven | 5 | -5 | 5 | -5
+     | 7 | 7 | seven | 5 | -5 | 0 |   
+     | 7 | 7 | seven | 5 | -5 |   |   
+     | 7 | 7 | seven | 5 | -5 |   |  0
+     | 7 | 7 | seven | 5 | -5 | 1 | -1
+     | 7 | 7 | seven | 5 | -5 | 2 |  2
+     | 7 | 7 | seven | 5 | -5 | 3 | -3
+     | 7 | 7 | seven | 5 | -5 | 2 |  4
+     | 7 | 7 | seven | 5 | -5 | 5 | -5
+     | 7 | 7 | seven | 5 | -5 | 5 | -5
+     | 7 | 7 | seven | 5 | -5 | 0 |   
+     | 7 | 7 | seven | 5 | -5 |   |   
+     | 7 | 7 | seven | 5 | -5 |   |  0
+     | 7 | 7 | seven | 0 |    | 1 | -1
+     | 7 | 7 | seven | 0 |    | 2 |  2
+     | 7 | 7 | seven | 0 |    | 3 | -3
+     | 7 | 7 | seven | 0 |    | 2 |  4
+     | 7 | 7 | seven | 0 |    | 5 | -5
+     | 7 | 7 | seven | 0 |    | 5 | -5
+     | 7 | 7 | seven | 0 |    | 0 |   
+     | 7 | 7 | seven | 0 |    |   |   
+     | 7 | 7 | seven | 0 |    |   |  0
+     | 7 | 7 | seven |   |    | 1 | -1
+     | 7 | 7 | seven |   |    | 2 |  2
+     | 7 | 7 | seven |   |    | 3 | -3
+     | 7 | 7 | seven |   |    | 2 |  4
+     | 7 | 7 | seven |   |    | 5 | -5
+     | 7 | 7 | seven |   |    | 5 | -5
+     | 7 | 7 | seven |   |    | 0 |   
+     | 7 | 7 | seven |   |    |   |   
+     | 7 | 7 | seven |   |    |   |  0
+     | 7 | 7 | seven |   |  0 | 1 | -1
+     | 7 | 7 | seven |   |  0 | 2 |  2
+     | 7 | 7 | seven |   |  0 | 3 | -3
+     | 7 | 7 | seven |   |  0 | 2 |  4
+     | 7 | 7 | seven |   |  0 | 5 | -5
+     | 7 | 7 | seven |   |  0 | 5 | -5
+     | 7 | 7 | seven |   |  0 | 0 |   
+     | 7 | 7 | seven |   |  0 |   |   
+     | 7 | 7 | seven |   |  0 |   |  0
+     | 8 | 8 | eight | 1 | -1 | 1 | -1
+     | 8 | 8 | eight | 1 | -1 | 2 |  2
+     | 8 | 8 | eight | 1 | -1 | 3 | -3
+     | 8 | 8 | eight | 1 | -1 | 2 |  4
+     | 8 | 8 | eight | 1 | -1 | 5 | -5
+     | 8 | 8 | eight | 1 | -1 | 5 | -5
+     | 8 | 8 | eight | 1 | -1 | 0 |   
+     | 8 | 8 | eight | 1 | -1 |   |   
+     | 8 | 8 | eight | 1 | -1 |   |  0
+     | 8 | 8 | eight | 2 |  2 | 1 | -1
+     | 8 | 8 | eight | 2 |  2 | 2 |  2
+     | 8 | 8 | eight | 2 |  2 | 3 | -3
+     | 8 | 8 | eight | 2 |  2 | 2 |  4
+     | 8 | 8 | eight | 2 |  2 | 5 | -5
+     | 8 | 8 | eight | 2 |  2 | 5 | -5
+     | 8 | 8 | eight | 2 |  2 | 0 |   
+     | 8 | 8 | eight | 2 |  2 |   |   
+     | 8 | 8 | eight | 2 |  2 |   |  0
+     | 8 | 8 | eight | 3 | -3 | 1 | -1
+     | 8 | 8 | eight | 3 | -3 | 2 |  2
+     | 8 | 8 | eight | 3 | -3 | 3 | -3
+     | 8 | 8 | eight | 3 | -3 | 2 |  4
+     | 8 | 8 | eight | 3 | -3 | 5 | -5
+     | 8 | 8 | eight | 3 | -3 | 5 | -5
+     | 8 | 8 | eight | 3 | -3 | 0 |   
+     | 8 | 8 | eight | 3 | -3 |   |   
+     | 8 | 8 | eight | 3 | -3 |   |  0
+     | 8 | 8 | eight | 2 |  4 | 1 | -1
+     | 8 | 8 | eight | 2 |  4 | 2 |  2
+     | 8 | 8 | eight | 2 |  4 | 3 | -3
+     | 8 | 8 | eight | 2 |  4 | 2 |  4
+     | 8 | 8 | eight | 2 |  4 | 5 | -5
+     | 8 | 8 | eight | 2 |  4 | 5 | -5
+     | 8 | 8 | eight | 2 |  4 | 0 |   
+     | 8 | 8 | eight | 2 |  4 |   |   
+     | 8 | 8 | eight | 2 |  4 |   |  0
+     | 8 | 8 | eight | 5 | -5 | 1 | -1
+     | 8 | 8 | eight | 5 | -5 | 2 |  2
+     | 8 | 8 | eight | 5 | -5 | 3 | -3
+     | 8 | 8 | eight | 5 | -5 | 2 |  4
+     | 8 | 8 | eight | 5 | -5 | 5 | -5
+     | 8 | 8 | eight | 5 | -5 | 5 | -5
+     | 8 | 8 | eight | 5 | -5 | 0 |   
+     | 8 | 8 | eight | 5 | -5 |   |   
+     | 8 | 8 | eight | 5 | -5 |   |  0
+     | 8 | 8 | eight | 5 | -5 | 1 | -1
+     | 8 | 8 | eight | 5 | -5 | 2 |  2
+     | 8 | 8 | eight | 5 | -5 | 3 | -3
+     | 8 | 8 | eight | 5 | -5 | 2 |  4
+     | 8 | 8 | eight | 5 | -5 | 5 | -5
+     | 8 | 8 | eight | 5 | -5 | 5 | -5
+     | 8 | 8 | eight | 5 | -5 | 0 |   
+     | 8 | 8 | eight | 5 | -5 |   |   
+     | 8 | 8 | eight | 5 | -5 |   |  0
+     | 8 | 8 | eight | 0 |    | 1 | -1
+     | 8 | 8 | eight | 0 |    | 2 |  2
+     | 8 | 8 | eight | 0 |    | 3 | -3
+     | 8 | 8 | eight | 0 |    | 2 |  4
+     | 8 | 8 | eight | 0 |    | 5 | -5
+     | 8 | 8 | eight | 0 |    | 5 | -5
+     | 8 | 8 | eight | 0 |    | 0 |   
+     | 8 | 8 | eight | 0 |    |   |   
+     | 8 | 8 | eight | 0 |    |   |  0
+     | 8 | 8 | eight |   |    | 1 | -1
+     | 8 | 8 | eight |   |    | 2 |  2
+     | 8 | 8 | eight |   |    | 3 | -3
+     | 8 | 8 | eight |   |    | 2 |  4
+     | 8 | 8 | eight |   |    | 5 | -5
+     | 8 | 8 | eight |   |    | 5 | -5
+     | 8 | 8 | eight |   |    | 0 |   
+     | 8 | 8 | eight |   |    |   |   
+     | 8 | 8 | eight |   |    |   |  0
+     | 8 | 8 | eight |   |  0 | 1 | -1
+     | 8 | 8 | eight |   |  0 | 2 |  2
+     | 8 | 8 | eight |   |  0 | 3 | -3
+     | 8 | 8 | eight |   |  0 | 2 |  4
+     | 8 | 8 | eight |   |  0 | 5 | -5
+     | 8 | 8 | eight |   |  0 | 5 | -5
+     | 8 | 8 | eight |   |  0 | 0 |   
+     | 8 | 8 | eight |   |  0 |   |   
+     | 8 | 8 | eight |   |  0 |   |  0
+     | 0 |   | zero  | 1 | -1 | 1 | -1
+     | 0 |   | zero  | 1 | -1 | 2 |  2
+     | 0 |   | zero  | 1 | -1 | 3 | -3
+     | 0 |   | zero  | 1 | -1 | 2 |  4
+     | 0 |   | zero  | 1 | -1 | 5 | -5
+     | 0 |   | zero  | 1 | -1 | 5 | -5
+     | 0 |   | zero  | 1 | -1 | 0 |   
+     | 0 |   | zero  | 1 | -1 |   |   
+     | 0 |   | zero  | 1 | -1 |   |  0
+     | 0 |   | zero  | 2 |  2 | 1 | -1
+     | 0 |   | zero  | 2 |  2 | 2 |  2
+     | 0 |   | zero  | 2 |  2 | 3 | -3
+     | 0 |   | zero  | 2 |  2 | 2 |  4
+     | 0 |   | zero  | 2 |  2 | 5 | -5
+     | 0 |   | zero  | 2 |  2 | 5 | -5
+     | 0 |   | zero  | 2 |  2 | 0 |   
+     | 0 |   | zero  | 2 |  2 |   |   
+     | 0 |   | zero  | 2 |  2 |   |  0
+     | 0 |   | zero  | 3 | -3 | 1 | -1
+     | 0 |   | zero  | 3 | -3 | 2 |  2
+     | 0 |   | zero  | 3 | -3 | 3 | -3
+     | 0 |   | zero  | 3 | -3 | 2 |  4
+     | 0 |   | zero  | 3 | -3 | 5 | -5
+     | 0 |   | zero  | 3 | -3 | 5 | -5
+     | 0 |   | zero  | 3 | -3 | 0 |   
+     | 0 |   | zero  | 3 | -3 |   |   
+     | 0 |   | zero  | 3 | -3 |   |  0
+     | 0 |   | zero  | 2 |  4 | 1 | -1
+     | 0 |   | zero  | 2 |  4 | 2 |  2
+     | 0 |   | zero  | 2 |  4 | 3 | -3
+     | 0 |   | zero  | 2 |  4 | 2 |  4
+     | 0 |   | zero  | 2 |  4 | 5 | -5
+     | 0 |   | zero  | 2 |  4 | 5 | -5
+     | 0 |   | zero  | 2 |  4 | 0 |   
+     | 0 |   | zero  | 2 |  4 |   |   
+     | 0 |   | zero  | 2 |  4 |   |  0
+     | 0 |   | zero  | 5 | -5 | 1 | -1
+     | 0 |   | zero  | 5 | -5 | 2 |  2
+     | 0 |   | zero  | 5 | -5 | 3 | -3
+     | 0 |   | zero  | 5 | -5 | 2 |  4
+     | 0 |   | zero  | 5 | -5 | 5 | -5
+     | 0 |   | zero  | 5 | -5 | 5 | -5
+     | 0 |   | zero  | 5 | -5 | 0 |   
+     | 0 |   | zero  | 5 | -5 |   |   
+     | 0 |   | zero  | 5 | -5 |   |  0
+     | 0 |   | zero  | 5 | -5 | 1 | -1
+     | 0 |   | zero  | 5 | -5 | 2 |  2
+     | 0 |   | zero  | 5 | -5 | 3 | -3
+     | 0 |   | zero  | 5 | -5 | 2 |  4
+     | 0 |   | zero  | 5 | -5 | 5 | -5
+     | 0 |   | zero  | 5 | -5 | 5 | -5
+     | 0 |   | zero  | 5 | -5 | 0 |   
+     | 0 |   | zero  | 5 | -5 |   |   
+     | 0 |   | zero  | 5 | -5 |   |  0
+     | 0 |   | zero  | 0 |    | 1 | -1
+     | 0 |   | zero  | 0 |    | 2 |  2
+     | 0 |   | zero  | 0 |    | 3 | -3
+     | 0 |   | zero  | 0 |    | 2 |  4
+     | 0 |   | zero  | 0 |    | 5 | -5
+     | 0 |   | zero  | 0 |    | 5 | -5
+     | 0 |   | zero  | 0 |    | 0 |   
+     | 0 |   | zero  | 0 |    |   |   
+     | 0 |   | zero  | 0 |    |   |  0
+     | 0 |   | zero  |   |    | 1 | -1
+     | 0 |   | zero  |   |    | 2 |  2
+     | 0 |   | zero  |   |    | 3 | -3
+     | 0 |   | zero  |   |    | 2 |  4
+     | 0 |   | zero  |   |    | 5 | -5
+     | 0 |   | zero  |   |    | 5 | -5
+     | 0 |   | zero  |   |    | 0 |   
+     | 0 |   | zero  |   |    |   |   
+     | 0 |   | zero  |   |    |   |  0
+     | 0 |   | zero  |   |  0 | 1 | -1
+     | 0 |   | zero  |   |  0 | 2 |  2
+     | 0 |   | zero  |   |  0 | 3 | -3
+     | 0 |   | zero  |   |  0 | 2 |  4
+     | 0 |   | zero  |   |  0 | 5 | -5
+     | 0 |   | zero  |   |  0 | 5 | -5
+     | 0 |   | zero  |   |  0 | 0 |   
+     | 0 |   | zero  |   |  0 |   |   
+     | 0 |   | zero  |   |  0 |   |  0
+     |   |   | null  | 1 | -1 | 1 | -1
+     |   |   | null  | 1 | -1 | 2 |  2
+     |   |   | null  | 1 | -1 | 3 | -3
+     |   |   | null  | 1 | -1 | 2 |  4
+     |   |   | null  | 1 | -1 | 5 | -5
+     |   |   | null  | 1 | -1 | 5 | -5
+     |   |   | null  | 1 | -1 | 0 |   
+     |   |   | null  | 1 | -1 |   |   
+     |   |   | null  | 1 | -1 |   |  0
+     |   |   | null  | 2 |  2 | 1 | -1
+     |   |   | null  | 2 |  2 | 2 |  2
+     |   |   | null  | 2 |  2 | 3 | -3
+     |   |   | null  | 2 |  2 | 2 |  4
+     |   |   | null  | 2 |  2 | 5 | -5
+     |   |   | null  | 2 |  2 | 5 | -5
+     |   |   | null  | 2 |  2 | 0 |   
+     |   |   | null  | 2 |  2 |   |   
+     |   |   | null  | 2 |  2 |   |  0
+     |   |   | null  | 3 | -3 | 1 | -1
+     |   |   | null  | 3 | -3 | 2 |  2
+     |   |   | null  | 3 | -3 | 3 | -3
+     |   |   | null  | 3 | -3 | 2 |  4
+     |   |   | null  | 3 | -3 | 5 | -5
+     |   |   | null  | 3 | -3 | 5 | -5
+     |   |   | null  | 3 | -3 | 0 |   
+     |   |   | null  | 3 | -3 |   |   
+     |   |   | null  | 3 | -3 |   |  0
+     |   |   | null  | 2 |  4 | 1 | -1
+     |   |   | null  | 2 |  4 | 2 |  2
+     |   |   | null  | 2 |  4 | 3 | -3
+     |   |   | null  | 2 |  4 | 2 |  4
+     |   |   | null  | 2 |  4 | 5 | -5
+     |   |   | null  | 2 |  4 | 5 | -5
+     |   |   | null  | 2 |  4 | 0 |   
+     |   |   | null  | 2 |  4 |   |   
+     |   |   | null  | 2 |  4 |   |  0
+     |   |   | null  | 5 | -5 | 1 | -1
+     |   |   | null  | 5 | -5 | 2 |  2
+     |   |   | null  | 5 | -5 | 3 | -3
+     |   |   | null  | 5 | -5 | 2 |  4
+     |   |   | null  | 5 | -5 | 5 | -5
+     |   |   | null  | 5 | -5 | 5 | -5
+     |   |   | null  | 5 | -5 | 0 |   
+     |   |   | null  | 5 | -5 |   |   
+     |   |   | null  | 5 | -5 |   |  0
+     |   |   | null  | 5 | -5 | 1 | -1
+     |   |   | null  | 5 | -5 | 2 |  2
+     |   |   | null  | 5 | -5 | 3 | -3
+     |   |   | null  | 5 | -5 | 2 |  4
+     |   |   | null  | 5 | -5 | 5 | -5
+     |   |   | null  | 5 | -5 | 5 | -5
+     |   |   | null  | 5 | -5 | 0 |   
+     |   |   | null  | 5 | -5 |   |   
+     |   |   | null  | 5 | -5 |   |  0
+     |   |   | null  | 0 |    | 1 | -1
+     |   |   | null  | 0 |    | 2 |  2
+     |   |   | null  | 0 |    | 3 | -3
+     |   |   | null  | 0 |    | 2 |  4
+     |   |   | null  | 0 |    | 5 | -5
+     |   |   | null  | 0 |    | 5 | -5
+     |   |   | null  | 0 |    | 0 |   
+     |   |   | null  | 0 |    |   |   
+     |   |   | null  | 0 |    |   |  0
+     |   |   | null  |   |    | 1 | -1
+     |   |   | null  |   |    | 2 |  2
+     |   |   | null  |   |    | 3 | -3
+     |   |   | null  |   |    | 2 |  4
+     |   |   | null  |   |    | 5 | -5
+     |   |   | null  |   |    | 5 | -5
+     |   |   | null  |   |    | 0 |   
+     |   |   | null  |   |    |   |   
+     |   |   | null  |   |    |   |  0
+     |   |   | null  |   |  0 | 1 | -1
+     |   |   | null  |   |  0 | 2 |  2
+     |   |   | null  |   |  0 | 3 | -3
+     |   |   | null  |   |  0 | 2 |  4
+     |   |   | null  |   |  0 | 5 | -5
+     |   |   | null  |   |  0 | 5 | -5
+     |   |   | null  |   |  0 | 0 |   
+     |   |   | null  |   |  0 |   |   
+     |   |   | null  |   |  0 |   |  0
+     |   | 0 | zero  | 1 | -1 | 1 | -1
+     |   | 0 | zero  | 1 | -1 | 2 |  2
+     |   | 0 | zero  | 1 | -1 | 3 | -3
+     |   | 0 | zero  | 1 | -1 | 2 |  4
+     |   | 0 | zero  | 1 | -1 | 5 | -5
+     |   | 0 | zero  | 1 | -1 | 5 | -5
+     |   | 0 | zero  | 1 | -1 | 0 |   
+     |   | 0 | zero  | 1 | -1 |   |   
+     |   | 0 | zero  | 1 | -1 |   |  0
+     |   | 0 | zero  | 2 |  2 | 1 | -1
+     |   | 0 | zero  | 2 |  2 | 2 |  2
+     |   | 0 | zero  | 2 |  2 | 3 | -3
+     |   | 0 | zero  | 2 |  2 | 2 |  4
+     |   | 0 | zero  | 2 |  2 | 5 | -5
+     |   | 0 | zero  | 2 |  2 | 5 | -5
+     |   | 0 | zero  | 2 |  2 | 0 |   
+     |   | 0 | zero  | 2 |  2 |   |   
+     |   | 0 | zero  | 2 |  2 |   |  0
+     |   | 0 | zero  | 3 | -3 | 1 | -1
+     |   | 0 | zero  | 3 | -3 | 2 |  2
+     |   | 0 | zero  | 3 | -3 | 3 | -3
+     |   | 0 | zero  | 3 | -3 | 2 |  4
+     |   | 0 | zero  | 3 | -3 | 5 | -5
+     |   | 0 | zero  | 3 | -3 | 5 | -5
+     |   | 0 | zero  | 3 | -3 | 0 |   
+     |   | 0 | zero  | 3 | -3 |   |   
+     |   | 0 | zero  | 3 | -3 |   |  0
+     |   | 0 | zero  | 2 |  4 | 1 | -1
+     |   | 0 | zero  | 2 |  4 | 2 |  2
+     |   | 0 | zero  | 2 |  4 | 3 | -3
+     |   | 0 | zero  | 2 |  4 | 2 |  4
+     |   | 0 | zero  | 2 |  4 | 5 | -5
+     |   | 0 | zero  | 2 |  4 | 5 | -5
+     |   | 0 | zero  | 2 |  4 | 0 |   
+     |   | 0 | zero  | 2 |  4 |   |   
+     |   | 0 | zero  | 2 |  4 |   |  0
+     |   | 0 | zero  | 5 | -5 | 1 | -1
+     |   | 0 | zero  | 5 | -5 | 2 |  2
+     |   | 0 | zero  | 5 | -5 | 3 | -3
+     |   | 0 | zero  | 5 | -5 | 2 |  4
+     |   | 0 | zero  | 5 | -5 | 5 | -5
+     |   | 0 | zero  | 5 | -5 | 5 | -5
+     |   | 0 | zero  | 5 | -5 | 0 |   
+     |   | 0 | zero  | 5 | -5 |   |   
+     |   | 0 | zero  | 5 | -5 |   |  0
+     |   | 0 | zero  | 5 | -5 | 1 | -1
+     |   | 0 | zero  | 5 | -5 | 2 |  2
+     |   | 0 | zero  | 5 | -5 | 3 | -3
+     |   | 0 | zero  | 5 | -5 | 2 |  4
+     |   | 0 | zero  | 5 | -5 | 5 | -5
+     |   | 0 | zero  | 5 | -5 | 5 | -5
+     |   | 0 | zero  | 5 | -5 | 0 |   
+     |   | 0 | zero  | 5 | -5 |   |   
+     |   | 0 | zero  | 5 | -5 |   |  0
+     |   | 0 | zero  | 0 |    | 1 | -1
+     |   | 0 | zero  | 0 |    | 2 |  2
+     |   | 0 | zero  | 0 |    | 3 | -3
+     |   | 0 | zero  | 0 |    | 2 |  4
+     |   | 0 | zero  | 0 |    | 5 | -5
+     |   | 0 | zero  | 0 |    | 5 | -5
+     |   | 0 | zero  | 0 |    | 0 |   
+     |   | 0 | zero  | 0 |    |   |   
+     |   | 0 | zero  | 0 |    |   |  0
+     |   | 0 | zero  |   |    | 1 | -1
+     |   | 0 | zero  |   |    | 2 |  2
+     |   | 0 | zero  |   |    | 3 | -3
+     |   | 0 | zero  |   |    | 2 |  4
+     |   | 0 | zero  |   |    | 5 | -5
+     |   | 0 | zero  |   |    | 5 | -5
+     |   | 0 | zero  |   |    | 0 |   
+     |   | 0 | zero  |   |    |   |   
+     |   | 0 | zero  |   |    |   |  0
+     |   | 0 | zero  |   |  0 | 1 | -1
+     |   | 0 | zero  |   |  0 | 2 |  2
+     |   | 0 | zero  |   |  0 | 3 | -3
+     |   | 0 | zero  |   |  0 | 2 |  4
+     |   | 0 | zero  |   |  0 | 5 | -5
+     |   | 0 | zero  |   |  0 | 5 | -5
+     |   | 0 | zero  |   |  0 | 0 |   
+     |   | 0 | zero  |   |  0 |   |   
+     |   | 0 | zero  |   |  0 |   |  0
+(891 rows)
 
 --
 --
@@ -348,39 +1567,51 @@ SELECT '' AS "xxx", *
   FROM J1_TBL INNER JOIN J2_TBL USING (i);
  xxx | i | j |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-(4 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+(7 rows)
 
 -- Same as above, slightly different syntax
 SELECT '' AS "xxx", *
   FROM J1_TBL JOIN J2_TBL USING (i);
  xxx | i | j |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-(4 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+(7 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, d) USING (a);
  xxx | a | b |   c   | d  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-(4 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+(7 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, b) USING (b);
- xxx | b | a |  c  | a 
------+---+---+-----+---
-     | 2 | 2 | two | 2
-(1 row)
+ xxx | b | a |   c   | a 
+-----+---+---+-------+---
+     | 0 | 5 | five  |  
+     | 0 |   | zero  |  
+     | 2 | 3 | three | 2
+     | 4 | 1 | one   | 2
+(4 rows)
 
 --
 -- NATURAL JOIN
@@ -390,29 +1621,36 @@ SELECT '' AS "xxx", *
   FROM J1_TBL NATURAL JOIN J2_TBL;
  xxx | i | j |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-(4 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+(7 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (a, d);
  xxx | a | b |   c   | d  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-(4 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+(7 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (d, a);
  xxx | a | b |  c   | d 
 -----+---+---+------+---
-     | 2 | 2 | two  | 2
-     | 4 | 0 | four | 2
-(2 rows)
+     | 0 |   | zero |  
+     | 2 | 3 | two  | 2
+     | 4 | 1 | four | 2
+(3 rows)
 
 -- mismatch number of columns
 -- currently, Postgres will fill in with underlying names
@@ -420,11 +1658,14 @@ SELECT '' AS "xxx", *
   FROM J1_TBL t1 (a, b) NATURAL JOIN J2_TBL t2 (a);
  xxx | a | b |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-(4 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+(7 rows)
 
 --
 -- Inner joins (equi-joins)
@@ -433,19 +1674,23 @@ SELECT '' AS "xxx", *
   FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = J2_TBL.i);
  xxx | i | j |   t   | i | k  
 -----+---+---+-------+---+----
-     | 1 | 3 | one   | 1 | -1
-     | 2 | 2 | two   | 2 |  2
-     | 2 | 2 | two   | 2 |  4
-     | 3 | 1 | three | 3 | -3
-(4 rows)
+     | 0 |   | zero  | 0 |   
+     | 1 | 4 | one   | 1 | -1
+     | 2 | 3 | two   | 2 |  2
+     | 2 | 3 | two   | 2 |  4
+     | 3 | 2 | three | 3 | -3
+     | 5 | 0 | five  | 5 | -5
+     | 5 | 0 | five  | 5 | -5
+(7 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = J2_TBL.k);
  xxx | i | j |  t   | i | k 
 -----+---+---+------+---+---
-     | 2 | 2 | two  | 2 | 2
-     | 4 | 0 | four | 2 | 4
-(2 rows)
+     | 0 |   | zero |   | 0
+     | 2 | 3 | two  | 2 | 2
+     | 4 | 1 | four | 2 | 4
+(3 rows)
 
 --
 -- Non-equi-joins
@@ -454,51 +1699,143 @@ SELECT '' AS "xxx", *
   FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i <= J2_TBL.k);
  xxx | i | j |   t   | i | k 
 -----+---+---+-------+---+---
-     | 1 | 3 | one   | 2 | 2
-     | 1 | 3 | one   | 2 | 4
-     | 2 | 2 | two   | 2 | 2
-     | 2 | 2 | two   | 2 | 4
-     | 3 | 1 | three | 2 | 4
-     | 4 | 0 | four  | 2 | 4
-(6 rows)
+     | 1 | 4 | one   | 2 | 2
+     | 1 | 4 | one   | 2 | 4
+     | 2 | 3 | two   | 2 | 2
+     | 2 | 3 | two   | 2 | 4
+     | 3 | 2 | three | 2 | 4
+     | 4 | 1 | four  | 2 | 4
+     | 0 |   | zero  | 2 | 2
+     | 0 |   | zero  | 2 | 4
+     | 0 |   | zero  |   | 0
+(9 rows)
 
 --
 -- Outer joins
+-- Note that OUTER is a noise word
 --
 SELECT '' AS "xxx", *
   FROM J1_TBL LEFT OUTER JOIN J2_TBL USING (i);
  xxx | i | j |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-     | 4 | 0 | four  |   
-(5 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 4 | 1 | four  |   
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+     | 6 | 6 | six   |   
+     | 7 | 7 | seven |   
+     | 8 | 8 | eight |   
+     |   |   | null  |   
+     |   | 0 | zero  |   
+(13 rows)
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL LEFT JOIN J2_TBL USING (i);
+ xxx | i | j |   t   | k  
+-----+---+---+-------+----
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 4 | 1 | four  |   
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+     | 6 | 6 | six   |   
+     | 7 | 7 | seven |   
+     | 8 | 8 | eight |   
+     |   |   | null  |   
+     |   | 0 | zero  |   
+(13 rows)
 
 SELECT '' AS "xxx", *
   FROM J1_TBL RIGHT OUTER JOIN J2_TBL USING (i);
  xxx | i | j |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-     | 5 |   |       | -5
-(5 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+     |   |   |       |   
+     |   |   |       |  0
+(9 rows)
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL RIGHT JOIN J2_TBL USING (i);
+ xxx | i | j |   t   | k  
+-----+---+---+-------+----
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+     |   |   |       |   
+     |   |   |       |  0
+(9 rows)
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL FULL OUTER JOIN J2_TBL USING (i);
+ xxx | i | j |   t   | k  
+-----+---+---+-------+----
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 4 | 1 | four  |   
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+     |   |   |       |   
+     |   |   |       |  0
+     | 6 | 6 | six   |   
+     | 7 | 7 | seven |   
+     | 8 | 8 | eight |   
+     |   |   | null  |   
+     |   | 0 | zero  |   
+(15 rows)
 
--- Note that OUTER is a noise word
 SELECT '' AS "xxx", *
   FROM J1_TBL FULL JOIN J2_TBL USING (i);
  xxx | i | j |   t   | k  
 -----+---+---+-------+----
-     | 1 | 3 | one   | -1
-     | 2 | 2 | two   |  2
-     | 2 | 2 | two   |  4
-     | 3 | 1 | three | -3
-     | 4 | 0 | four  |   
-     | 5 |   |       | -5
-(6 rows)
+     | 0 |   | zero  |   
+     | 1 | 4 | one   | -1
+     | 2 | 3 | two   |  2
+     | 2 | 3 | two   |  4
+     | 3 | 2 | three | -3
+     | 4 | 1 | four  |   
+     | 5 | 0 | five  | -5
+     | 5 | 0 | five  | -5
+     |   |   |       |   
+     |   |   |       |  0
+     | 6 | 6 | six   |   
+     | 7 | 7 | seven |   
+     | 8 | 8 | eight |   
+     |   |   | null  |   
+     |   | 0 | zero  |   
+(15 rows)
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (k = 1);
+ xxx | i | j | t | k 
+-----+---+---+---+---
+(0 rows)
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (i = 1);
+ xxx | i | j |  t  | k  
+-----+---+---+-----+----
+     | 1 | 4 | one | -1
+(1 row)
 
 --
 -- More complicated constructs
diff --git a/src/test/regress/sql/interval.sql b/src/test/regress/sql/interval.sql
index fc75302efdc..f4ca0a7371b 100644
--- a/src/test/regress/sql/interval.sql
+++ b/src/test/regress/sql/interval.sql
@@ -2,6 +2,17 @@
 -- INTERVAL
 --
 
+SET DATESTYLE = DEFAULT;
+
+-- check acceptance of "time zone style"
+SELECT INTERVAL '01:00';
+SELECT INTERVAL '+02:00';
+SELECT INTERVAL '-08:00';
+SELECT INTERVAL '-05';
+SELECT INTERVAL '-1 +02:03';
+SELECT INTERVAL '-1 days +02:03';
+SELECT INTERVAL '10 years -11 month -12 days +13:14';
+
 CREATE TABLE INTERVAL_TBL (f1 interval);
 
 INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 1 minute');
@@ -46,3 +57,6 @@ SELECT '' AS fortyfive, r1.*, r2.*
    WHERE r1.f1 > r2.f1
    ORDER BY r1.f1, r2.f1;
 
+SET DATESTYLE = 'postgres';
+
+SELECT '' AS ten, INTERVAL_TBL.*;
diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql
index 88972de5ea9..3126b58ea13 100644
--- a/src/test/regress/sql/join.sql
+++ b/src/test/regress/sql/join.sql
@@ -14,27 +14,28 @@ CREATE TABLE J2_TBL (
   k integer
 );
 
-CREATE TABLE JOIN3_TBL (
-  i integer,
-  j integer,
-  y integer
-);
 
-CREATE TABLE JOIN4_TBL (
-  k integer,
-  z integer
-);
-
-INSERT INTO J1_TBL VALUES (1, 3, 'one');
-INSERT INTO J1_TBL VALUES (2, 2, 'two');
-INSERT INTO J1_TBL VALUES (3, 1, 'three');
-INSERT INTO J1_TBL VALUES (4, 0, 'four');
+INSERT INTO J1_TBL VALUES (1, 4, 'one');
+INSERT INTO J1_TBL VALUES (2, 3, 'two');
+INSERT INTO J1_TBL VALUES (3, 2, 'three');
+INSERT INTO J1_TBL VALUES (4, 1, 'four');
+INSERT INTO J1_TBL VALUES (5, 0, 'five');
+INSERT INTO J1_TBL VALUES (6, 6, 'six');
+INSERT INTO J1_TBL VALUES (7, 7, 'seven');
+INSERT INTO J1_TBL VALUES (8, 8, 'eight');
+INSERT INTO J1_TBL VALUES (0, NULL, 'zero');
+INSERT INTO J1_TBL VALUES (NULL, NULL, 'null');
+INSERT INTO J1_TBL VALUES (NULL, 0, 'zero');
 
 INSERT INTO J2_TBL VALUES (1, -1);
 INSERT INTO J2_TBL VALUES (2, 2);
 INSERT INTO J2_TBL VALUES (3, -3);
 INSERT INTO J2_TBL VALUES (2, 4);
 INSERT INTO J2_TBL VALUES (5, -5);
+INSERT INTO J2_TBL VALUES (5, -5);
+INSERT INTO J2_TBL VALUES (0, NULL);
+INSERT INTO J2_TBL VALUES (NULL, NULL);
+INSERT INTO J2_TBL VALUES (NULL, 0);
 
 --
 -- CORRELATION NAMES
@@ -159,18 +160,33 @@ SELECT '' AS "xxx", *
 
 --
 -- Outer joins
+-- Note that OUTER is a noise word
 --
 
 SELECT '' AS "xxx", *
   FROM J1_TBL LEFT OUTER JOIN J2_TBL USING (i);
 
+SELECT '' AS "xxx", *
+  FROM J1_TBL LEFT JOIN J2_TBL USING (i);
+
 SELECT '' AS "xxx", *
   FROM J1_TBL RIGHT OUTER JOIN J2_TBL USING (i);
 
--- Note that OUTER is a noise word
+SELECT '' AS "xxx", *
+  FROM J1_TBL RIGHT JOIN J2_TBL USING (i);
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL FULL OUTER JOIN J2_TBL USING (i);
+
 SELECT '' AS "xxx", *
   FROM J1_TBL FULL JOIN J2_TBL USING (i);
 
+SELECT '' AS "xxx", *
+  FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (k = 1);
+
+SELECT '' AS "xxx", *
+  FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (i = 1);
+
 
 --
 -- More complicated constructs