You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Bharath Vissapragada (Jira)" <ji...@apache.org> on 2020/04/12 08:09:00 UTC

[jira] [Created] (PHOENIX-5833) Incorrect results with LIKE operator

Bharath Vissapragada created PHOENIX-5833:
---------------------------------------------

             Summary: Incorrect results with LIKE operator
                 Key: PHOENIX-5833
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5833
             Project: Phoenix
          Issue Type: Bug
          Components: core
    Affects Versions: 4.15.0
            Reporter: Bharath Vissapragada


Phoenix version: 4.15-HBase-1.5

-- Create a test table and populate a couple of rows.

{noformat}
create table repro_bug(a varchar(10) not null, b varchar(10) not null, c varchar(10) not null constraint pk primary key(a, b, c));
upsert into repro_bug values('abc', 'def', 'RRSQ_IMKKL');
upsert into repro_bug values('abc', 'def', 'RRS_ZYTDT');
select * from repro_bug;
+------+------+-------------+
|  A   |  B   |      C      |
+------+------+-------------+
| abc  | def  | RRSQ_IMKKL  |
| abc  | def  | RRS_ZYTDT   |
+------+------+-------------+
{noformat}

-- Query 1 - Look for rows where C has a certain prefix - Returns correct result

{noformat}
select A, B, C from REPRO_BUG where C like 'RRS\\_%';
+------+------+------------+
|  A   |  B   |     C      |
+------+------+------------+
| abc  | def  | RRS_ZYTDT  |
+------+------+------------+
{noformat}

-- Query 2 - Look for rows where (a, b, c) > first row - Returns correct result

{noformat}
select A, B, C from REPRO_BUG where (A, B, C) > ('abc', 'def', 'RRSQ_IMKKL')
+------+------+------------+
|  A   |  B   |     C      |
+------+------+------------+
| abc  | def  | RRS_ZYTDT  |
+------+------+------------+
{noformat}

-- Query 3 - Combine the filters from Query 1 and Query2 - Returns incorrect result.. Ideally it should return the same row as above.

{noformat}
 select A, B, C from REPRO_BUG where (A, B, C) > ('abc', 'def', 'RRSQ_IMKKL') AND C like 'RRS\\_%';
+----+----+----+
| A  | B  | C  |
+----+----+----+
+----+----+----+
{noformat}

-- Explain for the above incase someone is interested.

{noformat}
explain select A, B, C from REPRO_BUG where (A, B, C) > ('abc', 'def', 'RRSQ_IMKKL') AND C like 'RRS\\_%';
+----------------------------------------------------------------------------------------+-----------------+----------------+--------------+
|                                          PLAN                                          | EST_BYTES_READ  | EST_ROWS_READ  | EST_INFO_TS  |
+----------------------------------------------------------------------------------------+-----------------+----------------+--------------+
| CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER REPRO_BUG ['abcdef'] - [*]  | null            | null           | null         |
|     SERVER FILTER BY FIRST KEY ONLY AND C LIKE 'RRS\_%'                                | null            | null           | null         |
+----------------------------------------------------------------------------------------+-----------------+----------------+--------------+
2 rows selected (0.003 seconds)
{noformat}

I'm trying to poke around in the code to figure out the issue but my understanding of  Phoenix is limited at this point. So creating a bug report incase someone can figure this out quickly.






--
This message was sent by Atlassian Jira
(v8.3.4#803005)