private ColumnFilter makeColumnFilter(CFMetaData metadata, ColumnParent parent, SliceRange range) { if (metadata.isSuper() && parent.isSetSuper_column()) { // We want a slice of the dynamic columns ColumnFilter.Builder builder = ColumnFilter.selectionBuilder(); ColumnDefinition def = metadata.compactValueColumn(); ByteBuffer start = range.reversed ? range.finish : range.start; ByteBuffer finish = range.reversed ? range.start : range.finish; builder.slice(def, start.hasRemaining() ? CellPath.create(start) : CellPath.BOTTOM, finish.hasRemaining() ? CellPath.create(finish) : CellPath.TOP); if (metadata.isDense()) return builder.build(); // We also want to add any staticly defined column if it's within the range AbstractType<?> cmp = metadata.thriftColumnNameType(); for (ColumnDefinition column : metadata.partitionColumns()) { if (SuperColumnCompatibility.isSuperColumnMapColumn(column)) continue; ByteBuffer name = column.name.bytes; if (cmp.compare(name, start) < 0 || cmp.compare(finish, name) > 0) continue; builder.add(column); } return builder.build(); } return makeColumnFilter(metadata, makeSlices(metadata, range)); }
private ColumnFilter makeColumnFilter(CFMetaData metadata, ColumnParent parent, SliceRange range) { if (metadata.isSuper() && parent.isSetSuper_column()) { // We want a slice of the dynamic columns ColumnFilter.Builder builder = ColumnFilter.selectionBuilder(); ColumnDefinition def = metadata.compactValueColumn(); ByteBuffer start = range.reversed ? range.finish : range.start; ByteBuffer finish = range.reversed ? range.start : range.finish; builder.slice(def, start.hasRemaining() ? CellPath.create(start) : CellPath.BOTTOM, finish.hasRemaining() ? CellPath.create(finish) : CellPath.TOP); if (metadata.isDense()) return builder.build(); // We also want to add any staticly defined column if it's within the range AbstractType<?> cmp = metadata.thriftColumnNameType(); for (ColumnDefinition column : metadata.partitionColumns()) { if (SuperColumnCompatibility.isSuperColumnMapColumn(column)) continue; ByteBuffer name = column.name.bytes; if (cmp.compare(name, start) < 0 || cmp.compare(finish, name) > 0) continue; builder.add(column); } return builder.build(); } return makeColumnFilter(metadata, makeSlices(metadata, range)); }
ByteBuffer end = slice.hasBound(Bound.END) ? slice.bound(Bound.END).bindAndGet(queryOptions) : null; builder.slice(cfm.compactValueColumn(), start == null ? CellPath.BOTTOM : CellPath.create(start), end == null ? CellPath.TOP : CellPath.create(end));
ByteBuffer end = slice.hasBound(Bound.END) ? slice.bound(Bound.END).bindAndGet(queryOptions) : null; builder.slice(cfm.compactValueColumn(), start == null ? CellPath.BOTTOM : CellPath.create(start), end == null ? CellPath.TOP : CellPath.create(end));
ByteBuffer end = slice.hasBound(Bound.END) ? slice.bound(Bound.END).bindAndGet(queryOptions) : null; builder.slice(cfm.compactValueColumn(), start == null ? CellPath.BOTTOM : CellPath.create(start), end == null ? CellPath.TOP : CellPath.create(end));