phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-5104) PHOENIX-3547 breaks client backwards compatability
Date Sun, 20 Jan 2019 20:12:00 GMT

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

Lars Hofhansl commented on PHOENIX-5104:
----------------------------------------

If we do not have cycles, we can also take it on the next release.
This either needs to be fixed or be reverted.

The fix is actually not entirely clear to me.
It's only safe to use Integer index ids once all clients are rolled forward. So perhaps we
turn this on with an option only.
Or perhaps we change the encoding such that old clients still can understand what's going
on.


> PHOENIX-3547 breaks 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
>             Fix For: 4.15.0
>
>
> 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)

Mime
View raw message