[ https://issues.apache.org/jira/browse/HIVE-13831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jesus Camacho Rodriguez updated HIVE-13831: ------------------------------------------- Target Version/s: 2.1.0 > 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 > Attachments: HIVE-13831.01.patch, HIVE-13831.02.patch, > HIVE-13831.patch > > > 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)