You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Xu Cang (Jira)" <ji...@apache.org> on 2019/11/13 19:45:00 UTC

[jira] [Created] (PHOENIX-5570) Delete fails to delete data with null value in last column of PK. (all columns are in PK)

Xu Cang created PHOENIX-5570:
--------------------------------

             Summary: Delete fails to delete data with null value in last column of PK. (all columns are in PK)
                 Key: PHOENIX-5570
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5570
             Project: Phoenix
          Issue Type: Bug
            Reporter: Xu Cang


Phoenix delete fails to delete row in below scenario:

All columns are in PK, last PK column has null value in row.

 

 

CREATE TABLE IF NOT EXISTS TEST.KINGDOMTABLEWITHNULLPK3 (

    TENANT_ID CHAR(15) NOT NULL,

    GLOBAL_PARTY_ID VARCHAR,

    GLOBAL_INPUT_ID VARCHAR,

        CONSTRAINT PK PRIMARY KEY

(TENANT_ID,

    GLOBAL_PARTY_ID,

  GLOBAL_INPUT_ID DESC

)    ) MULTI_TENANT=true;

 

UPSERT INTO TEST.KINGDOMTABLEWITHNULLPK3 (TENANT_ID, GLOBAL_PARTY_ID) VALUES('00000000000DEL3','party1');

 

delete from TEST.KINGDOMTABLEWITHNULLPK3 where TENANT_ID='00000000000DEL3'AND GLOBAL_PARTY_ID='party1' AND GLOBAL_INPUT_ID  is NULL ;

 

0: jdbc:phoenix:perf1hdaas-mnds2-1-prd.eng.sf> select * from TEST.KINGDOMTABLEWITHNULLPK3;

+-----------------+------------------------------------------+------------------------------------------+

|    TENANT_ID    |             GLOBAL_PARTY_ID              |             GLOBAL_INPUT_ID              |

+-----------------+------------------------------------------+------------------------------------------+

| 00000000000DEL3 | party1                                   |                                          |

+-----------------+------------------------------------------+------------------------------------------+

0: jdbc:phoenix:perf1hdaas-mnds2-1-prd.eng.sf>

 

 

===================

But if there is one column after the GLOBAL_INPUT_ID column, delete works, as shown below.

 

CREATE TABLE IF NOT EXISTS TEST.KINGDOMTABLEWITHNULLPK4 (

    TENANT_ID CHAR(15) NOT NULL,

    GLOBAL_PARTY_ID VARCHAR,

    GLOBAL_INPUT_ID VARCHAR,

    TRAN_ID VARCHAR,

        CONSTRAINT PK PRIMARY KEY

(TENANT_ID,

    GLOBAL_PARTY_ID,

  GLOBAL_INPUT_ID DESC,

TRAN_ID

)    ) MULTI_TENANT=true;

 

UPSERT INTO TEST.KINGDOMTABLEWITHNULLPK4 (TENANT_ID, GLOBAL_PARTY_ID,TRAN_ID) VALUES('00000000000DEL3','party1’,’1’);

 

delete from TEST.KINGDOMTABLEWITHNULLPK4 where TENANT_ID='00000000000DEL3'AND GLOBAL_PARTY_ID='party1' AND GLOBAL_INPUT_ID  is NULL and TRAN_ID=‘1’ ;

0: jdbc:phoenix:perf1hdaas-mnds2-1-prd.eng.sf> select * from TEST.KINGDOMTABLEWITHNULLPK4;

+-----------------+------------------------------------------+------------------------------------------+------------------------------------------+

|    TENANT_ID    |             GLOBAL_PARTY_ID              |             GLOBAL_INPUT_ID              |                 TRAN_ID                  |

+-----------------+------------------------------------------+------------------------------------------+------------------------------------------+

+-----------------+------------------------------------------+------------------------------------------+------------------------------------------+

0: jdbc:phoenix:perf1hdaas-mnds2-1-prd.eng.sf>



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