[ https://issues.apache.org/jira/browse/PHOENIX-6662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xinyi Yan updated PHOENIX-6662: ------------------------------- Description: Global connection to create a base table and view. {code:java} CREATE TABLE IF NOT EXISTS DUMMY.BASE (TETNANT_ID CHAR(15) NOT NULL, PREFIX CHAR(3) NOT NULL, COL1 DATE, COL2 CHAR(15), COL3 DATE, COL4 CHAR(15), COL5 DATE CONSTRAINT PK PRIMARY KEY ( TETNANT_ID, PREFIX ) ) MULTI_TENANT=true; CREATE VIEW IF NOT EXISTS DUMMY.GLOBAL_VIEW (PK1 DECIMAL(12, 3) NOT NULL, PK2 BIGINT NOT NULL, COL6 CHAR(15) , COL7 DATE, COL8 BOOLEAN, COL9 CHAR(15), COL10 VARCHAR, COL11 VARCHAR CONSTRAINT PKVIEW PRIMARY KEY (PK1 DESC, PK2)) AS SELECT * FROM DUMMY.BASE WHERE PREFIX = '01A'; {code} Tenant connection to create a view and repro the issue {code:java} 0: jdbc:phoenix:localhost> CREATE VIEW DUMMY."0ph" AS SELECT * FROM DUMMY.GLOBAL_VIEW; No rows affected (0.055 seconds) 0: jdbc:phoenix:localhost> UPSERT INTO DUMMY."0ph" (PK1,PK2) VALUES (10.0,10); 1 row affected (0.038 seconds) 0: jdbc:phoenix:localhost> UPSERT INTO DUMMY."0ph" (PK1,PK2) VALUES (20.0,20); 1 row affected (0.008 seconds) 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY."0ph"; +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ | PREFIX | COL1 | COL2 | COL3 | COL4 | COL5 | PK1 | PK2 | COL6 | COL7 | COL8 | COL9 | COL | +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ | 01A | null | | null | | null | 2E+1 | 20 | | null | | | | | 01A | null | | null | | null | 1E+1 | 10 | | null | | | | +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ 2 rows selected (0.035 seconds) 0: jdbc:phoenix:localhost> DELETE FROM DUMMY."0ph" WHERE (PK1,PK2) IN ((10.0,10),(20.0,20)); No rows affected (0.024 seconds) 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY."0ph"; +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ | PREFIX | COL1 | COL2 | COL3 | COL4 | COL5 | PK1 | PK2 | COL6 | COL7 | COL8 | COL9 | COL | +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ | 01A | null | | null | | null | 2E+1 | 20 | | null | | | | | 01A | null | | null | | null | 1E+1 | 10 | | null | | | | +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ 2 rows selected (0.021 seconds) 0: jdbc:phoenix:localhost> EXPLAIN DELETE FROM DUMMY."0ph" WHERE (PK1,PK2) IN ((10.0,10),(20.0,20)); +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ | PLAN | EST_BYTES_READ | EST_ROWS_READ | EST_INFO_TS | +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ | DELETE ROWS SERVER SELECT | null | null | null | | CLIENT 1-CHUNK PARALLEL 1-WAY SKIP SCAN ON 2 KEYS OVER DUMMY.BASE ['00DXXXXXXXXXXXX','01A',~19.977] - ['00DXXXXXXXXXXXX','01A',~9.977] | null | null | null | | SERVER FILTER BY FIRST KEY ONLY | null | null | null | +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ {code} was: {code:java} 0: jdbc:phoenix:localhost> CREATE TABLE DUMMY_THREE_PKS (PK1 VARCHAR(15), PK2 DOUBLE(10,3) NOT NULL, PK3 BIGINT NOT NULL CONSTRAINT PK PRIMARY KEY (PK1, PK2 DESC,PK3)); No rows affected (1.309 seconds) 0: jdbc:phoenix:localhost> 0: jdbc:phoenix:localhost> UPSERT INTO DUMMY_THREE_PKS VALUES ('00DXXXXXXXXXXXX',10.0,10); 1 row affected (0.033 seconds) 0: jdbc:phoenix:localhost> UPSERT INTO DUMMY_THREE_PKS VALUES ('00DXXXXXXXXXXXX',20.0,20); 1 row affected (0.003 seconds) 0: jdbc:phoenix:localhost> 0: jdbc:phoenix:localhost> 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY_THREE_PKS; +-----------------+------------------------------------------+------------------------------------------+ | PK1 | PK2 | PK3 | +-----------------+------------------------------------------+------------------------------------------+ | 00DXXXXXXXXXXXX | 20.0 | 20 | | 00DXXXXXXXXXXXX | 10.0 | 10 | +-----------------+------------------------------------------+------------------------------------------+ 2 rows selected (0.027 seconds) 0: jdbc:phoenix:localhost> DELETE FROM DUMMY_THREE_PKS WHERE (PK1,PK2) IN (('00DXXXXXXXXXXXX',10.0,10),('00DXXXXXXXXXXXX',20.0,20)); No rows affected (0.013 seconds) 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY_THREE_PKS; +-----------------+------------------------------------------+------------------------------------------+ | PK1 | PK2 | PK3 | +-----------------+------------------------------------------+------------------------------------------+ | 00DXXXXXXXXXXXX | 20.0 | 20 | | 00DXXXXXXXXXXXX | 10.0 | 10 | +-----------------+------------------------------------------+------------------------------------------+ 2 rows selected (0.012 seconds) 0: jdbc:phoenix:localhost> EXPLAIN DELETE FROM DUMMY_THREE_PKS WHERE (PK1,PK2) IN (('00DXXXXXXXXXXXX',10.0,10),('00DXXXXXXXXXXXX',20.0,20)); +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ | PLAN | EST_BYTES_READ | EST_ROWS_READ | EST_INFO_TS | +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ | DELETE ROWS SERVER SELECT | null | null | null | | CLIENT 1-CHUNK PARALLEL 1-WAY SKIP SCAN ON 2 KEYS OVER DUMMY_THREE_PKS ['00DXXXXXXXXXXXX',~20.0] - ['00DXXXXXXXXXXXX',~10.0] | null | null | | SERVER FILTER BY FIRST KEY ONLY AND (PK1, PK2) IN ([48,48,68,88,88,88,88,88,88,88,88,88,88,88,88,0,63,203,255,255,255,255,255,254,128,0,0,20],[48,48,68,88,88,88,88,88,88,88,88,88,88,88,88,0,63, | +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ {code} > Failed to delete rows when PK has one or more DESC column with IN clause > ------------------------------------------------------------------------ > > Key: PHOENIX-6662 > URL: https://issues.apache.org/jira/browse/PHOENIX-6662 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.16.1 > Reporter: Xinyi Yan > Priority: Critical > > Global connection to create a base table and view. > {code:java} > CREATE TABLE IF NOT EXISTS DUMMY.BASE (TETNANT_ID CHAR(15) NOT NULL, PREFIX > CHAR(3) NOT NULL, COL1 DATE, COL2 CHAR(15), COL3 DATE, COL4 CHAR(15), COL5 > DATE CONSTRAINT PK PRIMARY KEY ( TETNANT_ID, PREFIX ) ) MULTI_TENANT=true; > CREATE VIEW IF NOT EXISTS DUMMY.GLOBAL_VIEW (PK1 DECIMAL(12, 3) NOT NULL, > PK2 BIGINT NOT NULL, COL6 CHAR(15) , COL7 DATE, COL8 BOOLEAN, COL9 CHAR(15), > COL10 VARCHAR, COL11 VARCHAR CONSTRAINT PKVIEW PRIMARY KEY (PK1 DESC, PK2)) > AS SELECT * FROM DUMMY.BASE WHERE PREFIX = '01A'; {code} > Tenant connection to create a view and repro the issue > {code:java} > 0: jdbc:phoenix:localhost> CREATE VIEW DUMMY."0ph" AS SELECT * FROM > DUMMY.GLOBAL_VIEW; > No rows affected (0.055 seconds) > 0: jdbc:phoenix:localhost> UPSERT INTO DUMMY."0ph" (PK1,PK2) VALUES (10.0,10); > 1 row affected (0.038 seconds) > 0: jdbc:phoenix:localhost> UPSERT INTO DUMMY."0ph" (PK1,PK2) VALUES (20.0,20); > 1 row affected (0.008 seconds) > 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY."0ph"; > +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ > | PREFIX | COL1 | COL2 | COL3 > | COL4 | COL5 | PK1 | > PK2 | COL6 | COL7 | > COL8 | COL9 | COL | > +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ > | 01A | null | | null > | | null | 2E+1 | 20 > | | null | > | | | > | 01A | null | | null > | | null | 1E+1 | 10 > | | null | > | | | > +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ > 2 rows selected (0.035 seconds) > 0: jdbc:phoenix:localhost> DELETE FROM DUMMY."0ph" WHERE (PK1,PK2) IN > ((10.0,10),(20.0,20)); > No rows affected (0.024 seconds) > 0: jdbc:phoenix:localhost> SELECT * FROM DUMMY."0ph"; > +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ > | PREFIX | COL1 | COL2 | COL3 > | COL4 | COL5 | PK1 | > PK2 | COL6 | COL7 | > COL8 | COL9 | COL | > +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ > | 01A | null | | null > | | null | 2E+1 | 20 > | | null | > | | | > | 01A | null | | null > | | null | 1E+1 | 10 > | | null | > | | | > +--------+-------------------------+-----------------+-------------------------+-----------------+-------------------------+--------------+------------------------------------------+-----------------+-------------------------+------------------------------------------+-----------------+----------------------+ > 2 rows selected (0.021 seconds) > 0: jdbc:phoenix:localhost> EXPLAIN DELETE FROM DUMMY."0ph" WHERE (PK1,PK2) IN > ((10.0,10),(20.0,20)); > +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ > | PLAN | EST_BYTES_READ > | EST_ROWS_READ | > EST_INFO_TS | > +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ > | DELETE ROWS SERVER SELECT | null > | null | null > | > | CLIENT 1-CHUNK PARALLEL 1-WAY SKIP SCAN ON 2 KEYS OVER DUMMY.BASE > ['00DXXXXXXXXXXXX','01A',~19.977] - ['00DXXXXXXXXXXXX','01A',~9.977] | null > | null > | null | > | SERVER FILTER BY FIRST KEY ONLY | null > | null | null > | > +------------------------------------------+------------------------------------------+------------------------------------------+------------------------------------------+ > {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)