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

Kathiresan Selvaraj commented on PHOENIX-777:
---------------------------------------------

Dumindu, I haven't tested all the cases you have mentioned, but the i've tested 
PLongArray (I believe this is the BIGINT ARRAY sql data type). I get an 
exception, instead of 0's.

CREATE TABLE BIARRAYNULLTEST1 (ID VARCHAR, SALES BIGINT ARRAY CONSTRAINT PK 
PRIMARY KEY (ID))

UPSERT INTO BIARRAYNULLTEST1 (ID, SALES) VALUES('123',ARRAY[1,2,null])  
        
org.apache.phoenix.schema.TypeMismatchException: ERROR 203 (22005): Type 
mismatch. INTEGER and DECIMAL for -1.010E+126
        at 
org.apache.phoenix.schema.TypeMismatchException.newException(TypeMismatchException.java:53)
        at 
org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:171)
        at 
org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:143)
        at 
org.apache.phoenix.expression.LiteralExpression.newConstant(LiteralExpression.java:135)
        at 
org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:1561)
        at 
org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:141)
        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)

> Support null value for fixed length ARRAY
> -----------------------------------------
>
>                 Key: PHOENIX-777
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-777
>             Project: Phoenix
>          Issue Type: Task
>            Reporter: James Taylor
>            Assignee: Dumindu Buddhika
>
> A null value for a fixed length array can be handled with a bitset tacked on 
> the end of the array. If an element is set to null, then the bit at that 
> index is set. Trailing nulls are not stored and an attempt to access an array 
> past the current size returns null.
> Current behavior,
> PBinaryArray - Throws an exception when a null is inserted.
> PBooleanArray - null is considered as false when a null is inserted.
> PCharArray - Throws an exception when a null is inserted.
> PDateArray - Throws an exception when a null is inserted.
> PDoubleArray - null is considered as 0.0 when a null is inserted.
> PFloatArray - null is considered as 0.0 when a null is inserted.
> PIntegerArray - null is considered as 0 when a null is inserted.
> PLongArray - null is considered as 0 when a null is inserted.
> PSmallIntArray - null is considered as 0 when a null is inserted.
> PTimeArray - Throws an exception when a null is inserted.
> PTimeStampArray - Throws an exception when a null is inserted.
> PTinyIntArray - null is considered as 0 when a null is inserted.



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

Reply via email to