Thank you Nick I tried BIGINT (I guess that what you meant by (signed) long. I do not have an error on upsert and here is what I got in HBase.
\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\ column=0:_0, timestamp=1425734566865, value= x01\x80\x00\x00\x00\x00\x00\x00\x01\x80\x00\x 00\x00\x00\x00\x00\x02 so values(1,1,ARRAY[1,2]); become (I added space for better read) \x00\x00\x00\x01 \x00\x00\x00\x00\x00\x00\x00\x01\ x80\x00\x00\x00\x00\x00\x00\x01 \x80\x00\x00\x00\x00\x00\x00\x02 It almost what I need except thouse \x80. What are thouse some sort of separators? Why do we need it here with fixed length types? I am trying to model key that look almost like what I got but without \x80 I am not sure I can convert it explicitly either. upsert into dev.t1 (f_int,f_long,f_array) values(1,1,ARRAY [CAST(1 AS USINGNED_LONG),CAST( 2 AS UNSIGNED_LONG)]); Error: ERROR 201 (22000): Illegal data. Unsupported sql type: USINGNED_LONG (state=22000,code=201) upsert into dev.t1 (f_int,f_long,f_array) values(1,1,CAST(ARRAY[1,2] AS UNSIGNED_LONG ARRAY[])); Syntax error. Unexpected input. Expecting "LPAREN", got "CAST" at line 1, column 54. (state=42P00,code=603) Thx On Sat, Mar 7, 2015 at 1:55 AM, Nick Dimiduk <[email protected]> wrote: > It seems ARRAY[1,2] is not being implicitly cast to a unsigned long array. > Can you try an explicit cast? What if you declare f_array as (signed) long > array? Will have a look at code and get back to you. > > On Thursday, March 5, 2015, Sergey Belousov <[email protected]> > wrote: > > > Hi all > > > > I keep banging my head against the wall and kind of out of ideas at this > > point so I hope someone can give me little helping hand. > > It safe to say that I am using almost 4.3 (build just before it released) > > > > Here is what I having problem with > > > > CREATE TABLE IF NOT EXISTS dev.t1 > > ( > > f_int UNSIGNED_INT NOT NULL, > > f_long UNSIGNED_LONG NOT NULL, > > f_array UNSIGNED_LONG ARRAY[] NOT NULL, > > > > CONSTRAINT pk PRIMARY KEY (f_int, f_long, f_array) > > ); > > > > upsert into dev.t1 (f_int,f_long,f_array) values(1,1,ARRAY[1,2]); > > > > and getting > > > > Error: ERROR 203 (22005): Type mismatch. INTEGER ARRAY and UNSIGNED_LONG > > ARRAY for expression: > > > org.apache.phoenix.schema.types.PhoenixArray$PrimitiveIntPhoenixArray@d32d5 > > in column F_ARRAY (state=22005,code=203) > > > > I tried ARRAY[2] and having same problem > > > > !describe dev.t1; > > > > > +-------------------+--------------------+--------------------+---------------------+---------+ > > | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | > > COLUMN_NAME | | > > > > > +-------------------+--------------------+--------------------+---------------------+---------+ > > | null | DEV | T1 | F_INT > > | 4 | > > | null | DEV | T1 | F_LONG > > | -5 | > > | null | DEV | T1 | F_ARRAY > > | 2003 | > > > > > +-------------------+--------------------+--------------------+---------------------+---------+ > > > > Any idea what I am doing wrong ? > > > > Thank you > > S > > >
