You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Harish Butani (JIRA)" <ji...@apache.org> on 2013/12/13 23:26:08 UTC
[jira] [Assigned] (HIVE-6030) Introduce Explain SubQuery Rewrite
command
[ https://issues.apache.org/jira/browse/HIVE-6030?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Harish Butani reassigned HIVE-6030:
-----------------------------------
Assignee: Harish Butani
> Introduce Explain SubQuery Rewrite command
> ------------------------------------------
>
> Key: HIVE-6030
> URL: https://issues.apache.org/jira/browse/HIVE-6030
> Project: Hive
> Issue Type: Improvement
> Reporter: Harish Butani
> Assignee: Harish Butani
>
> There are several transformations happening for SubQuery predicates(HIVE-784). It is hard to tell from the explain plan how the Query is executed.
> So the goal is to introduce an explain subquery rewrite command that will show the details on the rewrite. Fo e.g.:
> {noformat}
> -- non corr e.g.
> explain subquery rewrite select * from src where src.key in (select key from src s1 where s1.key > '9');
> -- outputs:
> select * from src left semi join (select key from src s1 where s1.key > '9') sq_1 on src.key = sq_1.key where 1 = 1
> -- corr e.g.
> explain subquery rewrite select * from src where src.key in (select key from src s1 where s1.key > '9');
> -- outputs
> select key
> from src b left semi join (select min(value), a.key as sq_corr_0
> from (select key, value, rank() over(partition by key order by value) as r from src) a
> where r <= 2
> group by a.key) sq_1 on b.key = sq_1.sq_corr_0 and b.value = sq_1._c0 where 1 = 1 and key < '9'
> {noformat}
> There are multiple rewrite cases:
> - corr vs non-cor
> - when 'not in' operator is involved
> - a where clause predicate vs. a having clause predicate
> Not sure if it will be possible to output a valid Hive SQL query for all cases; but at least provide the user enough information to assemble a valid Hive query.
> Breaking this down into multiple subtasks.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)