use of org.apache.phoenix.schema.types.PhoenixArray in project phoenix by apache.
the class PDataTypeForArraysTest method testPositionSearchWithVarLengthArrayWithNullValue2.
@Test
public void testPositionSearchWithVarLengthArrayWithNullValue2() {
String[] strArr = new String[5];
strArr[0] = "abx";
strArr[1] = "ereref";
strArr[2] = "random";
strArr[3] = "random12";
strArr[4] = null;
PhoenixArray arr = PArrayDataType.instantiatePhoenixArray(PVarchar.INSTANCE, strArr);
byte[] bytes = PVarcharArray.INSTANCE.toBytes(arr);
ImmutableBytesWritable ptr = new ImmutableBytesWritable(bytes);
PArrayDataTypeDecoder.positionAtArrayElement(ptr, 2, PVarchar.INSTANCE, PVarchar.INSTANCE.getByteSize());
int offset = ptr.getOffset();
int length = ptr.getLength();
byte[] bs = ptr.get();
byte[] res = new byte[length];
System.arraycopy(bs, offset, res, 0, length);
assertEquals("random", Bytes.toString(res));
}
use of org.apache.phoenix.schema.types.PhoenixArray in project phoenix by apache.
the class PDataTypeForArraysTest method testForUnSignedFloatArray.
@Test
public void testForUnSignedFloatArray() {
Float[] floatArr = new Float[2];
floatArr[0] = 1.9993f;
floatArr[1] = 2.786f;
PhoenixArray arr = PArrayDataType.instantiatePhoenixArray(PUnsignedFloat.INSTANCE, floatArr);
PUnsignedFloatArray.INSTANCE.toObject(arr, PUnsignedFloatArray.INSTANCE);
byte[] bytes = PUnsignedFloatArray.INSTANCE.toBytes(arr);
PhoenixArray resultArr = (PhoenixArray) PUnsignedFloatArray.INSTANCE.toObject(bytes, 0, bytes.length);
assertEquals(arr, resultArr);
}
use of org.apache.phoenix.schema.types.PhoenixArray in project phoenix by apache.
the class PDataTypeForArraysTest method testVarCharArrayComparisonWithGreaterThan255NullsinMiddle.
@Test
public void testVarCharArrayComparisonWithGreaterThan255NullsinMiddle() {
String[] strArr = new String[240];
strArr[0] = "abc";
strArr[1] = "bcd";
strArr[2] = null;
strArr[3] = null;
strArr[4] = "bcd";
strArr[strArr.length - 1] = "abc";
PhoenixArray arr = PArrayDataType.instantiatePhoenixArray(PVarchar.INSTANCE, strArr);
byte[] bytes1 = PVarcharArray.INSTANCE.toBytes(arr);
strArr = new String[16];
strArr[0] = "abc";
strArr[1] = "bcd";
strArr[2] = null;
strArr[3] = null;
strArr[4] = "bcd";
strArr[strArr.length - 1] = "abc";
arr = PArrayDataType.instantiatePhoenixArray(PVarchar.INSTANCE, strArr);
byte[] bytes2 = PVarcharArray.INSTANCE.toBytes(arr);
assertTrue(Bytes.compareTo(bytes1, bytes2) < 0);
}
use of org.apache.phoenix.schema.types.PhoenixArray in project phoenix by apache.
the class PDataTypeForArraysTest method testGetArrayLengthForFixedLengthArray.
@Test
public void testGetArrayLengthForFixedLengthArray() {
Long[] longArr = new Long[4];
longArr[0] = 1l;
longArr[1] = 2l;
longArr[2] = 4l;
longArr[3] = 5l;
PhoenixArray arr = PArrayDataType.instantiatePhoenixArray(PLong.INSTANCE, longArr);
PLongArray.INSTANCE.toObject(arr, PLongArray.INSTANCE);
byte[] bytes = PLongArray.INSTANCE.toBytes(arr);
ImmutableBytesWritable ptr = new ImmutableBytesWritable(bytes);
int length = PArrayDataType.getArrayLength(ptr, PLong.INSTANCE, null);
assertEquals(4, length);
}
use of org.apache.phoenix.schema.types.PhoenixArray in project phoenix by apache.
the class PDataTypeForArraysTest method testForUnsignedTimeArray.
@Test
public void testForUnsignedTimeArray() {
Time[] timeArr = new Time[2];
timeArr[0] = new Time(System.currentTimeMillis());
timeArr[1] = new Time(900000l);
PhoenixArray arr = PArrayDataType.instantiatePhoenixArray(PUnsignedTime.INSTANCE, timeArr);
PUnsignedTimeArray.INSTANCE.toObject(arr, PUnsignedTimeArray.INSTANCE);
byte[] bytes = PUnsignedTimeArray.INSTANCE.toBytes(arr);
PhoenixArray resultArr = (PhoenixArray) PUnsignedTimeArray.INSTANCE.toObject(bytes, 0, bytes.length);
assertEquals(arr, resultArr);
}
Aggregations