Re: SQL feature requests - Mailing list pgsql-hackers

From Tom Lane
Subject Re: SQL feature requests
Date
Msg-id 15975.1187920096@sss.pgh.pa.us
Whole thread Raw
In response to Re: SQL feature requests  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: SQL feature requests  (Gregory Stark <stark@enterprisedb.com>)
List pgsql-hackers
Peter Eisentraut <peter_e@gmx.net> writes:
> Florian G. Pflug wrote:
>> knowing *why* the standard committee disallows that syntax -
>> and why everybody except oracle chose to agree with it would be quite
>> interesting.

> ...
> If you believe that, then a table source without any name at all, such 
> as one produced by subqueries, should also be disallowed.

Good point.  However, what I would kind of expect the standards
committee to do is to specify that each such subquery has an
automatically generated name assigned to it.  Compare what SQL92 says
about assigning aliases for SELECT output columns:
           a) If the i-th <derived column> in the <select list> specifies             an <as clause> that contains a
<columnname> C, then the             <column name> of the i-th column of the result is C.
 
           b) If the i-th <derived column> in the <select list> does not             specify an <as clause> and the
<valueexpression> of that             <derived column> is a single <column reference>, then the             <column
name>of the i-th column of the result is C.
 
           c) Otherwise, the <column name> of the i-th column of the <query             specification> is
implementation-dependentand different             from the <column name> of any column, other than itself, of
 a table referenced by any <table reference> contained in the             SQL-statement.
 

Implementation-dependent is a term of art here: it means that each DBMS
can do whatever the heck it wants.  (But note that we fail to meet (c)
exactly, since we don't bother to generate names that are distinct ---
but in practice no one seems to care about that.)

If we could expect that any future relaxation of the spec would likewise
specify generating implementation-dependent unique table aliases for
subqueries, then we'd not be having this discussion.  What troubles me
most is why the spec hasn't had identical verbiage for table aliases as
it does for column aliases, since day one.  There's *something* going on
there that we don't know about.

(BTW, your argument would seem to also disallow alias-less JOIN tables,
but the spec has allowed those all along.)
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: SQL feature requests
Next
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Add configure option --with-system-tzdata to use operating system