From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | PostgreSQL-documentation <pgsql-docs(at)postgresql(dot)org> |
Subject: | Re: ANSI join types |
Date: | 2002-08-14 04:55:53 |
Message-ID: | 4807.1029300953@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Also, I can not find documentation on UNION JOINS in our docs.
There is none because we don't support it. While I took the trouble
to make the parser take it, there's no implementation. I'm not now
excited about making it happen ever, because I read this in SQL99:
Annex D
Deprecated features
It is intended that the following features will be removed at a
later date from a revised version of this part of ISO/IEC 9075:
1) The ability to specify UNION JOIN in a <joined table> has been
deprecated.
BTW, I think the description
> * Union: This is different than the UNION operator used to merge the
> output of multiple queries. This is the inverse of an Inner, only
> rows are returned when no matches are found
is pretty poor. As near as I can tell from the SQL92 spec, "x UNION
JOIN y" is supposed to produce the same result as
(select *,<y.nulls> from x) UNION ALL (select <x.nulls>,* from y)
where <y.nulls> denotes a list of NULLs matching the columnset of y,
and similarly for <x.nulls>. This behavior has nothing to do with
whether any value matches exist between x and y --- it makes no join
comparisons at all.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Rod Taylor | 2002-08-15 03:14:03 | Documentation DTD |
Previous Message | Bruce Momjian | 2002-08-14 03:12:18 | ANSI join types |