Hi,

Is it possible to insert null elements in an array type column?

CREATE TABLE ARRAYTEST124 (ID VARCHAR, NAME VARCHAR ARRAY CONSTRAINT PK PRIMARY KEY(ID))

UPSERT INTO ARRAYTEST124 (ID, NAME) VALUES('123',ARRAY['ABC','XYZ',null])
UPSERT INTO ARRAYTEST124 (ID, NAME) VALUES('123',ARRAY['ABC',null,'XYZ'])
UPSERT INTO ARRAYTEST124 (ID, NAME) VALUES('123',ARRAY[null,'ABC','XYZ'])

I'm using phoenix 4.4.0-HBase-0.98-rc0

I'm getting a null pointer exception, while trying to do the above upserts

java.lang.NullPointerException
at org.apache.phoenix.schema.types.PVarchar.toObject(PVarchar.java:62)
at org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:979)
at org.apache.phoenix.schema.types.PDataType.toObject(PDataType.java:992)
at org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:1275)
at org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:142)
at org.apache.phoenix.parse.ArrayConstructorNode.accept(ArrayConstructorNode.java:43)
at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:733)
at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:525)
at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:513)
at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:299)
at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:292)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:290)
at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:222)
at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:173)
at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:178)

Thanks,
Kathir