@Override public IndexedInts getMultiValueRow(int rowNum) { return multiValueColumn.get(rowNum); }
@Override public int length() { return hasMultipleValues() ? multiValueColumn.size() : column.size(); }
@Override public void close() throws IOException { CloseQuietly.close(cachedLookups); if (column != null) { column.close(); } if (multiValueColumn != null) { multiValueColumn.close(); } } }
private void assertSame(List<int[]> someInts, ColumnarMultiInts columnarMultiInts) { Assert.assertEquals(someInts.size(), columnarMultiInts.size()); for (int i = 0; i < columnarMultiInts.size(); ++i) { final int[] ints = someInts.get(i); final IndexedInts vSizeIndexedInts = columnarMultiInts.get(i); Assert.assertEquals(ints.length, vSizeIndexedInts.size()); for (int j = 0; j < ints.length; j++) { Assert.assertEquals(ints[j], vSizeIndexedInts.get(j)); } } }
@Test public void testIterators() { Iterator<IndexedInts> iterator = columnarMultiIntsSupplier.get().iterator(); int row = 0; while (iterator.hasNext()) { final int[] ints = vals.get(row); final IndexedInts vSizeIndexedInts = iterator.next(); Assert.assertEquals(ints.length, vSizeIndexedInts.size()); for (int i = 0, size = vSizeIndexedInts.size(); i < size; i++) { Assert.assertEquals(ints[i], vSizeIndexedInts.get(i)); } row++; } }
V3CompressedVSizeColumnarMultiIntsSupplier.fromByteBuffer(mapper.mapFile("test"), byteOrder); ColumnarMultiInts columnarMultiInts = supplierFromByteBuffer.get(); assertEquals(columnarMultiInts.size(), vals.size()); for (int i = 0; i < vals.size(); ++i) { IndexedInts subVals = columnarMultiInts.get(i); assertEquals(subVals.size(), vals.get(i).length); for (int j = 0, size = subVals.size(); j < size; ++j) {
@Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) public void uncompressed(Blackhole blackhole) { for (int i = filter.nextSetBit(0); i >= 0; i = filter.nextSetBit(i + 1)) { IndexedInts row = uncompressed.get(i); for (int j = 0, rowSize = row.size(); j < rowSize; j++) { blackhole.consume(row.get(j)); } } }
@Override public int length() { return hasMultipleValues() ? multiValueColumn.size() : column.size(); }
@Override public void close() throws IOException { CloseQuietly.close(cachedLookups); if (column != null) { column.close(); } if (multiValueColumn != null) { multiValueColumn.close(); } } }
@Benchmark @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) public void compressed(Blackhole blackhole) { for (int i = filter.nextSetBit(0); i >= 0; i = filter.nextSetBit(i + 1)) { IndexedInts row = compressed.get(i); for (int j = 0, rowSize = row.size(); j < rowSize; j++) { blackhole.consume(row.get(j)); } } } }
@Test(expected = IllegalArgumentException.class) public void testGetInvalidElementInRow() { columnarMultiIntsSupplier.get().get(3).get(15); }
@Override public IndexedInts getMultiValueRow(int rowNum) { return multiValueColumn.get(rowNum); }