private static Block getPrimitiveBlock(com.facebook.presto.spi.type.Type type, Object object, ObjectInspector inspector) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 1); serializeObject(type, builder, object, inspector); return builder.build(); } }
private static Block toSingeValuedBlock(Slice expectedValue) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, 1, expectedValue.length()); VARBINARY.writeSlice(blockBuilder, expectedValue); return blockBuilder.build(); }
private static Block createSlicesBlock(Slice[] values) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 100); for (Slice value : values) { verify(value != null); VARBINARY.writeSlice(builder, value); } return builder.build(); } }
public static Block createSlicesBlock(Iterable<Slice> values) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 100); for (Slice value : values) { if (value == null) { builder.appendNull(); } else { VARBINARY.writeSlice(builder, value); } } return builder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }
@Test public void testHashCode() { Slice data = Slices.wrappedBuffer(ALL_BYTES); Block block = VARBINARY.createBlockBuilder(null, 1, ALL_BYTES.length) .writeBytes(data, 0, data.length()) .closeEntry() .build(); assertEquals(VarbinaryOperators.hashCode(data), VARBINARY.hash(block, 0)); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }
@Test public void testFileVarbinarySpiller() throws Exception { List<Type> types = ImmutableList.of(BIGINT, DOUBLE, VARBINARY); BlockBuilder col1 = BIGINT.createBlockBuilder(null, 1); BlockBuilder col2 = DOUBLE.createBlockBuilder(null, 1); BlockBuilder col3 = VARBINARY.createBlockBuilder(null, 1); col1.writeLong(42).closeEntry(); col2.writeLong(doubleToLongBits(43.0)).closeEntry(); col3.writeLong(doubleToLongBits(43.0)).writeLong(1).closeEntry(); Page page = new Page(col1.build(), col2.build(), col3.build()); try (Spiller spiller = factory.create(TYPES, bytes -> {}, memoryContext)) { testSpiller(types, spiller, ImmutableList.of(page)); } }
protected void assertSlicePosition(Block block, int position, Slice expectedSliceValue) { int length = block.getSliceLength(position); assertEquals(length, expectedSliceValue.length()); Block expectedBlock = toSingeValuedBlock(expectedSliceValue); for (int offset = 0; offset < length - 3; offset++) { assertEquals(block.getSlice(position, offset, 3), expectedSliceValue.slice(offset, 3)); assertTrue(block.bytesEqual(position, offset, expectedSliceValue, offset, 3)); // if your tests fail here, please change your test to not use this value assertFalse(block.bytesEqual(position, offset, Slices.utf8Slice("XXX"), 0, 3)); assertEquals(block.bytesCompare(position, offset, 3, expectedSliceValue, offset, 3), 0); assertTrue(block.bytesCompare(position, offset, 3, expectedSliceValue, offset, 2) > 0); Slice greaterSlice = createGreaterValue(expectedSliceValue, offset, 3); assertTrue(block.bytesCompare(position, offset, 3, greaterSlice, 0, greaterSlice.length()) < 0); assertTrue(block.equals(position, offset, expectedBlock, 0, offset, 3)); assertEquals(block.compareTo(position, offset, 3, expectedBlock, 0, offset, 3), 0); BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, 1); block.writeBytesTo(position, offset, 3, blockBuilder); blockBuilder.closeEntry(); Block segment = blockBuilder.build(); assertTrue(block.equals(position, offset, segment, 0, 0, 3)); } }
private Page buildPage() { BlockBuilder col1 = BIGINT.createBlockBuilder(null, 1); BlockBuilder col2 = DOUBLE.createBlockBuilder(null, 1); BlockBuilder col3 = VARBINARY.createBlockBuilder(null, 1); col1.writeLong(42).closeEntry(); col2.writeLong(doubleToLongBits(43.0)).closeEntry(); col3.writeLong(doubleToLongBits(43.0)).writeLong(1).closeEntry(); return new Page(col1.build(), col2.build(), col3.build()); } }
Block expectedBoolean = VARBINARY.createBlockBuilder(null, 1).writeByte(1).closeEntry().build(); Block actualBoolean = toBinaryBlock(BOOLEAN, true, getInspector(Boolean.class)); assertBlockEquals(actualBoolean, expectedBoolean); Block expectedByte = VARBINARY.createBlockBuilder(null, 1).writeByte(5).closeEntry().build(); Block actualByte = toBinaryBlock(TINYINT, (byte) 5, getInspector(Byte.class)); assertBlockEquals(actualByte, expectedByte); Block expectedShort = VARBINARY.createBlockBuilder(null, 1).writeShort(2).closeEntry().build(); Block actualShort = toBinaryBlock(SMALLINT, (short) 2, getInspector(Short.class)); assertBlockEquals(actualShort, expectedShort); Block expectedInt = VARBINARY.createBlockBuilder(null, 1).writeInt(1).closeEntry().build(); Block actualInt = toBinaryBlock(INTEGER, 1, getInspector(Integer.class)); assertBlockEquals(actualInt, expectedInt); Block expectedLong = VARBINARY.createBlockBuilder(null, 1).writeLong(10).closeEntry().build(); Block actualLong = toBinaryBlock(BIGINT, 10L, getInspector(Long.class)); assertBlockEquals(actualLong, expectedLong); Block expectedFloat = VARBINARY.createBlockBuilder(null, 1).writeInt(floatToRawIntBits(20.0f)).closeEntry().build(); Block actualFloat = toBinaryBlock(REAL, 20.0f, getInspector(Float.class)); assertBlockEquals(actualFloat, expectedFloat); Block expectedDouble = VARBINARY.createBlockBuilder(null, 1).writeLong(doubleToLongBits(30.12)).closeEntry().build(); Block actualDouble = toBinaryBlock(DOUBLE, 30.12d, getInspector(Double.class)); assertBlockEquals(actualDouble, expectedDouble); Block expectedString = VARBINARY.createBlockBuilder(null, 1).writeBytes(utf8Slice("abdd"), 0, 4).closeEntry().build();
public static Block createTestBlock() { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, 15); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("cherry")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("cherry")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("date")); return blockBuilder.build(); }
private static Block getPrimitiveBlock(com.facebook.presto.spi.type.Type type, Object object, ObjectInspector inspector) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 1); serializeObject(type, builder, object, inspector); return builder.build(); } }
private static Block getPrimitiveBlock(com.facebook.presto.spi.type.Type type, Object object, ObjectInspector inspector) { BlockBuilder builder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), 1); serializeObject(type, builder, object, inspector); return builder.build(); } }
private static Block toSingeValuedBlock(Slice expectedValue) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), 1, expectedValue.length()); VARBINARY.writeSlice(blockBuilder, expectedValue); return blockBuilder.build(); }
public static Block createSlicesBlock(Iterable<Slice> values) { BlockBuilder builder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), 100); for (Slice value : values) { if (value == null) { builder.appendNull(); } else { VARBINARY.writeSlice(builder, value); } } return builder.build(); }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), length); for (int i = 0; i < length; i++) { VARBINARY.writeSlice(blockBuilder, Slices.wrappedBuffer(Ints.toByteArray(i))); } return new Block[] {blockBuilder.build()}; }
Block expectedBoolean = VARBINARY.createBlockBuilder(null, 1).writeByte(1).closeEntry().build(); Block actualBoolean = toBinaryBlock(BOOLEAN, true, getInspector(Boolean.class)); assertBlockEquals(actualBoolean, expectedBoolean); Block expectedByte = VARBINARY.createBlockBuilder(null, 1).writeByte(5).closeEntry().build(); Block actualByte = toBinaryBlock(TINYINT, (byte) 5, getInspector(Byte.class)); assertBlockEquals(actualByte, expectedByte); Block expectedShort = VARBINARY.createBlockBuilder(null, 1).writeShort(2).closeEntry().build(); Block actualShort = toBinaryBlock(SMALLINT, (short) 2, getInspector(Short.class)); assertBlockEquals(actualShort, expectedShort); Block expectedInt = VARBINARY.createBlockBuilder(null, 1).writeInt(1).closeEntry().build(); Block actualInt = toBinaryBlock(INTEGER, 1, getInspector(Integer.class)); assertBlockEquals(actualInt, expectedInt); Block expectedLong = VARBINARY.createBlockBuilder(null, 1).writeLong(10).closeEntry().build(); Block actualLong = toBinaryBlock(BIGINT, 10L, getInspector(Long.class)); assertBlockEquals(actualLong, expectedLong); Block expectedFloat = VARBINARY.createBlockBuilder(null, 1).writeInt(floatToRawIntBits(20.0f)).closeEntry().build(); Block actualFloat = toBinaryBlock(REAL, 20.0f, getInspector(Float.class)); assertBlockEquals(actualFloat, expectedFloat); Block expectedDouble = VARBINARY.createBlockBuilder(null, 1).writeLong(doubleToLongBits(30.12)).closeEntry().build(); Block actualDouble = toBinaryBlock(DOUBLE, 30.12d, getInspector(Double.class)); assertBlockEquals(actualDouble, expectedDouble); Block expectedString = VARBINARY.createBlockBuilder(null, 1).writeBytes(utf8Slice("abdd"), 0, 4).closeEntry().build();
public static Block createTestBlock() { BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(new BlockBuilderStatus(), 15); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("apple")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("banana")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("cherry")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("cherry")); VARBINARY.writeSlice(blockBuilder, Slices.utf8Slice("date")); return blockBuilder.build(); }