You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Akihiko Kusanagi (JIRA)" <ji...@apache.org> on 2015/11/03 19:11:27 UTC

[jira] [Created] (DRILL-4020) The not-equal operator returns incorrect results when used on the HBase row key

Akihiko Kusanagi created DRILL-4020:
---------------------------------------

             Summary: The not-equal operator returns incorrect results when used on the HBase row key
                 Key: DRILL-4020
                 URL: https://issues.apache.org/jira/browse/DRILL-4020
             Project: Apache Drill
          Issue Type: Bug
          Components: Storage - HBase
    Affects Versions: 1.2.0
         Environment: Drill Sandbox
            Reporter: Akihiko Kusanagi
            Priority: Critical


Create a test HBase table:

hbase> create 'table', 'f'
hbase> put 'table', 'row1', 'f:c', 'value1'
hbase> put 'table', 'row2', 'f:c', 'value2'
hbase> put 'table', 'row3', 'f:c', 'value3'

The table looks like this:

0: jdbc:drill:zk=maprdemo:5181> SELECT CONVERT_FROM(row_key, 'UTF8') FROM hbase.`table`;
+---------+
| EXPR$0  |
+---------+
| row1    |
| row2    |
| row3    |
+---------+
1 row selected (4.596 seconds)

However, this query returns incorrect results when a not-equal operator is used on the row key:

0: jdbc:drill:zk=maprdemo:5181> SELECT CONVERT_FROM(row_key, 'UTF8') FROM hbase.`table` WHERE row_key <> 'row1';
+---------+
| EXPR$0  |
+---------+
| row1    |
| row2    |
| row3    |
+---------+
1 row selected (0.573 seconds)

In the query plan, there is no RowFilter:

00-00    Screen
00-01      Project(EXPR$0=[CONVERT_FROMUTF8($0)])
00-02        Scan(groupscan=[HBaseGroupScan [HBaseScanSpec=HBaseScanSpec [tableName=table, startRow=, stopRow=, filter=null], columns=[`row_key`]]])

When the query has multiple not-equal operators, it works fine:

0: jdbc:drill:zk=maprdemo:5181> SELECT CONVERT_FROM(row_key, 'UTF8') FROM hbase.`table` WHERE row_key <> 'row1' AND row_key <> 'row2';
+---------+
| EXPR$0  |
+---------+
| row3    |
+---------+
1 row selected (0.255 seconds)

In the query plan, a FilterList has two RowFilters with NOT_EQUAL operators:

00-00    Screen
00-01      Project(EXPR$0=[CONVERT_FROMUTF8($0)])
00-02        Scan(groupscan=[HBaseGroupScan [HBaseScanSpec=HBaseScanSpec [tableName=table, startRow=, stopRow=, filter=FilterList AND (2/2): [RowFilter (NOT_EQUAL, row1), RowFilter (NOT_EQUAL, row2)]], columns=[`row_key`]]])



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