Interface UnfilteredRowIterator

All Superinterfaces:
AutoCloseable, BaseRowIterator<Unfiltered>, CloseableIterator<Unfiltered>, Iterator<Unfiltered>
All Known Subinterfaces:
WrappingUnfilteredRowIterator
All Known Implementing Classes:
AbstractSSTableIterator, AbstractUnfilteredRowIterator, CassandraStreamReader.StreamDeserializer, LazilyInitializedUnfilteredRowIterator, RowAndDeletionMergeIterator, SSTableIdentityIterator, SSTableIterator, SSTableReversedIterator, UnfilteredRowIteratorWithLowerBound

public interface UnfilteredRowIterator extends BaseRowIterator<Unfiltered>
An iterator over the rows of a given partition that also includes deletion informations.

An UnfilteredRowIterator contains a few partition top-level informations and is an iterator of Unfiltered, that is of either Row or RangeTombstoneMarker. An implementation of UnfilteredRowIterator must provide the following guarantees: 1. the returned Unfiltered must be in clustering order, or in reverse clustering order iff BaseRowIterator.isReverseOrder() returns true. 2. the iterator should not shadow its own data. That is, no deletion (partition level deletion, row deletion, range tombstone, complex deletion) should delete anything else returned by the iterator (cell, row, ...). 3. every "start" range tombstone marker should have a corresponding "end" marker, and no other marker should be in-between this start-end pair of marker. Note that due to the previous rule this means that between a "start" and a corresponding "end" marker there can only be rows that are not deleted by the markers. Also note that when iterating in reverse order, "end" markers are returned before their "start" counterpart (i.e. "start" and "end" are always in the sense of the clustering order). Note further that the objects returned by next() are only valid until the next call to hasNext() or next(). If a consumer wants to keep a reference on the returned objects for longer than the iteration, it must make a copy of it explicitly.

  • Method Details

    • partitionLevelDeletion

      DeletionTime partitionLevelDeletion()
      The partition level deletion for the partition this iterate over.
    • stats

      EncodingStats stats()
      Return "statistics" about what is returned by this iterator. Those are used for performance reasons (for delta-encoding for instance) and code should not expect those to be exact.
    • isEmpty

      default boolean isEmpty()
      Returns whether this iterator has no data (including no deletion data).
      Specified by:
      isEmpty in interface BaseRowIterator<Unfiltered>