VSizeColumnarMultiInts.fromIterable(Iterables.transform(rows, input -> VSizeColumnarInts.fromArray(input, 20))) ); this.uncompressed = VSizeColumnarMultiInts.readFromByteBuffer(bufferUncompressed);
private WritableSupplier<ColumnarMultiInts> readMultiValuedColumn(VERSION version, ByteBuffer buffer, int flags) { switch (version) { case UNCOMPRESSED_MULTI_VALUE: { return VSizeColumnarMultiInts.readFromByteBuffer(buffer); } case UNCOMPRESSED_WITH_FLAGS: { if (Feature.MULTI_VALUE.isSet(flags)) { return VSizeColumnarMultiInts.readFromByteBuffer(buffer); } else { throw new IAE("Unrecognized multi-value flag[%d] for version[%s]", flags, version); } } case COMPRESSED: { if (Feature.MULTI_VALUE.isSet(flags)) { return CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(buffer, byteOrder); } else if (Feature.MULTI_VALUE_V3.isSet(flags)) { return V3CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(buffer, byteOrder); } else { throw new IAE("Unrecognized multi-value flag[%d] for version[%s]", flags, version); } } default: throw new IAE("Unsupported multi-value version[%s]", version); } } };
dimColumns.put(dimension, VSizeColumnarMultiInts.readFromByteBuffer(dimBuffer));
@Test public void testSanity() throws Exception { List<int[]> someInts = Arrays.asList( new int[]{1, 2, 3, 4, 5}, new int[]{6, 7, 8, 9, 10}, new int[]{11, 12, 13, 14, 15, 16, 17, 18, 19, 20} ); VSizeColumnarMultiInts indexed = VSizeColumnarMultiInts.fromIterable( Iterables.transform( someInts, new Function<int[], VSizeColumnarInts>() { @Override public VSizeColumnarInts apply(int[] input) { return VSizeColumnarInts.fromArray(input, 20); } } ) ); assertSame(someInts, indexed); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); indexed.writeTo(Channels.newChannel(baos), null); final byte[] bytes = baos.toByteArray(); Assert.assertEquals(indexed.getSerializedSize(), bytes.length); VSizeColumnarMultiInts deserializedIndexed = VSizeColumnarMultiInts.readFromByteBuffer(ByteBuffer.wrap(bytes)); assertSame(someInts, deserializedIndexed); }
private WritableSupplier<ColumnarMultiInts> readMultiValuedColumn( VERSION version, ByteBuffer buffer, int flags ) { switch (version) { case UNCOMPRESSED_MULTI_VALUE: { return VSizeColumnarMultiInts.readFromByteBuffer(buffer); } case UNCOMPRESSED_WITH_FLAGS: { if (Feature.MULTI_VALUE.isSet(flags)) { return VSizeColumnarMultiInts.readFromByteBuffer(buffer); } else { throw new IAE("Unrecognized multi-value flag[%d] for version[%s]", flags, version); } } case COMPRESSED: { if (Feature.MULTI_VALUE.isSet(flags)) { return CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(buffer, byteOrder); } else if (Feature.MULTI_VALUE_V3.isSet(flags)) { return V3CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(buffer, byteOrder); } else { throw new IAE("Unrecognized multi-value flag[%d] for version[%s]", flags, version); } } default: throw new IAE("Unsupported multi-value version[%s]", version); } } };
dimColumns.put(dimension, VSizeColumnarMultiInts.readFromByteBuffer(dimBuffer));