Class ColumnFilter.SelectionColumnFilter

  • Enclosing class:
    ColumnFilter

    public static class ColumnFilter.SelectionColumnFilter
    extends ColumnFilter
    ColumnFilter sub-class for queries with selected columns.

    The class does not rely on TableMetadata and expect a fix set of fetched columns to prevent issues with Schema race propagation. See CASSANDRA-15899.

    • Field Detail

      • fetchingStrategy

        public final org.apache.cassandra.db.filter.ColumnFilter.FetchingStrategy fetchingStrategy
    • Constructor Detail

      • SelectionColumnFilter

        public SelectionColumnFilter​(org.apache.cassandra.db.filter.ColumnFilter.FetchingStrategy fetchingStrategy,
                                     RegularAndStaticColumns queried,
                                     RegularAndStaticColumns fetched,
                                     com.google.common.collect.SortedSetMultimap<ColumnIdentifier,​ColumnSubselection> subSelections)
        Creates a ColumnFilter for queries with selected columns.

        The class does not rely on TableMetadata and expect a fix set of columns to prevent issues with Schema race propagation. See CASSANDRA-15899.

        Parameters:
        fetchingStrategy - the strategy used to select the fetched columns
        fetched - the columns that must be fetched
        queried - the queried columns
        subSelections - the columns sub-selections
    • Method Detail

      • fetchesAllColumns

        public boolean fetchesAllColumns​(boolean isStatic)
        Description copied from class: ColumnFilter
        Whether all the (regular or static) columns are fetched by this filter.

        Note that this method is meant as an optimization but a negative return shouldn't be relied upon strongly: this can return false but still have all the columns fetches if those were manually selected by the user. The goal here is to cheaply avoid filtering things on wildcard queries, as those are common.

        Specified by:
        fetchesAllColumns in class ColumnFilter
        Parameters:
        isStatic - whether to check for static columns or not. If true, the method returns if all static columns are fetched, otherwise it checks regular columns.
      • allFetchedColumnsAreQueried

        public boolean allFetchedColumnsAreQueried()
        Description copied from class: ColumnFilter
        Whether _fetched_ == _queried_ for this filter, and so if the isQueried() methods can return false for some column/cell.
        Specified by:
        allFetchedColumnsAreQueried in class ColumnFilter
      • fetchedColumnIsQueried

        public boolean fetchedColumnIsQueried​(ColumnMetadata column)
        Whether the provided complex cell (identified by its column and path), which is assumed to be _fetched_ by this filter, is also _queried_ by the user. !WARNING! please be sure to understand the difference between _fetched_ and _queried_ columns that this class made before using this method. If unsure, you probably want to use the fetches(org.apache.cassandra.schema.ColumnMetadata) method.
        Specified by:
        fetchedColumnIsQueried in class ColumnFilter
      • newTester

        public ColumnFilter.Tester newTester​(ColumnMetadata column)
        Description copied from class: ColumnFilter
        Creates a new Tester to efficiently test the inclusion of cells of complex column column.
        Specified by:
        newTester in class ColumnFilter
        Parameters:
        column - for complex column for which to create a tester.
        Returns:
        the created tester or null if all the cells from the provided column are queried.
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toCQLString

        public java.lang.String toCQLString()
        Description copied from class: ColumnFilter
        Returns the CQL string corresponding to this ColumnFilter.
        Specified by:
        toCQLString in class ColumnFilter
        Returns:
        the CQL string corresponding to this ColumnFilter.