[ 
https://issues.apache.org/jira/browse/HIVE-6189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bill Wailliam updated HIVE-6189:
--------------------------------
    Description: 
I've always wondered why union all has to be in subqueries in hive.

After looking at it, problems are:

- Hive Parser:
  - Union happens at the wrong place (insert ... select ... union all select 
...) is parsed as (insert select) union select.
  - There are many rewrite rules in the parser to force any query into the a 
from - insert -select form. No doubt for historical reasons.
- Plan generation/semantic analysis assumes top level "TOK_QUERY" and not top 
level "TOK_UNION".

The rewrite rules don't work when we move the "UNION ALL" into the select 
statements. However, it's not hard to do that in code.

  was:
I've always wondered why union all has to be in subqueries in hive.

After looking at it, problems are:

- Hive Parser:
  - Union happens at the wrong place (insert ... select ... union all select 
...) is parsed as (insert select) union select.
  - There are many rewrite rules in the parser to force any query into the a 
from - insert -select form. No doubt for historical reasons.
- Plan generation/semantic analysis assumes top level "TOK_QUERY" and not top 
level "TOK_UNION".

The rewrite rules don't work when we move the "UNION ALL" recursion into the 
select statements. However, it's not hard to do that in code.


> Support top level union all statements
> --------------------------------------
>
>                 Key: HIVE-6189
>                 URL: https://issues.apache.org/jira/browse/HIVE-6189
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Gunther Hagleitner
>            Assignee: Gunther Hagleitner
>             Fix For: 0.13.0
>
>         Attachments: HIVE-6189.1.patch, HIVE-6189.2.patch, HIVE-6189.3.patch
>
>
> I've always wondered why union all has to be in subqueries in hive.
> After looking at it, problems are:
> - Hive Parser:
>   - Union happens at the wrong place (insert ... select ... union all select 
> ...) is parsed as (insert select) union select.
>   - There are many rewrite rules in the parser to force any query into the a 
> from - insert -select form. No doubt for historical reasons.
> - Plan generation/semantic analysis assumes top level "TOK_QUERY" and not top 
> level "TOK_UNION".
> The rewrite rules don't work when we move the "UNION ALL" into the select 
> statements. However, it's not hard to do that in code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to