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

Lars Hofhansl updated PHOENIX-5104:
-----------------------------------
    Description: 
Scenario:
* New 4.15 client
** {{create table ns1.test (pk1 integer not null, pk2 integer not null, pk3 
integer not null, v1 float, v2 float, v3 integer CONSTRAINT pk PRIMARY KEY 
(pk1, pk2, pk3));}}
** {{create local index l1 on ns1.test(v1);}}
* Old 4.14.x client
** {{explain select count\(*) from test t1 where t1.v1 < 0.000001;}}

Result:
{code}
0: jdbc:phoenix:localhost> explain select count(*) from ns1.test t1 where t1.v1 
< 0.000001;
Error: ERROR 201 (22000): Illegal data. Expected length of at least 8 bytes, 
but had 2 (state=22000,code=201)
java.sql.SQLException: ERROR 201 (22000): Illegal data. Expected length of at 
least 8 bytes, but had 2
        at 
org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
        at 
org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
        at 
org.apache.phoenix.schema.types.PDataType.checkForSufficientLength(PDataType.java:290)
        at 
org.apache.phoenix.schema.types.PLong$LongCodec.decodeLong(PLong.java:256)
        at org.apache.phoenix.schema.types.PLong.toObject(PLong.java:115)
        at org.apache.phoenix.schema.types.PLong.toObject(PLong.java:31)
        at 
org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:994)
        at 
org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:1035)
        at 
org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:1031)
        at 
org.apache.phoenix.iterate.ExplainTable.appendPKColumnValue(ExplainTable.java:207)
        at 
org.apache.phoenix.iterate.ExplainTable.appendScanRow(ExplainTable.java:282)
        at 
org.apache.phoenix.iterate.ExplainTable.appendKeyRanges(ExplainTable.java:297)
        at 
org.apache.phoenix.iterate.ExplainTable.explain(ExplainTable.java:127)
        at 
org.apache.phoenix.iterate.BaseResultIterators.explain(BaseResultIterators.java:1544)
        at 
org.apache.phoenix.iterate.ConcatResultIterator.explain(ConcatResultIterator.java:92)
        at 
org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.explain(BaseGroupedAggregatingResultIterator.java:103)
        at 
org.apache.phoenix.execute.BaseQueryPlan.getPlanSteps(BaseQueryPlan.java:524)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:372)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:217)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:212)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:207)
        at 
org.apache.phoenix.execute.BaseQueryPlan.getExplainPlan(BaseQueryPlan.java:516)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:603)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:575)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:302)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:291)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:290)
...
{code}

  was:
Scenario:
* New 4.15 client
** {{create table ns1.test (pk1 integer not null, pk2 integer not null, pk3 
integer not null, v1 float, v2 float, v3 integer CONSTRAINT pk PRIMARY KEY 
(pk1, pk2, pk3));}}
** {{create local index l1 on ns1.test(v1);}}
* Old 4.14.x client
** {{explain select count(*) from test t1 where t1.v1 < 0.000001;}}

Result:
{code}
0: jdbc:phoenix:localhost> explain select count(*) from ns1.test t1 where t1.v1 
< 0.000001;
Error: ERROR 201 (22000): Illegal data. Expected length of at least 8 bytes, 
but had 2 (state=22000,code=201)
java.sql.SQLException: ERROR 201 (22000): Illegal data. Expected length of at 
least 8 bytes, but had 2
        at 
org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
        at 
org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
        at 
org.apache.phoenix.schema.types.PDataType.checkForSufficientLength(PDataType.java:290)
        at 
org.apache.phoenix.schema.types.PLong$LongCodec.decodeLong(PLong.java:256)
        at org.apache.phoenix.schema.types.PLong.toObject(PLong.java:115)
        at org.apache.phoenix.schema.types.PLong.toObject(PLong.java:31)
        at 
org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:994)
        at 
org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:1035)
        at 
org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:1031)
        at 
org.apache.phoenix.iterate.ExplainTable.appendPKColumnValue(ExplainTable.java:207)
        at 
org.apache.phoenix.iterate.ExplainTable.appendScanRow(ExplainTable.java:282)
        at 
org.apache.phoenix.iterate.ExplainTable.appendKeyRanges(ExplainTable.java:297)
        at 
org.apache.phoenix.iterate.ExplainTable.explain(ExplainTable.java:127)
        at 
org.apache.phoenix.iterate.BaseResultIterators.explain(BaseResultIterators.java:1544)
        at 
org.apache.phoenix.iterate.ConcatResultIterator.explain(ConcatResultIterator.java:92)
        at 
org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.explain(BaseGroupedAggregatingResultIterator.java:103)
        at 
org.apache.phoenix.execute.BaseQueryPlan.getPlanSteps(BaseQueryPlan.java:524)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:372)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:217)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:212)
        at 
org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:207)
        at 
org.apache.phoenix.execute.BaseQueryPlan.getExplainPlan(BaseQueryPlan.java:516)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:603)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:575)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:302)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:291)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:290)
...
{code}


> PHOENIX-3547 break client backwards compatability
> -------------------------------------------------
>
>                 Key: PHOENIX-5104
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5104
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.15.0
>            Reporter: Lars Hofhansl
>            Priority: Blocker
>
> Scenario:
> * New 4.15 client
> ** {{create table ns1.test (pk1 integer not null, pk2 integer not null, pk3 
> integer not null, v1 float, v2 float, v3 integer CONSTRAINT pk PRIMARY KEY 
> (pk1, pk2, pk3));}}
> ** {{create local index l1 on ns1.test(v1);}}
> * Old 4.14.x client
> ** {{explain select count\(*) from test t1 where t1.v1 < 0.000001;}}
> Result:
> {code}
> 0: jdbc:phoenix:localhost> explain select count(*) from ns1.test t1 where 
> t1.v1 < 0.000001;
> Error: ERROR 201 (22000): Illegal data. Expected length of at least 8 bytes, 
> but had 2 (state=22000,code=201)
> java.sql.SQLException: ERROR 201 (22000): Illegal data. Expected length of at 
> least 8 bytes, but had 2
>         at 
> org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
>         at 
> org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
>         at 
> org.apache.phoenix.schema.types.PDataType.checkForSufficientLength(PDataType.java:290)
>         at 
> org.apache.phoenix.schema.types.PLong$LongCodec.decodeLong(PLong.java:256)
>         at org.apache.phoenix.schema.types.PLong.toObject(PLong.java:115)
>         at org.apache.phoenix.schema.types.PLong.toObject(PLong.java:31)
>         at 
> org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:994)
>         at 
> org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:1035)
>         at 
> org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:1031)
>         at 
> org.apache.phoenix.iterate.ExplainTable.appendPKColumnValue(ExplainTable.java:207)
>         at 
> org.apache.phoenix.iterate.ExplainTable.appendScanRow(ExplainTable.java:282)
>         at 
> org.apache.phoenix.iterate.ExplainTable.appendKeyRanges(ExplainTable.java:297)
>         at 
> org.apache.phoenix.iterate.ExplainTable.explain(ExplainTable.java:127)
>         at 
> org.apache.phoenix.iterate.BaseResultIterators.explain(BaseResultIterators.java:1544)
>         at 
> org.apache.phoenix.iterate.ConcatResultIterator.explain(ConcatResultIterator.java:92)
>         at 
> org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.explain(BaseGroupedAggregatingResultIterator.java:103)
>         at 
> org.apache.phoenix.execute.BaseQueryPlan.getPlanSteps(BaseQueryPlan.java:524)
>         at 
> org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:372)
>         at 
> org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:217)
>         at 
> org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:212)
>         at 
> org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:207)
>         at 
> org.apache.phoenix.execute.BaseQueryPlan.getExplainPlan(BaseQueryPlan.java:516)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:603)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableExplainStatement.compilePlan(PhoenixStatement.java:575)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:302)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:291)
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>         at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:290)
> ...
> {code}



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

Reply via email to