Package org.apache.cassandra.db.filter
Class ColumnFilter.WildCardColumnFilter
- java.lang.Object
-
- org.apache.cassandra.db.filter.ColumnFilter
-
- org.apache.cassandra.db.filter.ColumnFilter.WildCardColumnFilter
-
- Enclosing class:
- ColumnFilter
public static class ColumnFilter.WildCardColumnFilter extends ColumnFilter
ColumnFilter
sub-class for wildcard queries.The class does not rely on TableMetadata and expects a fix set of columns to prevent issues with Schema race propagation. See CASSANDRA-15899.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.cassandra.db.filter.ColumnFilter
ColumnFilter.Builder, ColumnFilter.SelectionColumnFilter, ColumnFilter.Serializer, ColumnFilter.Tester, ColumnFilter.WildCardColumnFilter
-
-
Field Summary
-
Fields inherited from class org.apache.cassandra.db.filter.ColumnFilter
NONE, serializer
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
allFetchedColumnsAreQueried()
Whether _fetched_ == _queried_ for this filter, and so if theisQueried()
methods can returnfalse
for some column/cell.boolean
equals(java.lang.Object other)
boolean
fetchedCellIsQueried(ColumnMetadata column, CellPath path)
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.boolean
fetchedColumnIsQueried(ColumnMetadata column)
Whether the provided column, which is assumed to be _fetched_ by this filter (so the caller must guarantee thatfetches(column) == true
, is also _queried_ by the user.RegularAndStaticColumns
fetchedColumns()
The columns that needs to be fetched internally for this filter.boolean
fetches(ColumnMetadata column)
Whether the provided column is fetched by this filter.boolean
fetchesAllColumns(boolean isStatic)
Whether all the (regular or static) columns are fetched by this filter.int
hashCode()
boolean
isWildcard()
Checks if thisColumnFilter
is for a wildcard query.ColumnFilter.Tester
newTester(ColumnMetadata column)
Creates a newTester
to efficiently test the inclusion of cells of complex columncolumn
.RegularAndStaticColumns
queriedColumns()
The columns actually queried by the user.protected com.google.common.collect.SortedSetMultimap<ColumnIdentifier,ColumnSubselection>
subSelections()
Returns the sub-selections ornull
if there are none.java.lang.String
toCQLString()
Returns the CQL string corresponding to thisColumnFilter
.java.lang.String
toString()
-
Methods inherited from class org.apache.cassandra.db.filter.ColumnFilter
all, allRegularColumnsBuilder, selection, selection, selectionBuilder
-
-
-
-
Method Detail
-
fetchedColumns
public RegularAndStaticColumns fetchedColumns()
Description copied from class:ColumnFilter
The columns that needs to be fetched internally for this filter.- Specified by:
fetchedColumns
in classColumnFilter
- Returns:
- the columns to fetch for this filter.
-
queriedColumns
public RegularAndStaticColumns queriedColumns()
Description copied from class:ColumnFilter
The columns actually queried by the user.Note that this is in general not all the columns that are fetched internally (see
ColumnFilter.fetchedColumns()
).- Specified by:
queriedColumns
in classColumnFilter
-
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 classColumnFilter
- Parameters:
isStatic
- whether to check for static columns or not. Iftrue
, 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 theisQueried()
methods can returnfalse
for some column/cell.- Specified by:
allFetchedColumnsAreQueried
in classColumnFilter
-
fetches
public boolean fetches(ColumnMetadata column)
Description copied from class:ColumnFilter
Whether the provided column is fetched by this filter.- Specified by:
fetches
in classColumnFilter
-
fetchedColumnIsQueried
public boolean fetchedColumnIsQueried(ColumnMetadata column)
Description copied from class:ColumnFilter
Whether the provided column, which is assumed to be _fetched_ by this filter (so the caller must guarantee thatfetches(column) == true
, 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 theColumnFilter.fetches(org.apache.cassandra.schema.ColumnMetadata)
method.- Specified by:
fetchedColumnIsQueried
in classColumnFilter
-
fetchedCellIsQueried
public boolean fetchedCellIsQueried(ColumnMetadata column, CellPath path)
Description copied from class:ColumnFilter
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 theColumnFilter.fetches(org.apache.cassandra.schema.ColumnMetadata)
method.- Specified by:
fetchedCellIsQueried
in classColumnFilter
-
newTester
public ColumnFilter.Tester newTester(ColumnMetadata column)
Description copied from class:ColumnFilter
Creates a newTester
to efficiently test the inclusion of cells of complex columncolumn
.- Specified by:
newTester
in classColumnFilter
- 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 classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toCQLString
public java.lang.String toCQLString()
Description copied from class:ColumnFilter
Returns the CQL string corresponding to thisColumnFilter
.- Specified by:
toCQLString
in classColumnFilter
- Returns:
- the CQL string corresponding to this
ColumnFilter
.
-
isWildcard
public boolean isWildcard()
Description copied from class:ColumnFilter
Checks if thisColumnFilter
is for a wildcard query.- Overrides:
isWildcard
in classColumnFilter
- Returns:
true
if thisColumnFilter
is for a wildcard query,false
otherwise.
-
subSelections
protected com.google.common.collect.SortedSetMultimap<ColumnIdentifier,ColumnSubselection> subSelections()
Description copied from class:ColumnFilter
Returns the sub-selections ornull
if there are none.- Specified by:
subSelections
in classColumnFilter
- Returns:
- the sub-selections or
null
if there are none
-
-