public class MultiColumnRelation extends Relation
- SELECT ... WHERE (a, b, c) > (1, 'a', 10)
- SELECT ... WHERE (a, b, c) IN ((1, 2, 3), (4, 5, 6))
- SELECT ... WHERE (a, b) < ?
- SELECT ... WHERE (a, b) IN ?
relationType
Modifier and Type | Method and Description |
---|---|
static MultiColumnRelation |
createInRelation(java.util.List<ColumnIdentifier> entities,
java.util.List<? extends Term.MultiColumnRaw> inValues)
Creates a multi-column IN relation with a list of IN values or markers.
|
static MultiColumnRelation |
createNonInRelation(java.util.List<ColumnIdentifier> entities,
Operator relationType,
Term.MultiColumnRaw valuesOrMarker)
Creates a multi-column EQ, LT, LTE, GT, or GTE relation.
|
static MultiColumnRelation |
createSingleMarkerInRelation(java.util.List<ColumnIdentifier> entities,
Tuples.INRaw inMarker)
Creates a multi-column IN relation with a marker for the IN values.
|
boolean |
equals(java.lang.Object o) |
java.util.List<ColumnIdentifier> |
getEntities() |
java.util.List<? extends Term.Raw> |
getInValues()
Returns the list of raw IN values for this relation, or null if this is not an IN relation.
|
Term.MultiColumnRaw |
getValue()
For non-IN relations, returns the Tuples.Literal or Tuples.Raw marker for a single tuple.
|
int |
hashCode() |
boolean |
isMultiColumn()
Checks if this relation apply to multiple columns.
|
protected Restriction |
newContainsRestriction(TableMetadata table,
VariableSpecifications boundNames,
boolean isKey)
Creates a new Contains restriction instance.
|
protected Restriction |
newEQRestriction(TableMetadata table,
VariableSpecifications boundNames)
Creates a new EQ restriction instance.
|
protected Restriction |
newINRestriction(TableMetadata table,
VariableSpecifications boundNames)
Creates a new IN restriction instance.
|
protected Restriction |
newIsNotRestriction(TableMetadata table,
VariableSpecifications boundNames) |
protected Restriction |
newLikeRestriction(TableMetadata table,
VariableSpecifications boundNames,
Operator operator) |
protected Restriction |
newSliceRestriction(TableMetadata table,
VariableSpecifications boundNames,
Bound bound,
boolean inclusive)
Creates a new Slice restriction instance.
|
protected java.util.List<ColumnMetadata> |
receivers(TableMetadata table) |
Relation |
renameIdentifier(ColumnIdentifier from,
ColumnIdentifier to)
Renames an identifier in this Relation, if applicable.
|
java.lang.String |
toCQLString()
Returns a CQL representation of this relation.
|
protected Term |
toTerm(java.util.List<? extends ColumnSpecification> receivers,
Term.Raw raw,
java.lang.String keyspace,
VariableSpecifications boundNames)
Converts the specified
Raw into a Term . |
isContains, isContainsKey, isEQ, isIN, isLIKE, isSlice, onToken, operator, toRestriction, toString, toTerms
public static MultiColumnRelation createNonInRelation(java.util.List<ColumnIdentifier> entities, Operator relationType, Term.MultiColumnRaw valuesOrMarker)
For example: "SELECT ... WHERE (a, b) > (0, 1)"
entities
- the columns on the LHS of the relationrelationType
- the relation operatorvaluesOrMarker
- a Tuples.Literal instance or a Tuples.Raw markerMultiColumnRelation
instancepublic static MultiColumnRelation createInRelation(java.util.List<ColumnIdentifier> entities, java.util.List<? extends Term.MultiColumnRaw> inValues)
entities
- the columns on the LHS of the relationinValues
- a list of Tuples.Literal instances or a Tuples.Raw markersMultiColumnRelation
instancepublic static MultiColumnRelation createSingleMarkerInRelation(java.util.List<ColumnIdentifier> entities, Tuples.INRaw inMarker)
entities
- the columns on the LHS of the relationinMarker
- a single IN markerMultiColumnRelation
instancepublic java.util.List<ColumnIdentifier> getEntities()
public Term.MultiColumnRaw getValue()
public java.util.List<? extends Term.Raw> getInValues()
Relation
getInValues
in class Relation
public boolean isMultiColumn()
Relation
isMultiColumn
in class Relation
true
if this relation apply to multiple columns, false
otherwise.protected Restriction newEQRestriction(TableMetadata table, VariableSpecifications boundNames)
Relation
newEQRestriction
in class Relation
table
- the table meta databoundNames
- the variables specification where to collect the bind variablesprotected Restriction newINRestriction(TableMetadata table, VariableSpecifications boundNames)
Relation
newINRestriction
in class Relation
table
- the table meta databoundNames
- the variables specification where to collect the bind variablesprotected Restriction newSliceRestriction(TableMetadata table, VariableSpecifications boundNames, Bound bound, boolean inclusive)
Relation
newSliceRestriction
in class Relation
table
- the table meta databoundNames
- the variables specification where to collect the bind variablesbound
- the slice boundinclusive
- true
if the bound is included.protected Restriction newContainsRestriction(TableMetadata table, VariableSpecifications boundNames, boolean isKey)
Relation
newContainsRestriction
in class Relation
table
- the table meta databoundNames
- the variables specification where to collect the bind variablesisKey
- true
if the restriction to create is a CONTAINS KEYRestriction
instanceprotected Restriction newIsNotRestriction(TableMetadata table, VariableSpecifications boundNames)
newIsNotRestriction
in class Relation
protected Restriction newLikeRestriction(TableMetadata table, VariableSpecifications boundNames, Operator operator)
newLikeRestriction
in class Relation
protected Term toTerm(java.util.List<? extends ColumnSpecification> receivers, Term.Raw raw, java.lang.String keyspace, VariableSpecifications boundNames) throws InvalidRequestException
Relation
Raw
into a Term
.toTerm
in class Relation
receivers
- the columns to which the values must be associated atraw
- the raw term to convertkeyspace
- the keyspace nameboundNames
- the variables specification where to collect the bind variablesTerm
corresponding to the specified Raw
InvalidRequestException
- if the Raw
term is not validprotected java.util.List<ColumnMetadata> receivers(TableMetadata table) throws InvalidRequestException
InvalidRequestException
public Relation renameIdentifier(ColumnIdentifier from, ColumnIdentifier to)
Relation
renameIdentifier
in class Relation
from
- the old identifierto
- the new identifierpublic java.lang.String toCQLString()
Relation
toCQLString
in class Relation
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
Copyright © 2009-2021 The Apache Software Foundation