hadoop-hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Sichi (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HIVE-1395) Table aliases are ambiguous
Date Mon, 28 Jun 2010 23:12:51 GMT

    [ https://issues.apache.org/jira/browse/HIVE-1395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12883344#action_12883344
] 

John Sichi commented on HIVE-1395:
----------------------------------

OK, I did some testing and verified that

1) this is due to the combination of reused alias and predicate push-down (either turning
off ppd or using a different outermost alias fixes the plan)
2) this is a different bug from HIVE-1342 (I tried applying Ted's patch and it did not fix
this one)

I'm going to let someone else who really wants it create a separate issue for preventing alias
reuse in strict mode; as Ted says, we should fix these two bugs independent of that.


> Table aliases are ambiguous
> ---------------------------
>
>                 Key: HIVE-1395
>                 URL: https://issues.apache.org/jira/browse/HIVE-1395
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Query Processor
>            Reporter: Adam Kramer
>
> Consider this query:
> SELECT a.num FROM (
>   SELECT a.num AS num, b.num AS num2
>   FROM foo a LEFT OUTER JOIN bar b ON a.num=b.num
> ) a
> WHERE a.num2 IS NULL;
> ...in this case, the table alias 'a' is ambiguous. It could be the outer table (i.e.,
the subquery result), or it could be the inner table (foo).
> In the above case, Hive silently parses the outer reference to a as the inner reference.
The result, then, is akin to:
> SELECT foo.num FROM foo WHERE bar.num IS NULL. This is bad.
> The bigger problem, however, is that Hive even lets people use the same table alias at
multiple points in the query. We should simply throw an exception during the parse stage if
there is any ambiguity in which table is which, just like we do if the column names are ambiguous.
> Or, if for some reason we need people to be able to use 'a' to refer to multiple tables
or subqueries, it would be excellent if the exact parsing structure were made clear and added
to the wiki. In that case, I will file a separate bug JIRA to complain about how it should
be different. :)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message