You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Chinmay Kulkarni (Jira)" <ji...@apache.org> on 2020/02/26 19:18:00 UTC

[jira] [Updated] (PHOENIX-5740) WhereOptimizer doesn't generate optimized query plan

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

Chinmay Kulkarni updated PHOENIX-5740:
--------------------------------------
    Summary: WhereOptimizer doesn't generate optimized query plan  (was: WhereOptmizer doesn't generate optimized query plan)

> WhereOptimizer doesn't generate optimized query plan
> ----------------------------------------------------
>
>                 Key: PHOENIX-5740
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5740
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Xinyi Yan
>            Priority: Major
>         Attachments: Screen Shot 2020-02-19 at 4.41.12 PM.png
>
>
> !Screen Shot 2020-02-19 at 4.41.12 PM.png!
> {code:java}
> 0: jdbc:phoenix:localhost:49454> CREATE TABLE FOO (ID1 BIGINT NOT NULL , ID2 BIGINT NOT NULL, CONSTRAINT PK PRIMARY KEY(ID1, ID2));
> No rows affected (1.262 seconds)
> 0: jdbc:phoenix:localhost:49454> EXPLAIN SELECT * FROM FOO WHERE ((ID1=1 AND ID2=1) OR (ID1=2 AND ID2=2));
> +-------------------------------------------------------------------------------------------+-----------------+----------------+------+
> |                                           PLAN                                            | EST_BYTES_READ  | EST_ROWS_READ  | EST_ |
> +-------------------------------------------------------------------------------------------+-----------------+----------------+------+
> | CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN FULL SCAN OVER FOO                              | null            | null           | null |
> |     SERVER FILTER BY FIRST KEY ONLY AND ((ID1 = 1 AND ID2 = 1) OR (ID1 = 2 AND ID2 = 2))  | null            | null           | null |
> +-------------------------------------------------------------------------------------------+-----------------+----------------+------+
> 2 rows selected (0.008 seconds)
> {code}
>  
> AS we can see, the pattern of WHERE (( all pk conditions) OR ( all pk conditions)) generates the wrong scan.
> Instead of a full scan, it should be a point lookup since we have full primary key listed. 
>  
>  



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