Class ComplexColumnData

java.lang.Object
org.apache.cassandra.db.rows.ColumnData
org.apache.cassandra.db.rows.ComplexColumnData
All Implemented Interfaces:
Iterable<Cell<?>>, IMeasurableMemory

public class ComplexColumnData extends ColumnData implements Iterable<Cell<?>>
The data for a complex column, that is it's cells and potential complex deletion time.
  • Method Details

    • cellsCount

      public int cellsCount()
    • getCell

      public Cell<?> getCell(CellPath path)
    • getCellByIndex

      public Cell<?> getCellByIndex(int idx)
    • complexDeletion

      public DeletionTime complexDeletion()
      The complex deletion time of the complex column.

      The returned "complex deletion" is a deletion of all the cells of the column. For instance, for a collection, this correspond to a full collection deletion. Please note that this deletion says nothing about the individual cells of the complex column: there can be no complex deletion but some of the individual cells can be deleted.

      Returns:
      the complex deletion time for the column this is the data of or DeletionTime.LIVE if the column is not deleted.
    • iterator

      public Iterator<Cell<?>> iterator()
      Specified by:
      iterator in interface Iterable<Cell<?>>
    • searchIterator

      public SearchIterator<CellPath,Cell> searchIterator()
    • reverseIterator

      public Iterator<Cell<?>> reverseIterator()
    • accumulate

      public long accumulate(LongAccumulator<Cell<?>> accumulator, long initialValue)
    • accumulate

      public <A> long accumulate(BiLongAccumulator<A,Cell<?>> accumulator, A arg, long initialValue)
    • dataSize

      public int dataSize()
      Description copied from class: ColumnData
      The size of the data hold by this ColumnData.
      Specified by:
      dataSize in class ColumnData
      Returns:
      the size used by the data of this ColumnData.
    • unsharedHeapSize

      public long unsharedHeapSize()
      Specified by:
      unsharedHeapSize in interface IMeasurableMemory
      Specified by:
      unsharedHeapSize in class ColumnData
      Returns:
      the amount of on-heap memory retained by the object that might be reclaimed if the object were reclaimed, i.e. it should try to exclude globally cached data where possible, or counting portions of arrays that are referenced by the object but used by other objects only (e.g. slabbed byte-buffers), etc.
    • unsharedHeapSizeExcludingData

      public long unsharedHeapSizeExcludingData()
      Specified by:
      unsharedHeapSizeExcludingData in class ColumnData
    • validate

      public void validate()
      Description copied from class: ColumnData
      Validate the column data.
      Specified by:
      validate in class ColumnData
    • digest

      public void digest(Digest digest)
      Description copied from class: ColumnData
      Adds the data to the provided digest.
      Specified by:
      digest in class ColumnData
      Parameters:
      digest - the Digest to add the data to.
    • hasInvalidDeletions

      public boolean hasInvalidDeletions()
      Description copied from class: ColumnData
      Validates the deletions (ttl and local deletion time) if any.
      Specified by:
      hasInvalidDeletions in class ColumnData
      Returns:
      true if it has any invalid deletions, false otherwise
    • markCounterLocalToBeCleared

      public ComplexColumnData markCounterLocalToBeCleared()
      Specified by:
      markCounterLocalToBeCleared in class ColumnData
    • filter

      public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, DroppedColumn dropped, LivenessInfo rowLiveness)
    • purge

      public ComplexColumnData purge(DeletionPurger purger, long nowInSec)
      Specified by:
      purge in class ColumnData
    • withOnlyQueriedData

      public ComplexColumnData withOnlyQueriedData(ColumnFilter filter)
    • purgeDataOlderThan

      public ComplexColumnData purgeDataOlderThan(long timestamp)
      Specified by:
      purgeDataOlderThan in class ColumnData
    • transformAndFilter

      public ComplexColumnData transformAndFilter(com.google.common.base.Function<? super Cell<?>,? extends Cell<?>> function)
    • transformAndFilter

      public ComplexColumnData transformAndFilter(DeletionTime newDeletion, com.google.common.base.Function<? super Cell,? extends Cell> function)
    • transform

      public <V> ComplexColumnData transform(com.google.common.base.Function<? super Cell<?>,? extends Cell<?>> function)
    • clone

      public ColumnData clone(Cloner cloner)
      Specified by:
      clone in class ColumnData
    • updateAllTimestamp

      public ComplexColumnData updateAllTimestamp(long newTimestamp)
      Description copied from class: ColumnData
      Returns a copy of the data where all timestamps for live data have replaced by newTimestamp and all deletion timestamp by newTimestamp - 1. This exists for the Paxos path, see PartitionUpdate#updateAllTimestamp for additional details.
      Specified by:
      updateAllTimestamp in class ColumnData
    • maxTimestamp

      public long maxTimestamp()
      Specified by:
      maxTimestamp in class ColumnData
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • unsafeConstruct

      public static ComplexColumnData unsafeConstruct(ColumnMetadata column, Object[] cells, DeletionTime complexDeletion)
    • builder

      public static ComplexColumnData.Builder builder()