I believe in the SQL standard, the original name cannot be accessed once
it’s aliased.

On Tue, Jun 11, 2019 at 7:54 PM John Zhuge <jzh...@apache.org> wrote:

> Yeah, it is a touch scenario.
>
> I actually have much simpler cases:
>
> 1) select /*+ broadcast(t1) */ * from db.t1 join db.t2 on t1.id = t2.id;
> 2) select /*+ broadcast(t1) */ * from db.t1 a1 join db.t2 a2 on a1.id =
> a2.id;
>
> 2) is the same as 1) but with aliases. Many users were surprised that 2)
> stopped working.
>
> Thanks,
> John
>
>
> On Tue, Jun 11, 2019 at 4:38 PM Maryann Xue <maryann...@apache.org> wrote:
>
>> Yes, and for a good reason: the hint relation has exactly the same scope
>> with other elements of queries/sub-queries.
>>
>> Suppose there's a query like:
>>
>> select /*+ broadcast(s) */ from (select a, b from s) t join (select a, b
>> from t) s on t1.a = t2.b
>>
>> If we allowed the hint resolving to "cross" the scopes, we'd end up with
>> a really confusing spec.
>>
>>
>> Thanks,
>> Maryann
>>
>> On Tue, Jun 11, 2019 at 5:26 PM John Zhuge <jzh...@apache.org> wrote:
>>
>>> Hi Reynold and Maryann,
>>>
>>> ResolveHints javadoc indicates the traversal does not go past subquery
>>> alias. Is there any specific reason?
>>>
>>> Thanks,
>>> John Zhuge
>>>
>>
>
> --
> John Zhuge
>

Reply via email to