@Override public int getNumRows() { try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) { return column.length(); } }
@Override public int getDimensionCardinality(String dimension) { ColumnHolder columnHolder = index.getColumnHolder(dimension); if (columnHolder == null) { return 0; } try (BaseColumn col = columnHolder.getColumn()) { if (!(col instanceof DictionaryEncodedColumn)) { return Integer.MAX_VALUE; } return ((DictionaryEncodedColumn) col).getCardinality(); } catch (IOException e) { throw new UncheckedIOException(e); } }
final BaseColumn col = columnHolder.getColumn();
@Override public DateTime getMinTime() { try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) { return DateTimes.utc(column.getLongSingleValueRow(0)); } }
return null; BaseColumn col = columnHolder.getColumn(); if (!(col instanceof DictionaryEncodedColumn)) { return null;
@Override public DateTime getMaxTime() { try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) { return DateTimes.utc(column.getLongSingleValueRow(column.length() - 1)); } }
@Override public String getColumnTypeName(String columnName) { final ColumnHolder columnHolder = index.getColumnHolder(columnName); try (final BaseColumn col = columnHolder.getColumn()) { if (col instanceof ComplexColumn) { return ((ComplexColumn) col).getTypeName(); } else { return columnHolder.getCapabilities().getType().toString(); } } catch (IOException e) { throw new UncheckedIOException(e); } }
private void assertDimCompression(QueryableIndex index, CompressionStrategy expectedStrategy) throws Exception { // Java voodoo if (expectedStrategy == null || expectedStrategy == CompressionStrategy.UNCOMPRESSED) { return; } DictionaryEncodedColumn encodedColumn = (DictionaryEncodedColumn) index.getColumnHolder("dim2").getColumn(); Object obj; if (encodedColumn.hasMultipleValues()) { Field field = StringDictionaryEncodedColumn.class.getDeclaredField("multiValueColumn"); field.setAccessible(true); obj = field.get(encodedColumn); } else { Field field = StringDictionaryEncodedColumn.class.getDeclaredField("column"); field.setAccessible(true); obj = field.get(encodedColumn); } // CompressedVSizeColumnarIntsSupplier$CompressedByteSizeColumnarInts // CompressedVSizeColumnarMultiIntsSupplier$CompressedVSizeColumnarMultiInts Field compressedSupplierField = obj.getClass().getDeclaredField("this$0"); compressedSupplierField.setAccessible(true); Object supplier = compressedSupplierField.get(obj); Field compressionField = supplier.getClass().getDeclaredField("compression"); compressionField.setAccessible(true); Object strategy = compressionField.get(supplier); Assert.assertEquals(expectedStrategy, strategy); }
@Override public ColumnValueSelector<?> makeColumnValueSelector(String columnName) { if (virtualColumns.exists(columnName)) { return virtualColumns.makeColumnValueSelector(columnName, this); } BaseColumn column = columnCache.computeIfAbsent(columnName, name -> { ColumnHolder holder = index.getColumnHolder(name); if (holder != null) { return closer.register(holder.getColumn()); } else { return null; } }); if (column != null) { return column.makeColumnValueSelector(offset); } else { return NilColumnValueSelector.instance(); } }
@Override public String getMetricType(String metric) { final ColumnHolder columnHolder = input.getColumnHolder(metric); final ValueType type = columnHolder.getCapabilities().getType(); switch (type) { case FLOAT: return "float"; case LONG: return "long"; case DOUBLE: return "double"; case COMPLEX: { try (ComplexColumn complexColumn = (ComplexColumn) columnHolder.getColumn()) { return complexColumn.getTypeName(); } } default: throw new ISE("Unknown type[%s]", type); } }
try (final ComplexColumn complexColumn = columnHolder != null ? (ComplexColumn) columnHolder.getColumn() : null) { final boolean hasMultipleValues = capabilities != null && capabilities.hasMultipleValues(); long size = 0;
final NumericColumn timestamps = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn();
(DictionaryEncodedColumn<String>) columnHolder.getColumn()) {
BaseColumn col = columnHolder.getColumn(); if (col instanceof DictionaryEncodedColumn) { return closer.register(col);
final MutableBitmap timeBitmap = bitmapFactory.makeEmptyMutableBitmap(); final ColumnHolder timeColumnHolder = index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME); try (final NumericColumn timeValues = (NumericColumn) timeColumnHolder.getColumn()) {
ComplexColumn complexColumn = (ComplexColumn) columnHolder.getColumn(); HyperLogLogCollector collector = HyperLogLogCollector.makeLatestCollector();
@Override public int getNumRows() { try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) { return column.length(); } }
@Override public DateTime getMinTime() { try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) { return DateTimes.utc(column.getLongSingleValueRow(0)); } }
@Override public DateTime getMaxTime() { try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) { return DateTimes.utc(column.getLongSingleValueRow(column.length() - 1)); } }
@Override public String getColumnTypeName(String columnName) { final ColumnHolder columnHolder = index.getColumnHolder(columnName); try (final BaseColumn col = columnHolder.getColumn()) { if (col instanceof ComplexColumn) { return ((ComplexColumn) col).getTypeName(); } else { return columnHolder.getCapabilities().getType().toString(); } } catch (IOException e) { throw new UncheckedIOException(e); } }