/** Returns true if a non-frozen collection is selected, false otherwise. */ private boolean selectACollection() { if (!cfm.comparator.hasCollections()) return false; for (ColumnDefinition def : selection.getColumns()) { if (def.type.isCollection() && def.type.isMultiCell()) return true; } return false; }
if (metadata.comparator.hasCollections() && composite.size() == metadata.comparator.size())
if (cfm.comparator.hasCollections())
public Row getRowWithMetaColumn(ByteBuffer metaColumnValue) { if (isMetaColumn) { ColumnFamily cleanColumnFamily = ArrayBackedSortedColumns.factory.create(table.metadata); CellNameType cellNameType = table.getComparator(); boolean hasCollections = cellNameType.hasCollections(); int prefixSize = cellNameType.size() - (hasCollections ? 2 : 1); CBuilder builder = cellNameType.builder(); for (int i = 0; i < prefixSize; i++) { AbstractType<?> type = cellNameType.subtype(i); builder.add(Fields.defaultValue(type)); } Composite prefix = builder.build(); Iterable<ColumnDefinition> cols = table.metadata.regularAndStaticColumns(); for (ColumnDefinition columnDef : cols) { if (columnDef.equals(primaryColumnDefinition)) { addColumn(table, cleanColumnFamily, primaryColumnDefinition, prefix, metaColumnValue); } else { addColumn(table, cleanColumnFamily, columnDef, prefix, Fields.defaultValue(columnDef.type)); } } DecoratedKey dk = table.partitioner.decorateKey(defaultPartitionKey); return new Row(dk, cleanColumnFamily); } else { return null; } }