You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Zihao Ye (JIRA)" <ji...@apache.org> on 2019/07/04 07:26:00 UTC

[jira] [Commented] (HIVE-21955) SearchArgumentImpl generates wrong ExpressionTree in some cases which might result in loss of data

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

Zihao Ye commented on HIVE-21955:
---------------------------------

An example:

select * from t where ((rfr_page = 'search' and uid is not null) or (rfr_page = 'index' and uid is not null));

Filter text is:

Filter text = (((rfr_page = 'search') and uid is not null) or ((rfr_page = 'index') and uid is not null))

However the sarg is:

sarg: leaf-0 = (EQUALS rfr_page search), leaf-1 = (EQUALS rfr_page index), leaf-2 = (IS_NULL uid), expr = (and (or leaf-0 leaf-1) (or (not leaf-2) leaf-1) (or leaf-0 (not leaf-1)) (or (not leaf-2) (not leaf-1)))

> SearchArgumentImpl generates wrong ExpressionTree in some cases which might result in loss of data 
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-21955
>                 URL: https://issues.apache.org/jira/browse/HIVE-21955
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive, ORC
>            Reporter: Zihao Ye
>            Assignee: Zihao Ye
>            Priority: Critical
>
> ExpressionBuilder applies `pushDownNot`, `foldMaybe`, `flatten`, `convertToCNF`, `flatten` and `buildLeafList` in order to form a non-normalized expression into a CNF expression with the unique leaves.
> After an expression is converted to CNF, there might be more than one non-leaf node which are exactly the same object in the expression tree. If this happens, those non-leaf node will be visited more than once in `buildLeafList` function. As a result, a wrong ExpressionTree is generated.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)