You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Xu Cang (JIRA)" <ji...@apache.org> on 2018/08/02 01:12:00 UTC

[jira] [Updated] (PHOENIX-4476) Range scan used for point lookups if filter is not in order of primary keys

     [ https://issues.apache.org/jira/browse/PHOENIX-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xu Cang updated PHOENIX-4476:
-----------------------------
    Comment: was deleted

(was: testing comment. (to test devlist notification fix requested by Thomas))

> Range scan used for point lookups if filter is not in order of primary keys
> ---------------------------------------------------------------------------
>
>                 Key: PHOENIX-4476
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4476
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.13.1
>            Reporter: Mujtaba Chohan
>            Assignee: Xu Cang
>            Priority: Major
>              Labels: SFDC
>         Attachments: PHOENIX-4476-workInProgress.001.patch
>
>
> {noformat}
> DROP TABLE TEST;
> CREATE TABLE IF NOT EXISTS TEST (
>     PK1 CHAR(1) NOT NULL,
>     PK2 VARCHAR NOT NULL,
>     PK3 VARCHAR NOT NULL,
>     PK4 UNSIGNED_LONG NOT NULL,
>     PK5 VARCHAR NOT NULL,
>     V1 VARCHAR,
>     V2 VARCHAR,
>     V3 UNSIGNED_LONG
>     CONSTRAINT state_pk PRIMARY KEY (
>           PK1,
>           PK2,
>           PK3,
>           PK4,
>           PK5
>     )
> );
> // Incorrect explain plan with un-ordered PKs
> EXPLAIN SELECT V1 FROM TEST WHERE (PK1, PK5, PK2, PK3, PK4) IN (('A', 'E', 'N', 'T', 3), ('A', 'Y', 'G', 'T', 4)); 
> +------------------------------------------+------------------------------------------+------------------------------------------+---------+
> |                   PLAN                   |              EST_BYTES_READ              |              EST_ROWS_READ               |         |
> +------------------------------------------+------------------------------------------+------------------------------------------+---------+
> | CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER TEST ['A'] | null                                     | null                   |
> |     SERVER FILTER BY (PK1, PK5, PK2, PK3, PK4) IN ([65,69,0,78,0,84,0,0,0,0,0,0,0,0,3],[65,89,0,71,0,84,0,0,0,0,0,0,0,0,4]) | null       |
> +------------------------------------------+------------------------------------------+------------------------------------------+---------+
> // Correct explain plan with PKs in order
> EXPLAIN SELECT V1 FROM TEST WHERE (PK1,PK2,PK3,PK4,PK5) IN (('A', 'E', 'N',3, 'T'),('A', 'Y', 'G', 4, 'T')); 
> +------------------------------------------+------------------------------------------+------------------------------------------+---------+
> |                   PLAN                   |              EST_BYTES_READ              |              EST_ROWS_READ               |         |
> +------------------------------------------+------------------------------------------+------------------------------------------+---------+
> | CLIENT 1-CHUNK 2 ROWS 712 BYTES PARALLEL 1-WAY ROUND ROBIN POINT LOOKUP ON 2 KEYS OVER TEST | 712                                      | |
> +------------------------------------------+------------------------------------------+------------------------------------------+---------+
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)