You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Jody Landreneau (JIRA)" <ji...@apache.org> on 2014/05/22 19:59:02 UTC

[jira] [Commented] (PHOENIX-989) problem setting column type of Array to null

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

Jody Landreneau commented on PHOENIX-989:
-----------------------------------------

[~ramkrishna.vasudevan@huawei.com] I'm not sure this patch is working. I think it partially fixes the problem. If you are using a prepared statement and go through the setNull method then the code path takes you to PArrayDataType.isSizeCompatible(..) where the value comes in as null and then it tries to deref. At least that is what I'm seeing on 3.0 code base. Thank you.

> problem setting column type of Array to null
> --------------------------------------------
>
>                 Key: PHOENIX-989
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-989
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.0-Release
>            Reporter: Jody Landreneau
>            Assignee: ramkrishna.s.vasudevan
>         Attachments: HBASE-989.patch
>
>
> Phoenix throws error when setting null for an array column type.
> Example:
> CREATE TABLE regions (
> region_name VARCHAR NOT NULL,
> nullable_field VARCHAR,
> zips VARCHAR[]
> CONSTRAINT pk PRIMARY KEY (region_name));
> I can
> UPSERT INTO regions(region_name, nullable_field)
> VALUES('SF Bay Area', null)
> but not
> UPSERT INTO regions(region_name, nullable_field, zips)
> VALUES('SF Bay Area', 'one', null)
> I have the same issue attempting to use jdbc, when I call the PreparedStatement's
> setNull(int parameterIndex, int sqlType) and I set the sqlType to ARRAY.
> Seems that the error I get is
> java.lang.NullPointerException
> at org.apache.phoenix.schema.PDataType$27.isCoercibleTo(PDataType.java:3455)
> at org.apache.phoenix.compile.UpsertCompiler$3.execute(UpsertCompiler.java:695)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:226)
> at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:185)
> at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:146)
> at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:151)
> The expectation is that I should be able to set array column types to null.



--
This message was sent by Atlassian JIRA
(v6.2#6252)