[
https://issues.apache.org/jira/browse/PHOENIX-5740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xinyi Yan updated PHOENIX-5740:
-------------------------------
Description:
!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.
was:
!Screen Shot 2020-02-19 at 4.41.12 PM.png!
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.
> WhereOptmizer 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)