[
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)