public class RowIteratorMergeListener<E extends Endpoints<E>> extends java.lang.Object implements UnfilteredRowIterators.MergeListener
NOOP| Constructor and Description |
|---|
RowIteratorMergeListener(DecoratedKey partitionKey,
RegularAndStaticColumns columns,
boolean isReversed,
ReplicaPlan.ForRead<E> replicaPlan,
ReadCommand command,
ReadRepair readRepair) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
onMergedPartitionLevelDeletion(DeletionTime mergedDeletion,
DeletionTime[] versions)
Called once for the merged partition.
|
void |
onMergedRangeTombstoneMarkers(RangeTombstoneMarker merged,
RangeTombstoneMarker[] versions)
Called once for every range tombstone marker participating in the merge.
|
void |
onMergedRows(Row merged,
Row[] versions)
Called once for every row participating in the merge.
|
public RowIteratorMergeListener(DecoratedKey partitionKey, RegularAndStaticColumns columns, boolean isReversed, ReplicaPlan.ForRead<E> replicaPlan, ReadCommand command, ReadRepair readRepair)
public void onMergedPartitionLevelDeletion(DeletionTime mergedDeletion, DeletionTime[] versions)
UnfilteredRowIterators.MergeListeneronMergedPartitionLevelDeletion in interface UnfilteredRowIterators.MergeListenermergedDeletion - the partition level deletion for the merged partition. Implementors can test if the
merged partition actually has a partition level deletion or not by calling mergedDeletion.isLive().versions - the partition level deletion for the sources of the merge. Elements of the array will never
be null, but be "live".public void onMergedRows(Row merged, Row[] versions)
UnfilteredRowIterators.MergeListenerNote that this is called for every clustering where at least one of the source merged has a row. In particular, this may be called in cases where there is no row in the merged output (if a source has a row that is shadowed by another source range tombstone or partition level deletion).
onMergedRows in interface UnfilteredRowIterators.MergeListenermerged - the result of the merge. This cannot be null but can be empty, in which case this is a
placeholder for when at least one source has a row, but that row is shadowed in the merged output.versions - for each source, the row in that source corresponding to merged. This can be
null for some sources if the source has not such row.public void onMergedRangeTombstoneMarkers(RangeTombstoneMarker merged, RangeTombstoneMarker[] versions)
UnfilteredRowIterators.MergeListenerNote that this is called for every "clustering position" where at least one of the source merged has a range tombstone marker.
onMergedRangeTombstoneMarkers in interface UnfilteredRowIterators.MergeListenermerged - the marker in the merged output. This can be null if there is no such marker, which
means that at least one source has a marker in versions but the merged out has nothing corresponding
(this basically mean the merged output has a currently open deletion that shadows whatever marker the source
had).versions - the marker for each source merged. This can be null for some source if that source
has not such marker.public void close()
close in interface UnfilteredRowIterators.MergeListenerCopyright © 2009-2019 The Apache Software Foundation