You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/03/14 17:22:00 UTC

[jira] [Commented] (PHOENIX-6662) Failed to delete rows when PK has one or more DESC column with IN clause

    [ https://issues.apache.org/jira/browse/PHOENIX-6662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17506367#comment-17506367 ] 

ASF GitHub Bot commented on PHOENIX-6662:
-----------------------------------------

yanxinyi commented on a change in pull request #1402:
URL: https://github.com/apache/phoenix/pull/1402#discussion_r826201977



##########
File path: phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
##########
@@ -2197,10 +2203,11 @@ public SortOrder getSortOrder() {
                     // for the non-equality cases return actual sort order
                     //This work around should work
                     // but a more general approach can be taken.
-                    if(rvcElementOp == CompareOp.EQUAL ||
-                            rvcElementOp == CompareOp.NOT_EQUAL){
-                        return SortOrder.ASC;
-                    }
+                    //This optimization causes PHOENIX-6662 (when desc pk used with in clause)

Review comment:
       nit: maybe remove instead of keeping it? 




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@phoenix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> 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)