public final class StatementRestrictions
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
CFMetaData |
cfm
The Column Family meta data
|
static java.lang.String |
NO_INDEX_FOUND_MESSAGE |
| Constructor and Description |
|---|
StatementRestrictions(StatementType type,
CFMetaData cfm,
WhereClause whereClause,
VariableSpecifications boundNames,
boolean selectsOnlyStaticColumns,
boolean selectACollection,
boolean useFiltering,
boolean forView) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
areRequestedBoundsInclusive(Bound bound)
Checks if the bounds (start or end) of the clustering columns are inclusive.
|
static StatementRestrictions |
empty(StatementType type,
CFMetaData cfm)
Creates a new empty
StatementRestrictions. |
java.util.NavigableSet<Clustering> |
getClusteringColumns(QueryOptions options)
Returns the requested clustering columns.
|
java.util.NavigableSet<Slice.Bound> |
getClusteringColumnsBounds(Bound b,
QueryOptions options)
Returns the bounds (start or end) of the clustering columns.
|
java.lang.Iterable<Function> |
getFunctions() |
AbstractBounds<PartitionPosition> |
getPartitionKeyBounds(QueryOptions options)
Returns the partition key bounds.
|
java.util.List<java.nio.ByteBuffer> |
getPartitionKeys(QueryOptions options)
Returns the partition keys for which the data is requested.
|
RowFilter |
getRowFilter(SecondaryIndexManager indexManager,
QueryOptions options) |
boolean |
hasAllPKColumnsRestrictedByEqualities()
Checks that all the primary key columns (partition key and clustering columns) are restricted by an equality
relation ('=' or 'IN').
|
boolean |
hasClusteringColumnsRestriction()
Checks if the query has some restrictions on the clustering columns.
|
boolean |
hasPartitionKeyRestrictions() |
boolean |
isColumnRange()
Checks if the query returns a range of columns.
|
boolean |
isKeyRange()
Checks if the query request a range of partition keys.
|
boolean |
isPartitionKeyRestrictionsOnToken()
Checks if the restrictions on the partition key are token restrictions.
|
boolean |
isRestricted(ColumnDefinition column) |
boolean |
keyIsInRelation()
Checks if the restrictions on the partition key is an IN restriction.
|
boolean |
needFiltering()
Checks if the query need to use filtering.
|
java.util.Set<ColumnDefinition> |
nonPKRestrictedColumns(boolean includeNotNullRestrictions)
Returns the non-PK column that are restricted.
|
java.util.Set<ColumnDefinition> |
notNullColumns() |
boolean |
usesSecondaryIndexing()
Checks if the secondary index need to be queried.
|
public static final java.lang.String NO_INDEX_FOUND_MESSAGE
public final CFMetaData cfm
public StatementRestrictions(StatementType type, CFMetaData cfm, WhereClause whereClause, VariableSpecifications boundNames, boolean selectsOnlyStaticColumns, boolean selectACollection, boolean useFiltering, boolean forView) throws InvalidRequestException
InvalidRequestExceptionpublic static StatementRestrictions empty(StatementType type, CFMetaData cfm)
StatementRestrictions.type - the type of statementcfm - the column family meta dataStatementRestrictions.public java.lang.Iterable<Function> getFunctions()
public java.util.Set<ColumnDefinition> nonPKRestrictedColumns(boolean includeNotNullRestrictions)
public java.util.Set<ColumnDefinition> notNullColumns()
public boolean isRestricted(ColumnDefinition column)
public boolean keyIsInRelation()
true the restrictions on the partition key is an IN restriction, false
otherwise.public boolean isKeyRange()
true if the query request a range of partition keys, false otherwise.public boolean usesSecondaryIndexing()
true if the secondary index need to be queried, false otherwise.public boolean hasPartitionKeyRestrictions()
public boolean isPartitionKeyRestrictionsOnToken()
true if the restrictions on the partition key are token restrictions,
false otherwise.public RowFilter getRowFilter(SecondaryIndexManager indexManager, QueryOptions options)
public java.util.List<java.nio.ByteBuffer> getPartitionKeys(QueryOptions options)
options - the query optionspublic AbstractBounds<PartitionPosition> getPartitionKeyBounds(QueryOptions options)
options - the query optionspublic boolean hasClusteringColumnsRestriction()
true if the query has some restrictions on the clustering columns,
false otherwise.public java.util.NavigableSet<Clustering> getClusteringColumns(QueryOptions options)
options - the query optionspublic java.util.NavigableSet<Slice.Bound> getClusteringColumnsBounds(Bound b, QueryOptions options)
b - the bound typeoptions - the query optionspublic boolean areRequestedBoundsInclusive(Bound bound)
bound - the bound typetrue if the bounds (start or end) of the clustering columns are inclusive,
false otherwisepublic boolean isColumnRange()
true if the query returns a range of columns, false otherwise.public boolean needFiltering()
true if the query need to use filtering, false otherwise.public boolean hasAllPKColumnsRestrictedByEqualities()
true if all the primary key columns are restricted by an equality relation.Copyright © 2016 The Apache Software Foundation