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

Gopal V commented on HIVE-11398:
--------------------------------

Patch LGTM - +1

The last test-failure seems to be an expected OR rotation due to the traversal 
order.

groupby_multi_single_reducer3.q.out

{code}
> <<<<<<< HEAD
>                     predicate: ((((key + key) = 400) or (((key - 100) = 500) 
> and value is not null)) or ((((key + key) = 200) or ((key - 100) = 100)) or 
> ((key = 300) and value is not null))) (type: boolean)
> =======
>                     predicate: ((((key + key) = 200) or ((key - 100) = 100) 
> or ((key = 300) and value is not null)) or (((key + key) = 400) or (((key - 
> 100) = 500) and value is not null))) (type: boolean)
{code}

> Parse wide OR and wide AND trees to flat OR/AND trees
> -----------------------------------------------------
>
>                 Key: HIVE-11398
>                 URL: https://issues.apache.org/jira/browse/HIVE-11398
>             Project: Hive
>          Issue Type: New Feature
>          Components: Logical Optimizer, UDF
>    Affects Versions: 1.3.0, 2.0.0
>            Reporter: Gopal V
>            Assignee: Jesus Camacho Rodriguez
>         Attachments: HIVE-11398.2.patch, HIVE-11398.3.patch, 
> HIVE-11398.4.patch, HIVE-11398.5.patch, HIVE-11398.patch
>
>
> Deep trees of AND/OR are hard to traverse particularly when they are merely 
> the same structure in nested form as a version of the operator that takes an 
> arbitrary number of args.
> One potential way to convert the DFS searches into a simpler BFS search is to 
> introduce a new Operator pair named ALL and ANY.
> ALL(A, B, C, D, E) represents AND(AND(AND(AND(E, D), C), B), A)
> ANY(A, B, C, D, E) represents OR(OR(OR(OR(E, D), C),B),A)
> The SemanticAnalyser would be responsible for generating these operators and 
> this would mean that the depth and complexity of traversals for the simplest 
> case of wide AND/OR trees would be trivial.



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

Reply via email to