"Alvaro Herrera" <alvherre@commandprompt.com> writes:
> Gregory Stark escribió:
>
>> The upside is the convenience which after all is the same upside as most of
>> our spec grammar extensions. Many many programmers are accustomed to entering
>> ad-hoc queries of this form and forcing them to enter an alias for no purpose
>> is just silly pedanticism from their point of view. The portability of ad-hoc
>> queries is meaningless and if you don't refer to the alias in the query then
>> it's truly pointless.
>
> So there's the compromise: allow not specifying an alias only if it's
> not used in the rest of the query at all, so the subquery would be
> effectively anonymous.
If what's not used in the rest of the query? If you haven't specified the
alias what would you use? Surely even if we did generate an alias name nobody
would think the generated name was guaranteed to be stable and reference it?
I think the compromise is to instead of generating aliases at all just use an
alias like "*Anonymous Subquery*" and add a boolean flag indicating that that
range table is anonymous and not a valid target for references. I started
doing that a while back but got distracted (and discouraged since it seemed
not to have widespread support).
IMHO even generating non-anonymous aliases like "*Anonymous Subquery*1" would
be fine but I'm happy to have a flag hiding them too.
-- Gregory Stark EnterpriseDB http://www.enterprisedb.com