You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/01/24 18:00:40 UTC

[jira] [Resolved] (PHOENIX-1967) ClassCastException when upserting an Unsigned array

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

James Taylor resolved PHOENIX-1967.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: 4.7.0

> ClassCastException when upserting an Unsigned array
> ---------------------------------------------------
>
>                 Key: PHOENIX-1967
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1967
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Dumindu Buddhika
>            Assignee: Dumindu Buddhika
>             Fix For: 4.7.0
>
>
> {code}
> Connection conn = DriverManager.getConnection(getUrl());
> Object[] s = new Object[]{2,3};
> conn.createStatement().execute("CREATE TABLE t ( k VARCHAR PRIMARY KEY, a UNSIGNED_INT[])");
> conn.commit();
> PreparedStatement stmt = conn.prepareStatement("UPSERT INTO t VALUES('a',?)");
> PhoenixArray array = (PhoenixArray) conn.createArrayOf("UNSIGNED_INT", s);
> stmt.setArray(1, array);
> stmt.execute();
> conn.commit();
> {code}
> Results in,
> java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;
> 	at org.apache.phoenix.schema.types.PUnsignedIntArray.isCoercibleTo(PUnsignedIntArray.java:83)
> 	at org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:168)
> 	at org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:143)
> 	at org.apache.phoenix.compile.UpsertCompiler$UpsertValuesCompiler.visit(UpsertCompiler.java:858)
> 	at org.apache.phoenix.compile.UpsertCompiler$UpsertValuesCompiler.visit(UpsertCompiler.java:842)
> 	at org.apache.phoenix.parse.BindParseNode.accept(BindParseNode.java:47)
> 	at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:733)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:516)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:507)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:297)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:290)
> 	at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:288)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:220)
> 	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:173)
> 	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:178)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)