From 07272c6f8baca5d2950b228f3c962af2d635ad13 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" 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 7e9475d794..4a74bec84a 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 3a5b24e41f..a8ea6c24d7 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 3c156ee46c..1849297f75 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 fc75302efd..f4ca0a7371 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 88972de5ea..3126b58ea1 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