public class ColumnFilter
extends java.lang.Object
SELECT *
query, we want to query all columns, and _fetched_ == _queried.
As this is a common case, we special case it by keeping the _queried_ set null
(and we retrieve
the columns through the metadata pointer).
For complex columns, this class optionally allows to specify a subset of the cells to query for each column.
We can either select individual cells by path name, or a slice of them. Note that this is a sub-selection of
_queried_ cells, so if _fetched_ != _queried_, then the cell selected by this sub-selection are considered
queried and the other ones are considered fetched (and if a column has some sub-selection, it must be a queried
column, which is actually enforced by the Builder below).Modifier and Type | Class and Description |
---|---|
static class |
ColumnFilter.Builder
A builder for a
ColumnFilter object. |
static class |
ColumnFilter.Serializer |
static class |
ColumnFilter.Tester |
Modifier and Type | Field and Description |
---|---|
static ColumnFilter.Serializer |
serializer |
Modifier and Type | Method and Description |
---|---|
static ColumnFilter |
all(CFMetaData metadata)
A filter that includes all columns for the provided table.
|
static ColumnFilter.Builder |
allColumnsBuilder(CFMetaData metadata)
Returns a
ColumnFilter } builder that fetches all columns (and queries the columns
added to the builder, or everything if no column is added). |
boolean |
allFetchedColumnsAreQueried()
Whether _fetched_ == _queried_ for this filter, and so if the
isQueried() methods
can return false for some column/cell. |
boolean |
equals(java.lang.Object other) |
boolean |
fetchedCellIsQueried(ColumnDefinition 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(ColumnDefinition column)
Whether the provided column, which is assumed to be _fetched_ by this filter (so the caller must guarantee
that
fetches(column) == true , is also _queried_ by the user. |
PartitionColumns |
fetchedColumns()
The columns that needs to be fetched internally for this filter.
|
boolean |
fetches(ColumnDefinition column)
Whether the provided column is fetched by this filter.
|
boolean |
fetchesAllColumns() |
ColumnFilter.Tester |
newTester(ColumnDefinition column)
Creates a new
Tester to efficiently test the inclusion of cells of complex column
column . |
PartitionColumns |
queriedColumns()
The columns actually queried by the user.
|
static ColumnFilter |
selection(CFMetaData metadata,
PartitionColumns queried)
A filter that fetches all columns for the provided table, but returns
only the queried ones.
|
static ColumnFilter |
selection(PartitionColumns columns)
A filter that only fetches/queries the provided columns.
|
static ColumnFilter.Builder |
selectionBuilder()
Returns a
ColumnFilter builder that only fetches the columns/cells added to the builder. |
java.lang.String |
toString() |
public static final ColumnFilter.Serializer serializer
public static ColumnFilter all(CFMetaData metadata)
public static ColumnFilter selection(PartitionColumns columns)
Note that this shouldn't be used for CQL queries in general as all columns should be queried to preserve CQL semantic (see class javadoc). This is ok for some internal queries however (and for #6588 if/when we implement it).
public static ColumnFilter selection(CFMetaData metadata, PartitionColumns queried)
public PartitionColumns fetchedColumns()
public PartitionColumns queriedColumns()
Note that this is in general not all the columns that are fetched internally (see fetchedColumns()
).
public boolean fetchesAllColumns()
public boolean allFetchedColumnsAreQueried()
isQueried()
methods
can return false
for some column/cell.public boolean fetches(ColumnDefinition column)
public boolean fetchedColumnIsQueried(ColumnDefinition column)
fetches(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 the fetches(org.apache.cassandra.config.ColumnDefinition)
method.public boolean fetchedCellIsQueried(ColumnDefinition column, CellPath path)
fetches(org.apache.cassandra.config.ColumnDefinition)
method.public ColumnFilter.Tester newTester(ColumnDefinition column)
Tester
to efficiently test the inclusion of cells of complex column
column
.null
if all the cells from the provided column
are queried.public static ColumnFilter.Builder allColumnsBuilder(CFMetaData metadata)
ColumnFilter
} builder that fetches all columns (and queries the columns
added to the builder, or everything if no column is added).public static ColumnFilter.Builder selectionBuilder()
ColumnFilter
builder that only fetches the columns/cells added to the builder.public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
Copyright © 2018 The Apache Software Foundation