You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Thomas D'Silva (JIRA)" <ji...@apache.org> on 2019/05/27 03:44:00 UTC

[jira] [Reopened] (PHOENIX-5122) PHOENIX-4322 breaks client backward compatibility

     [ https://issues.apache.org/jira/browse/PHOENIX-5122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas D'Silva reopened PHOENIX-5122:
-------------------------------------

[~jisaac] I think the way the bitset is stored is not b/w compatible with a 4.13 client. 

To Repro:
Server on 4.14
With global connection:
{code}
CREATE TABLE IF NOT EXISTS CED (
    OID CHAR(15) NOT NULL, 
    KP CHAR(3) NOT NULL, 
    CONSTRAINT PK PRIMARY KEY (
        OID, 
        KP
    )
) 
{code}

With tenant specific connection and client on 4.13:
{code}
CREATE VIEW IF NOT EXISTS "z00" (COL1 VARCHAR NOT NULL, COL2 DECIMAL NOT NULL, COL3 VARCHAR CONSTRAINT PK PRIMARY KEY (COL1, COL2)) AS SELECT * FROM CED WHERE KEY_PREFIX = 'z00'; 

UPSERT INTO "z00" (COL1, COL2, COL3) VALUES ('TEST', 25, 'Test Value');
-- following returns no rows
SELECT * FROM "z00" WHERE (COL2, COL1) IN ((25, 'TEST'),(30,'TEST'));
{code}

> PHOENIX-4322 breaks client backward compatibility
> -------------------------------------------------
>
>                 Key: PHOENIX-5122
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5122
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.13.0
>            Reporter: Jacob Isaac
>            Assignee: Jacob Isaac
>            Priority: Blocker
>             Fix For: 4.13.0, 4.13.1, 4.15.0, 4.14.1, 5.1.0, 4.14.2, 5.0.1
>
>         Attachments: PHOENIX-5122-4.x-HBase-1.3.patch, PHOENIX-5122.patch, Screen Shot 2019-03-04 at 6.17.42 PM.png, Screen Shot 2019-03-04 at 6.21.10 PM.png
>
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> Scenario :
> *4.13 client -> 4.14.1 server*
> {noformat}
> Connected to: Phoenix (version 4.13)
> Driver: PhoenixEmbeddedDriver (version 4.13)
> Autocommit status: true
> Transaction isolation: TRANSACTION_READ_COMMITTED
> Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
> 135/135 (100%) Done
> Done
> sqlline version 1.1.9
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> CREATE table P_T000002 (oid VARCHAR NOT NULL, code VARCHAR NOT NULL constraint pk primary key (oid DESC, code DESC));
> No rows affected (1.31 seconds)
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> upsert into P_T000002 (oid, code) values ('0001', 'v0001');
> 1 row affected (0.033 seconds)
> 0: jdbc:phoenix:localhost> upsert into P_T000002 (oid, code) values ('0002', 'v0002');
> 1 row affected (0.004 seconds)
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> select * from P_T000002 where (oid, code) IN (('0001', 'v0001'), ('0002', 'v0002'));
> +------------------------------------------+------------------------------------------+
> | OID | CODE |
> +------------------------------------------+------------------------------------------+
> +------------------------------------------+------------------------------------------+
> {color:#FF0000}+*No rows selected (0.033 seconds)*+{color}
> 0: jdbc:phoenix:localhost> select * from P_T000002 ;
> +------------------------------------------+------------------------------------------+
> | OID | CODE |
> +------------------------------------------+------------------------------------------+
> | 0002 | v0002 |
> | 0001 | v0001 |
> +------------------------------------------+------------------------------------------+
> 2 rows selected (0.016 seconds)
> 0: jdbc:phoenix:localhost>
>  {noformat}
> *4.14.1 client -> 4.14.1 server* 
> {noformat}
> Connected to: Phoenix (version 4.14)
> Driver: PhoenixEmbeddedDriver (version 4.14)
> Autocommit status: true
> Transaction isolation: TRANSACTION_READ_COMMITTED
> Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
> 133/133 (100%) Done
> Done
> sqlline version 1.1.9
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> CREATE table P_T000001 (oid VARCHAR NOT NULL, code VARCHAR NOT NULL constraint pk primary key (oid DESC, code DESC));
> No rows affected (1.273 seconds)
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> upsert into P_T000001 (oid, code) values ('0001', 'v0001');
> 1 row affected (0.056 seconds)
> 0: jdbc:phoenix:localhost> upsert into P_T000001 (oid, code) values ('0002', 'v0002');
> 1 row affected (0.004 seconds)
> 0: jdbc:phoenix:localhost> 
> 0: jdbc:phoenix:localhost> select * from P_T000001 where (oid, code) IN (('0001', 'v0001'), ('0002', 'v0002'));
> +------------------------------------------+------------------------------------------+
> | OID | CODE |
> +------------------------------------------+------------------------------------------+
> | 0002 | v0002 |
> | 0001 | v0001 |
> +------------------------------------------+------------------------------------------+
> 2 rows selected (0.051 seconds)
> 0: jdbc:phoenix:localhost> select * from P_T000001 ;
> +------------------------------------------+------------------------------------------+
> | OID | CODE |
> +------------------------------------------+------------------------------------------+
> | 0002 | v0002 |
> | 0001 | v0001 |
> +------------------------------------------+------------------------------------------+
> 2 rows selected (0.017 seconds)
> 0: jdbc:phoenix:localhost>
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)