Jesus Camacho Rodriguez created HIVE-13831:
----------------------------------------------

             Summary: Error pushing predicates to HBase storage handler
                 Key: HIVE-13831
                 URL: https://issues.apache.org/jira/browse/HIVE-13831
             Project: Hive
          Issue Type: Bug
          Components: HBase Handler
    Affects Versions: 2.1.0
            Reporter: Jesus Camacho Rodriguez
            Assignee: Jesus Camacho Rodriguez


Discovered while working on HIVE-13693.

There is an error on the predicates that we can push to HBaseStorageHandler. In 
particular, range predicates of the shape {{(bounded, open)}} and {{(open, 
bounded)}} over long or int columns get pushed and return wrong results.

The problem has to do with the storage order for keys in HBase. Keys are sorted 
lexicographically. Since the byte representation of negative values comes after 
the positive values, open range predicates need special handling that we do not 
have right now.

Thus, for instance, when we push the predicate {{key > 2}}, we return all 
records with column _key_ greater than 2, plus the records with negative values 
for the column _key_. This problem does not get exposed if a filter is kept in 
the Hive operator tree, but we should not assume the latest.

This fix avoids pushing this kind of predicates to the storage handler, 
returning them in the _residual_ part of the predicate that cannot be pushed. 
In the future, special handling might be added to support this kind of 
predicates.



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

Reply via email to