Re: Allow an alias to be attached directly to a JOIN ... USING - Mailing list pgsql-hackers

From Thomas Munro
Subject Re: Allow an alias to be attached directly to a JOIN ... USING
Date
Msg-id CA+hUKG+8FSn8d9j2rM2OLF0v0Vx0qPTT=STJrfV2xbpbTY4P4A@mail.gmail.com
Whole thread Raw
In response to Allow an alias to be attached directly to a JOIN ... USING  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
On Tue, Jun 18, 2019 at 2:41 AM Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:
> A small new feature in SQL:2016 allows attaching a table alias to a
> JOIN/USING construct:
>
>     <named columns join> ::=
>       USING <left paren> <join column list> <right paren>
>       [ AS <join correlation name> ]
>
> (The part in brackets is new.)
>
> This seems quite useful, and it seems the code would already support
> this if we allow the grammar to accept this syntax.

Neat.  That's a refreshingly short patch to get a sql_features.txt
line bumped to YES.

> Patch attached.

It does what it says on the tin.

I see that USING is the important thing here; for (a NATURAL JOIN b)
AS ab or (a JOIN b ON ...) AS ab you still need the parentheses or
(respectively) it means something different (alias for B only) or
doesn't parse.  That makes sense.

I noticed that the HINT when you accidentally use a base table name
instead of a table alias is more helpful than the HINT you get when
you use a base table name instead of a join alias.  That seems like a
potential improvement that is independent of this syntax change.

-- 
Thomas Munro
https://enterprisedb.com



pgsql-hackers by date:

Previous
From: Fabien COELHO
Date:
Subject: Re: [PATCH] Implement uuid_version()
Next
From: Fabien COELHO
Date:
Subject: Re: [PATCH] Implement uuid_version()