Class TableViews

java.lang.Object
java.util.AbstractCollection<View>
org.apache.cassandra.db.view.TableViews
All Implemented Interfaces:
Iterable<View>, Collection<View>

public class TableViews extends AbstractCollection<View>
Groups all the views for a given table.
  • Constructor Details

    • TableViews

      public TableViews(TableId id)
  • Method Details

    • hasViews

      public boolean hasViews()
    • size

      public int size()
      Specified by:
      size in interface Collection<View>
      Specified by:
      size in class AbstractCollection<View>
    • iterator

      public Iterator<View> iterator()
      Specified by:
      iterator in interface Collection<View>
      Specified by:
      iterator in interface Iterable<View>
      Specified by:
      iterator in class AbstractCollection<View>
    • contains

      public boolean contains(String viewName)
    • add

      public boolean add(View view)
      Specified by:
      add in interface Collection<View>
      Overrides:
      add in class AbstractCollection<View>
    • allViewsCfs

      public Iterable<ColumnFamilyStore> allViewsCfs()
    • build

      public void build()
    • stopBuild

      public void stopBuild()
    • forceBlockingFlush

      public void forceBlockingFlush(ColumnFamilyStore.FlushReason reason)
    • dumpMemtables

      public void dumpMemtables()
    • truncateBlocking

      public void truncateBlocking(CommitLogPosition replayAfter, long truncatedAt)
    • removeByName

      public void removeByName(String viewName)
    • pushViewReplicaUpdates

      public void pushViewReplicaUpdates(PartitionUpdate update, boolean writeCommitLog, AtomicLong baseComplete)
      Calculates and pushes updates to the views replicas. The replicas are determined by ViewUtils#getViewNaturalEndpoint(String, Token, Token).
      Parameters:
      update - an update on the base table represented by this object.
      writeCommitLog - whether we should write the commit log for the view updates.
      baseComplete - time from epoch in ms that the local base mutation was (or will be) completed
    • generateViewUpdates

      public Iterator<Collection<Mutation>> generateViewUpdates(Collection<View> views, UnfilteredRowIterator updates, UnfilteredRowIterator existings, long nowInSec, boolean separateUpdates)
      Given some updates on the base table of this object and the existing values for the rows affected by that update, generates the mutation to be applied to the provided views.
      Parameters:
      views - the views potentially affected by updates.
      updates - the base table updates being applied.
      existings - the existing values for the rows affected by updates. This is used to decide if a view is obsoleted by the update and should be removed, gather the values for columns that may not be part of the update if a new view entry needs to be created, and compute the minimal updates to be applied if the view entry isn't changed but has simply some updated values. This will be empty for view building as we want to assume anything we'll pass to updates is new.
      nowInSec - the current time in seconds.
      separateUpdates - if false, mutation is per partition.
      Returns:
      the mutations to apply to the views. This can be empty.
    • updatedViews

      public Collection<View> updatedViews(PartitionUpdate updates)
      Return the views that are potentially updated by the provided updates.
      Parameters:
      updates - the updates applied to the base table.
      Returns:
      the views affected by updates.