Re: Questionable behavior regarding aliasing - Mailing list pgsql-hackers

From Jim Nasby
Subject Re: Questionable behavior regarding aliasing
Date
Msg-id 56183812.20901@BlueTreble.com
Whole thread Raw
In response to Re: Questionable behavior regarding aliasing  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 10/9/15 4:16 PM, Tom Lane wrote:
> Jim Nasby <Jim.Nasby@BlueTreble.com> writes:
>> I fat-fingered a view create and ended up with this:
>> ...
>>         , schemaname, relname -- other
>>         now
>>         , d_now, ...
>> I was about to report this as a bug until Marko Tiikkaja pointed out on
>> IRC that now was being treated as an alias for relname.
>
>> I'm not sure if this is required by the spec, but can we at least emit a
>> WARNING if not reject this case outright?
>
> SQL:2011 gives the syntax of a SELECT list element as
>
>      <derived column> ::=
>        <value expression> [ <as clause> ]
>      <as clause> ::=
>        [ AS ] <column name>
>
> There is not a lot of room for argument there.  And we got a lot of
> complaints back when we didn't support omitting AS.

I'm OK with omitting AS; what tripped me up was the combination of 
omitting AS *and* the next token showing up on a new line. Is there some 
reasonable way to detect that in gram.y?

Like Marko I'd be fine with a GUC for just disabling this.

> If we're going to get into the business of emitting warnings for
> required-by-SQL-spec constructs, I'm not sure that this one is
> where I'd start.  Unqualified outer references seem to catch a
> lot more people.

I'm not sure what that looks like. I always use explicit join syntax, so 
maybe that's why I've never hit it.
-- 
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_ctl/pg_rewind tests vs. slow AIX buildfarm members
Next
From: Robert Haas
Date:
Subject: Re: More work on SortSupport for text - strcoll() and strxfrm() caching