Re: Table Alias - Mailing list pgsql-general

From Darrin Ladd
Subject Re: Table Alias
Date
Msg-id F243LCySCOCd4hgvpuH00002a8b@hotmail.com
Whole thread Raw
In response to Table Alias  ("Darrin Ladd" <darrin_ladd@hotmail.com>)
List pgsql-general
Thanks, that makes sense.

Although, I'd much rather have an error then the wrong data.  :(

Cheers,
Darrin


>From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
>To: Darrin Ladd <darrin_ladd@hotmail.com>
>CC: pgsql-general@postgreSQL.org
>Subject: Re: [GENERAL] Table Alias
>Date: Tue, 29 Aug 2000 17:48:57 -0700 (PDT)
>
>
>On Tue, 29 Aug 2000, Darrin Ladd wrote:
>
> > Through the help of some inexperienced embedded SQL coders I stubled
>across
> > a strang Postgres quirk.  I am wondering if this is normal or if I have
> > configured something incorrectly.  Here's the situation...
> >
> > The following two selects return very different values:
> >
> > select b.name from foo f, bar b
> > where f.foo_id = 1
> > and f.bar_id = b.bar_id;
> >
> > select bar.name from foo f, bar b
> > where f.foo_id = 1
> > and f.bar_id = b.bar_id;
> >
> > The first returns the rows in the name column of bar that have the same
> > bar_id as the foo record with foo_id = 1. (Correct)
> >
> > The second returns all rows in the name column of the bar table. (?)
> >
> > I am quite aware that if you declare an alias for a table that you
>should
> > use it, but I am very surprised that the select becomes unqualified if
>you
> > mistakenly use the full table name.  Is this normal behavior?
>
>Well, technically by SQL92 I believe the second query should be an error
>since the table reference "bar b" should not be exporting the name "bar"
>unless I'm misreading the spec...
>
>Postgres tries to be helpful by assuming you meant to put it in the from
>list and adds it internally, so the second query is effectively:
>  select bar.name from foo f, bar b, bar
>  where f.foo_id=1 and f.bar_id=b.bar_id.
>
>-----
>  <table reference> ::=
>     <table name> [ [ AS ] <correlation name>
>         [ <left paren> <derived column list> <right paren> ] ]
>  Syntax Rules
>  1) A <correlation name> immediately contained in a <table refer-
>     ence> TR is exposed by TR. A <table name> immediately contained
>     in a <table reference> TR is exposed by TR if and only if TR
>     does not specify a <correlation name>.
>

_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.

Share information about yourself, create your own public profile at
http://profiles.msn.com.


pgsql-general by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: Table Alias
Next
From: Bill Barnes
Date:
Subject: RE: 7.1 Release Date