Jesus Camacho Rodriguez created HIVE-13806:
----------------------------------------------

             Summary: Extension to folding NOT expressions in CBO
                 Key: HIVE-13806
                 URL: https://issues.apache.org/jira/browse/HIVE-13806
             Project: Hive
          Issue Type: Sub-task
          Components: CBO
    Affects Versions: 2.1.0
            Reporter: Jesus Camacho Rodriguez
            Assignee: Jesus Camacho Rodriguez


Follow-up of HIVE-13068.

Extension to folding expressions for NOT.

Currently, simplification is performed only if NOT is applied on a simple 
operation (e.g. IS NOT NULL, =, <>, etc.). We should take advantage of NOT 
distributivity when it is applied on OR/AND operations to try to simplify 
predicates further.

Ex. ql/src/test/results/clientpositive/folder_predicate.q.out

{noformat}
explain
SELECT * FROM predicate_fold_tb WHERE not(value IS NOT NULL AND value = 3)
{noformat}

Plan:
{noformat}
STAGE DEPENDENCIES:
  Stage-1 is a root stage
  Stage-0 depends on stages: Stage-1

STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Map Operator Tree:
          TableScan
            alias: predicate_fold_tb
            Statistics: Num rows: 6 Data size: 7 Basic stats: COMPLETE Column 
stats: NONE
            Filter Operator
              predicate: (not (value is not null and (value = 3))) (type: 
boolean)
              Statistics: Num rows: 3 Data size: 3 Basic stats: COMPLETE Column 
stats: NONE
              Select Operator
                expressions: value (type: int)
                outputColumnNames: _col0
                Statistics: Num rows: 3 Data size: 3 Basic stats: COMPLETE 
Column stats: NONE
                File Output Operator
                  compressed: false
                  Statistics: Num rows: 3 Data size: 3 Basic stats: COMPLETE 
Column stats: NONE
                  table:
                      input format: 
org.apache.hadoop.mapred.SequenceFileInputFormat
                      output format: 
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

  Stage: Stage-0
    Fetch Operator
      limit: -1
      Processor Tree:
        ListSink
{noformat}



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

Reply via email to