src/java/org/apache/cassandra/db/ColumnFamilyStore.java
/**
     *  Filter a cached row, which will not be modified by the filter, but may be modified by throwing out
     *  tombstones that are no longer relevant.
     *  The returned column family won't be thread safe.
     */
Filter a cached row, which will not be modified by the filter, but may be modified by throwing out
tombstones that are no longer relevant.
The returned column family won't be thread safe.
Filter a cached row which will not be modified by the filter but may be modified by throwing out tombstones that are no longer relevant . The returned column family won ' t be thread safe .
ColumnFamily filterColumnFamily(ColumnFamily cached, QueryFilter filter, int gcBefore)
    {
        ColumnFamily cf = cached.cloneMeShallow(ArrayBackedSortedColumns.factory(), filter.filter.isReversed());
        IColumnIterator ci = filter.getMemtableColumnIterator(cached, null);
        filter.collateColumns(cf, Collections.singletonList(ci), gcBefore);
        return cf.isSuper() ? removeDeleted(cf, gcBefore) : removeDeletedCF(cf, gcBefore);
    }
ColumnFamily filterColumnFamily ( ColumnFamily cached , QueryFilter filter , int gcBefore ) { ColumnFamily cf = cached . cloneMeShallow ( ArrayBackedSortedColumns . factory ( ) , filter . filter . isReversed ( ) ) ; IColumnIterator ci = filter . getMemtableColumnIterator ( cached , null ) ; filter . collateColumns ( cf , Collections . singletonList ( ci ) , gcBefore ) ; return cf . isSuper ( ) ? removeDeleted ( cf , gcBefore ) : removeDeletedCF ( cf , gcBefore ) ; }
Filter a cached row, which will not be modified by the filter, but may be modified by throwing out
  tombstones that are no longer relevant.
Filter a cached row which will not be modified by the filter but may be modified by throwing out tombstones that are no longer relevant .
// TODO this is necessary because when we collate supercolumns together, we don't check // their subcolumns for relevance, so we need to do a second prune post facto here.