Re: [HACKERS] Problems with outer joins in 7.1beta5

From: "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu>
To: Barry Lind <barry(at)xythos(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [HACKERS] Problems with outer joins in 7.1beta5
Date: 2001-03-16 19:34:45
Message-ID: 20010316133445.A11713@rice.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

On Fri, Mar 16, 2001 at 10:17:33AM -0800, Barry Lind wrote:
>
> My feeling is that postgres has misinterpreted the SQL92 spec in this
> regards. But I am having problems finding an online copy of the SQL92
> spec so that I can verify.
>
> What I would expect the syntax to be is:
>
> table as alias (columna as aliasa, columnb as aliasb,...)
>
> This will allow the query to work regardless of what the table column
> order is. Generally the SQL spec has tried not to tie query behaviour
> to the table column order.
>

What you expect, and what's in the spec. can be very different. As
the following quote shows, the definition is in fact order dependent:
note that a <derived column list> is a simple comma delimited list of
column names.

Quote from SQL'92:

6.3 <table reference>

Function

Reference a table.

Format

<table reference> ::=
<table name> [ [ AS ] <correlation name>
[ <left paren> <derived column list> <right paren> ] ]
| <derived table> [ AS ] <correlation name>
[ <left paren> <derived column list> <right paren> ]
| <joined table>

<derived table> ::= <table subquery>

<derived column list> ::= <column name list>

<column name list> ::=
<column name> [ { <comma> <column name> }... ]

Syntax Rules

[...]

7) If a <derived column list> is specified in a <table reference>,
then the number of <column name>s in the <derived column list>
shall be the same as the degree of the table specified by the
<derived table> or the <table name> of that <table reference>,
and the name of the i-th column of that <derived table> or the
effective name of the i-th column of that <table name> is the
i-th <column name> in that <derived column list>.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2001-03-16 19:42:09 Re: create user, user exists
Previous Message jreniz 2001-03-16 18:55:27 Trigger Error!

Browse pgsql-hackers by date

  From Date Subject
Next Message Jan Wieck 2001-03-16 19:40:24 Re: Performance monitor signal handler
Previous Message Jan Wieck 2001-03-16 18:49:41 Re: Performance monitor signal handler