[
https://issues.apache.org/jira/browse/PHOENIX-6659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Xinyi Yan updated PHOENIX-6659:
-------------------------------
Description:
CREATE TABLE DUMMY (PK1 VARCHAR NOT NULL, PK2 BIGINT NOT NULL, PK3 BIGINT NOT
NULL CONSTRAINT PK PRIMARY KEY (PK1,PK2,PK3));
UPSERT INTO DUMMY VALUES ('a',0,1);
UPSERT INTO DUMMY VALUES ('a',1,1);
UPSERT INTO DUMMY VALUES ('a',2,1);
UPSERT INTO DUMMY VALUES ('a',3,1);
UPSERT INTO DUMMY VALUES ('a',3,2);
UPSERT INTO DUMMY VALUES ('a',4,1);
{code:java}
0: jdbc:phoenix:localhost> SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
(PK1,PK2,PK3) <= ('a',3,1);
+------------------------------------------+------------------------------------------+--------------------------------+
| PK1 | PK2
| PK3 |
+------------------------------------------+------------------------------------------+--------------------------------+
+------------------------------------------+------------------------------------------+--------------------------------+
No rows selected (0.045 seconds)
0: jdbc:phoenix:localhost> explain SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
(PK1,PK2,PK3) <= ('a',3,1);
+------------------------------------------+------------------------------------------+--------------------------------+
| PLAN | EST_BYTES_READ
| EST_ROWS_READ |
+------------------------------------------+------------------------------------------+--------------------------------+
| CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER DUMMY ['a',*] -
['a',-9187343239835811840] | null |
| SERVER FILTER BY FIRST KEY ONLY | null
| null |
+------------------------------------------+------------------------------------------+--------------------------------+
2 rows selected (0.012 seconds)
0: jdbc:phoenix:localhost> SELECT * FROM DUMMY WHERE (PK1 = 'a') AND (PK2,PK3)
<= (3,1);
+------------------------------------------+------------------------------------------+--------------------------------+
| PK1 | PK2
| PK3 |
+------------------------------------------+------------------------------------------+--------------------------------+
| a | 0
| 1 |
| a | 1
| 1 |
| a | 2
| 1 |
| a | 3
| 1 |
+------------------------------------------+------------------------------------------+--------------------------------+
4 rows selected (0.014 seconds)
0: jdbc:phoenix:localhost> EXPLAIN SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
(PK2,PK3) <= (3,1);
+------------------------------------------+------------------------------------------+--------------------------------+
| PLAN | EST_BYTES_READ
| EST_ROWS_READ |
+------------------------------------------+------------------------------------------+--------------------------------+
| CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER DUMMY ['a',*] -
['a',3] | null |
| SERVER FILTER BY FIRST KEY ONLY | null
| null |
+------------------------------------------+------------------------------------------+--------------------------------+
2 rows selected (0.004 seconds) {code}
was:
CREATE TABLE DUMMY (PK1 VARCHAR NOT NULL, PK2 BIGINT NOT NULL, PK3 BIGINT NOT
NULL CONSTRAINT PK PRIMARY KEY (PK1,PK2,PK3));
UPSERT INTO DUMMY VALUES ('a',0,1);
UPSERT INTO DUMMY VALUES ('a',1,1);
UPSERT INTO DUMMY VALUES ('a',2,1);
UPSERT INTO DUMMY VALUES ('a',3,1);
UPSERT INTO DUMMY VALUES ('a',3,2);
UPSERT INTO DUMMY VALUES ('a',4,1);
SELECT * FROM DUMMY WHERE (PK1 = 'a') AND (PK1,PK2,PK3) <= ('a',3,1);
!Screen Shot 2022-03-01 at 1.26.44 PM.png!
> RVC with AND clauses return incorrect result
> --------------------------------------------
>
> Key: PHOENIX-6659
> URL: https://issues.apache.org/jira/browse/PHOENIX-6659
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.16.1
> Reporter: Xinyi Yan
> Priority: Critical
> Attachments: Screen Shot 2022-03-01 at 1.26.44 PM.png
>
>
> CREATE TABLE DUMMY (PK1 VARCHAR NOT NULL, PK2 BIGINT NOT NULL, PK3 BIGINT NOT
> NULL CONSTRAINT PK PRIMARY KEY (PK1,PK2,PK3));
> UPSERT INTO DUMMY VALUES ('a',0,1);
> UPSERT INTO DUMMY VALUES ('a',1,1);
> UPSERT INTO DUMMY VALUES ('a',2,1);
> UPSERT INTO DUMMY VALUES ('a',3,1);
> UPSERT INTO DUMMY VALUES ('a',3,2);
> UPSERT INTO DUMMY VALUES ('a',4,1);
>
> {code:java}
> 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
> (PK1,PK2,PK3) <= ('a',3,1);
> +------------------------------------------+------------------------------------------+--------------------------------+
> | PK1 | PK2
> | PK3 |
> +------------------------------------------+------------------------------------------+--------------------------------+
> +------------------------------------------+------------------------------------------+--------------------------------+
> No rows selected (0.045 seconds)
> 0: jdbc:phoenix:localhost> explain SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
> (PK1,PK2,PK3) <= ('a',3,1);
> +------------------------------------------+------------------------------------------+--------------------------------+
> | PLAN | EST_BYTES_READ
> | EST_ROWS_READ |
> +------------------------------------------+------------------------------------------+--------------------------------+
> | CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER DUMMY ['a',*] -
> ['a',-9187343239835811840] | null |
> | SERVER FILTER BY FIRST KEY ONLY | null
> | null |
> +------------------------------------------+------------------------------------------+--------------------------------+
> 2 rows selected (0.012 seconds)
> 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
> (PK2,PK3) <= (3,1);
> +------------------------------------------+------------------------------------------+--------------------------------+
> | PK1 | PK2
> | PK3 |
> +------------------------------------------+------------------------------------------+--------------------------------+
> | a | 0
> | 1 |
> | a | 1
> | 1 |
> | a | 2
> | 1 |
> | a | 3
> | 1 |
> +------------------------------------------+------------------------------------------+--------------------------------+
> 4 rows selected (0.014 seconds)
> 0: jdbc:phoenix:localhost> EXPLAIN SELECT * FROM DUMMY WHERE (PK1 = 'a') AND
> (PK2,PK3) <= (3,1);
> +------------------------------------------+------------------------------------------+--------------------------------+
> | PLAN | EST_BYTES_READ
> | EST_ROWS_READ |
> +------------------------------------------+------------------------------------------+--------------------------------+
> | CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER DUMMY ['a',*] -
> ['a',3] | null |
> | SERVER FILTER BY FIRST KEY ONLY | null
> | null |
> +------------------------------------------+------------------------------------------+--------------------------------+
> 2 rows selected (0.004 seconds) {code}
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)