Suppliers.memoize(() -> { final ColumnLoader loader = new ColumnLoader<>(typeFactory, source, protoRowType, repList); final List<RelCollation> collation2 = : collations; return new ArrayTable.Content(loader.representationValues, loader.size(), collation2); }));
return new ArrayTable.Constant(ordinal); final int bitCountMax = log2(nextPowerOf2(abs2(max) + 1)); int bitCount; // 1 for sign boolean signed; } else { signed = true; int bitCountMin = log2(nextPowerOf2(abs2(min) + 1)); bitCount = Math.max(bitCountMin, bitCountMax) + 1;
wrap( repList.get(pair.i), sliceList, if (isIdentity(sources)) {
new Object[]{160, 10, "Theodore"})); final ColumnLoader<Object[]> loader = new ColumnLoader<Object[]>(typeFactory, enumerable, RelDataTypeImpl.proto(rowType), null); checkColumn(
@Test public void testNextPowerOf2() { assertEquals(1, ColumnLoader.nextPowerOf2(1)); assertEquals(2, ColumnLoader.nextPowerOf2(2)); assertEquals(4, ColumnLoader.nextPowerOf2(3)); assertEquals(4, ColumnLoader.nextPowerOf2(4)); assertEquals(0x40000000, ColumnLoader.nextPowerOf2(0x3456789a)); assertEquals(0x40000000, ColumnLoader.nextPowerOf2(0x40000000)); // overflow assertEquals(0x80000000, ColumnLoader.nextPowerOf2(0x7fffffff)); assertEquals(0x80000000, ColumnLoader.nextPowerOf2(0x7ffffffe)); }
@Test public void testLog2() { assertEquals(0, ColumnLoader.log2(0)); assertEquals(0, ColumnLoader.log2(1)); assertEquals(1, ColumnLoader.log2(2)); assertEquals(2, ColumnLoader.log2(4)); assertEquals(16, ColumnLoader.log2(65536)); assertEquals(15, ColumnLoader.log2(65535)); assertEquals(16, ColumnLoader.log2(65537)); assertEquals(30, ColumnLoader.log2(Integer.MAX_VALUE)); assertEquals(30, ColumnLoader.log2(Integer.MAX_VALUE - 1)); assertEquals(29, ColumnLoader.log2(0x3fffffff)); assertEquals(30, ColumnLoader.log2(0x40000000)); }
/** Creates a column loader, and performs the load. * * @param typeFactory Type factory * @param sourceTable Source data * @param protoRowType Logical row type * @param repList Physical row types, or null if not known */ ColumnLoader(JavaTypeFactory typeFactory, Enumerable<T> sourceTable, RelProtoDataType protoRowType, List<ColumnMetaData.Rep> repList) { this.typeFactory = typeFactory; final RelDataType rowType = protoRowType.apply(typeFactory); if (repList == null) { repList = Collections.nCopies(rowType.getFieldCount(), ColumnMetaData.Rep.OBJECT); } sourceTable.into(list); final int[] sorts = {-1}; load(rowType, repList, sorts); this.sortField = sorts[0]; }
new Object[]{160, 10, "Theodore"})); final ColumnLoader<Object[]> loader = new ColumnLoader<Object[]>(typeFactory, enumerable, RelDataTypeImpl.proto(rowType), null); checkColumn(
@Test public void testNextPowerOf2() { assertEquals(1, ColumnLoader.nextPowerOf2(1)); assertEquals(2, ColumnLoader.nextPowerOf2(2)); assertEquals(4, ColumnLoader.nextPowerOf2(3)); assertEquals(4, ColumnLoader.nextPowerOf2(4)); assertEquals(0x40000000, ColumnLoader.nextPowerOf2(0x3456789a)); assertEquals(0x40000000, ColumnLoader.nextPowerOf2(0x40000000)); // overflow assertEquals(0x80000000, ColumnLoader.nextPowerOf2(0x7fffffff)); assertEquals(0x80000000, ColumnLoader.nextPowerOf2(0x7ffffffe)); }
@Test public void testLog2() { assertEquals(0, ColumnLoader.log2(0)); assertEquals(0, ColumnLoader.log2(1)); assertEquals(1, ColumnLoader.log2(2)); assertEquals(2, ColumnLoader.log2(4)); assertEquals(16, ColumnLoader.log2(65536)); assertEquals(15, ColumnLoader.log2(65535)); assertEquals(16, ColumnLoader.log2(65537)); assertEquals(30, ColumnLoader.log2(Integer.MAX_VALUE)); assertEquals(30, ColumnLoader.log2(Integer.MAX_VALUE - 1)); assertEquals(29, ColumnLoader.log2(0x3fffffff)); assertEquals(30, ColumnLoader.log2(0x40000000)); }
/** Creates a column loader, and performs the load. * * @param typeFactory Type factory * @param sourceTable Source data * @param protoRowType Logical row type * @param repList Physical row types, or null if not known */ ColumnLoader(JavaTypeFactory typeFactory, Enumerable<T> sourceTable, RelProtoDataType protoRowType, List<ColumnMetaData.Rep> repList) { this.typeFactory = typeFactory; final RelDataType rowType = protoRowType.apply(typeFactory); if (repList == null) { repList = Collections.nCopies(rowType.getFieldCount(), ColumnMetaData.Rep.OBJECT); } sourceTable.into(list); final int[] sorts = {-1}; load(rowType, repList, sorts); this.sortField = sorts[0]; }
return new ArrayTable.Constant(ordinal); final int bitCountMax = log2(nextPowerOf2(abs2(max) + 1)); int bitCount; // 1 for sign boolean signed; } else { signed = true; int bitCountMin = log2(nextPowerOf2(abs2(min) + 1)); bitCount = Math.max(bitCountMin, bitCountMax) + 1;
Suppliers.memoize(() -> { final ColumnLoader loader = new ColumnLoader<>(typeFactory, source, protoRowType, repList); final List<RelCollation> collation2 = : collations; return new ArrayTable.Content(loader.representationValues, loader.size(), collation2); }));
new Object[]{10, 160, "Theodore"})); final ColumnLoader<Object[]> loader = new ColumnLoader<Object[]>(typeFactory, enumerable, RelDataTypeImpl.proto(rowType), null);
wrap( repList.get(pair.i), sliceList, if (isIdentity(sources)) {
final int codeBitCount = log2(nextPowerOf2(codeCount)); if (codeBitCount < 10 && values.size() > 2000) { final ArrayTable.Representation representation =
new Object[]{10, 160, "Theodore"})); final ColumnLoader<Object[]> loader = new ColumnLoader<Object[]>(typeFactory, enumerable, RelDataTypeImpl.proto(rowType), null);
final int codeBitCount = log2(nextPowerOf2(codeCount)); if (codeBitCount < 10 && values.size() > 2000) { final ArrayTable.Representation representation =