Yes Ram, i get below issues
*BIGINT ARRAY*
CREATE TABLE BIARRAYNULLTEST1 (ID VARCHAR, SALES BIGINT ARRAY CONSTRAINT PK
PRIMARY KEY (ID))
Hbase>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)
Any problem with the syntax above for upsert of bigint array?
*DOUBLE ARRAY*
I'm getting back 0.0 instead of null references from the array when i do a
select
CREATE TABLE DBLARRAYNULLTEST (ID VARCHAR, AMOUNTS DOUBLE ARRAY CONSTRAINT
PK PRIMARY KEY(ID))
UPSERT INTO DBLARRAYNULLTEST(ID,AMOUNTS) VALUES('123',ARRAY[1.0,null,2.0])
SELECT * FROM DBLARRAYNULLTEST
123|[1.0, 0.0, 2.0]
UPSERT INTO DBLARRAYNULLTEST(ID,AMOUNTS) VALUES('123',ARRAY[null,1.0,2.0])
SELECT * FROM DBLARRAYNULLTEST
123|[0.0, 1.0, 2.0]
Also, we are planning to use TIMESTAMP array with possible null values in
it. I'll test that as well and will let you know.
Below are the critical ones for us that should accept null values
VARCHAR ARRAY (*You have fixed this yesterday*)
BIGINT ARRAY
DOUBLE ARRAY
TIMESTAMP ARRAY
Thanks,
Kathir
On Thu, May 7, 2015 at 2:47 AM, Vasudevan, Ramkrishna S <
[email protected]> wrote:
> Hi Kathir
>
>
>
> Ideally nulls should work with all the ARRAY types. Do you find any
> issues in the behavior of these ARRAY data types when you use ‘nulls’?
>
>
>
> Regards
>
> Ram
>
>
>
> *From:* Kathiresan S [mailto:[email protected]]
> *Sent:* Wednesday, May 6, 2015 4:59 PM
> *To:* [email protected]
> *Subject:* Re: Phoenix Array Type Null Element
>
>
>
> What are the other Array base data types (like VARCHAR), that could take
> null values?
>
>
>
> Do the below data types allow NULL as well?
>
>
>
> BIGINT ARRAY, DOUBLE ARRAY, DATE ARRAY, VARBINARY ARRAY
>
>
>
> Thanks,
>
> Kathir
>
>
>
> On Wed, May 6, 2015 at 6:35 AM, Kathiresan S <[email protected]>
> wrote:
>
> Thanks Ram.
>
>
>
>
>
> Thanks,
>
> Kathir
>
>
>
> On Wed, May 6, 2015 at 1:56 AM, Vasudevan, Ramkrishna S <
> [email protected]> wrote:
>
> I raised https://issues.apache.org/jira/browse/PHOENIX-1949 for fixing
> this.
>
>
>
> *From:* Vasudevan, Ramkrishna S [mailto:[email protected]]
> *Sent:* Wednesday, May 6, 2015 9:21 AM
> *To:* [email protected]
> *Subject:* RE: Phoenix Array Type Null Element
>
>
>
> Ideally varchar array should support NULL. This seems to be a bug. Can
> you file a JIRA for this?
>
> I can come up with a patch ASAP.
>
>
>
> Regards
>
> Ram
>
>
>
> *From:* Kathiresan S [mailto:[email protected]
> <[email protected]>]
> *Sent:* Tuesday, May 5, 2015 10:23 PM
> *To:* [email protected]
> *Subject:* Phoenix Array Type Null Element
>
>
>
> 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
>
>
>
>
>