From: | "Amir Rohan" <amir(dot)rohan(at)mail(dot)com> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | "pgsql-docs(at)postgresql(dot)org" <pgsql-docs(at)postgresql(dot)org> |
Subject: | Re: Docs claim that "select myTable.*" wildcard won't let you assign column names |
Date: | 2015-09-22 01:04:53 |
Message-ID: | trinity-ff5523c7-87b0-4409-ab20-83a3b5b172f8-1442883892582@3capp-mailcom-lxa13 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
On Monday, September 21, 2015, Amir Rohan <amir(dot)rohan(at)mail(dot)com> wrote:
>> From http://www.postgresql.org/docs/9.4/static/sql-select.html[http://www.postgresql.org/docs/9.4/static/sql->> select.html] (and previous version too):
>>
>> ##SELECT List
>>
>> <...>
>> Instead of an expression, * can be written in the output list as a shorthand for all the columns of the
>> selected rows.
>> Also, you can write table_name.* as a shorthand for the columns coming from just that table. In these
>> cases it is not possible to specify new names with AS; the output column names will be the same as the
>> table columns' names.
>>
>> But, the docs elsewhere feature a query example show the use of a wildcard for columns
>> as well as allowing you to assign names to as many of the leading columns as you wish:
>>
>>
>> WITH T0 as ( SELECT 1,2,3 )
>> SELECT T0.* from T0 as T0(foo,bar) ;<...>
On Monday, September 21, 2015, David G. Johnston wrote:
> Neither of those examples is:
>
> SELECT * AS "how would one alias this?" FROM table
>
> So what's your point?
My point is that "In these cases it is not possible to specify new names with AS" is misleading because
it *is* possible and useful, but requires syntax which isn't clearly shown (if at all) where I'd expect it.
I think that could be improved.
> Obviously you can alias stuff before it makes its way into a select-list that refers to it using *
"obvious" to whom? probably not to someone who's level of SQL mastery has brought him/her to reading
the exciting "SELECT" documentation. I do see your point though, in the grammar the "AS" in my example
belongs not to `output_name ` but to `from_item`. So this syntax is hidden away behind the `column_alias`
production.
> In this case the FROM clause is what is being aliased. It is documented though I'd need to look to
> identify the specific location.
This belongs in the page describing SELECT, and though I've looked I haven't found it. If I'm wrong (
I did look again just now), please correct me.
Amir
From | Date | Subject | |
---|---|---|---|
Next Message | Joe Conway | 2015-09-22 01:32:16 | Re: Docs claim that "select myTable.*" wildcard won't let you assign column names |
Previous Message | David G. Johnston | 2015-09-21 23:39:38 | Re: Docs claim that "select myTable.*" wildcard won't let you assign column names |