Re: NATURAL JOINs

From: "regme please" <regmeplease(at)gmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Richard Broersma" <richard(dot)broersma(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: NATURAL JOINs
Date: 2008-10-15 06:17:28
Message-ID: 446c7e870810142317s140eb28cybe0127ae82039511@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Well, it could make some sense to extend the semantics when you have
explicit "REFERENCES" to tables in the JOINs.Or at least warn or notice the
user that the "NATURAL (INNER) JOIN" has actuallt been converted into a
CROSS one.
It would not be standard but helpful for developers.

Thanks.

2008/10/13 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>

> "Richard Broersma" <richard(dot)broersma(at)gmail(dot)com> writes:
> > On Mon, Oct 13, 2008 at 9:52 AM, Reg Me Please <regmeplease(at)gmail(dot)com>
> wrote:
> >> Is there a way to know how a NATURAL JOIN is actually done?
>
> > Here is what the manual says about natural joins:
> >
> http://www.postgresql.org/docs/8.3/interactive/queries-table-expressions.html#QUERIES-FROM
>
> > Finally, NATURAL is a shorthand form of USING: it forms a USING list
> > consisting of exactly those column names that appear in both input
> > tables. As with USING, these columns appear only once in the output
> > table.
>
> The OP's case is actually giving a cartesian product, because the tables
> don't have any column names in common.
>
> You'd think this should be an error, but AFAICS the SQL spec requires it
> to behave that way.
>
> regards, tom lane
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Greg Smith 2008-10-15 06:20:13 Re: Drupal and PostgreSQL - performance issues?
Previous Message gorsa 2008-10-15 05:33:14 Re: how to get unique identifier for a client