Package org.apache.cassandra.db.rows
Class ComplexColumnData
- java.lang.Object
-
- org.apache.cassandra.db.rows.ColumnData
-
- org.apache.cassandra.db.rows.ComplexColumnData
-
- All Implemented Interfaces:
java.lang.Iterable<Cell<?>>
public class ComplexColumnData extends ColumnData implements java.lang.Iterable<Cell<?>>
The data for a complex column, that is it's cells and potential complex deletion time.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ComplexColumnData.Builder
-
Field Summary
-
Fields inherited from class org.apache.cassandra.db.rows.ColumnData
column, comparator
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <A> long
accumulate(BiLongAccumulator<A,Cell<?>> accumulator, A arg, long initialValue)
long
accumulate(LongAccumulator<Cell<?>> accumulator, long initialValue)
static ComplexColumnData.Builder
builder()
int
cellsCount()
DeletionTime
complexDeletion()
The complex deletion time of the complex column.int
dataSize()
The size of the data hold by thisColumnData
.void
digest(Digest digest)
Adds the data to the provided digest.boolean
equals(java.lang.Object other)
ComplexColumnData
filter(ColumnFilter filter, DeletionTime activeDeletion, DroppedColumn dropped, LivenessInfo rowLiveness)
Cell<?>
getCell(CellPath path)
Cell<?>
getCellByIndex(int idx)
int
hashCode()
boolean
hasInvalidDeletions()
Validates the deletions (ttl and local deletion time) if any.java.util.Iterator<Cell<?>>
iterator()
ComplexColumnData
markCounterLocalToBeCleared()
long
maxTimestamp()
ComplexColumnData
purge(DeletionPurger purger, int nowInSec)
java.util.Iterator<Cell<?>>
reverseIterator()
long
unsharedHeapSizeExcludingData()
ComplexColumnData
updateAllTimestamp(long newTimestamp)
Returns a copy of the data where all timestamps for live data have replaced bynewTimestamp
and all deletion timestamp bynewTimestamp - 1
.void
validate()
Validate the column data.ComplexColumnData
withOnlyQueriedData(ColumnFilter filter)
-
Methods inherited from class org.apache.cassandra.db.rows.ColumnData
column, digest
-
-
-
-
Method Detail
-
cellsCount
public int cellsCount()
-
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 java.util.Iterator<Cell<?>> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<Cell<?>>
-
reverseIterator
public java.util.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 thisColumnData
.- Specified by:
dataSize
in classColumnData
- Returns:
- the size used by the data of this
ColumnData
.
-
unsharedHeapSizeExcludingData
public long unsharedHeapSizeExcludingData()
- Specified by:
unsharedHeapSizeExcludingData
in classColumnData
-
validate
public void validate()
Description copied from class:ColumnData
Validate the column data.- Specified by:
validate
in classColumnData
-
digest
public void digest(Digest digest)
Description copied from class:ColumnData
Adds the data to the provided digest.- Specified by:
digest
in classColumnData
- Parameters:
digest
- theDigest
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 classColumnData
- Returns:
- true if it has any invalid deletions, false otherwise
-
markCounterLocalToBeCleared
public ComplexColumnData markCounterLocalToBeCleared()
- Specified by:
markCounterLocalToBeCleared
in classColumnData
-
filter
public ComplexColumnData filter(ColumnFilter filter, DeletionTime activeDeletion, DroppedColumn dropped, LivenessInfo rowLiveness)
-
purge
public ComplexColumnData purge(DeletionPurger purger, int nowInSec)
- Specified by:
purge
in classColumnData
-
withOnlyQueriedData
public ComplexColumnData withOnlyQueriedData(ColumnFilter filter)
-
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 bynewTimestamp
and all deletion timestamp bynewTimestamp - 1
. This exists for the Paxos path, seePartitionUpdate#updateAllTimestamp
for additional details.- Specified by:
updateAllTimestamp
in classColumnData
-
maxTimestamp
public long maxTimestamp()
- Specified by:
maxTimestamp
in classColumnData
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
builder
public static ComplexColumnData.Builder builder()
-
-