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, toTermspublic 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()
RelationgetInValues in class Relationpublic boolean isMultiColumn()
RelationisMultiColumn in class Relationtrue if this relation apply to multiple columns, false otherwise.protected Restriction newEQRestriction(TableMetadata table, VariableSpecifications boundNames)
RelationnewEQRestriction in class Relationtable - the table meta databoundNames - the variables specification where to collect the bind variablesprotected Restriction newINRestriction(TableMetadata table, VariableSpecifications boundNames)
RelationnewINRestriction in class Relationtable - the table meta databoundNames - the variables specification where to collect the bind variablesprotected Restriction newSliceRestriction(TableMetadata table, VariableSpecifications boundNames, Bound bound, boolean inclusive)
RelationnewSliceRestriction in class Relationtable - 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)
RelationnewContainsRestriction in class Relationtable - 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 Relationprotected Restriction newLikeRestriction(TableMetadata table, VariableSpecifications boundNames, Operator operator)
newLikeRestriction in class Relationprotected Term toTerm(java.util.List<? extends ColumnSpecification> receivers, Term.Raw raw, java.lang.String keyspace, VariableSpecifications boundNames) throws InvalidRequestException
RelationRaw into a Term.toTerm in class Relationreceivers - 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 RawInvalidRequestException - if the Raw term is not validprotected java.util.List<ColumnMetadata> receivers(TableMetadata table) throws InvalidRequestException
InvalidRequestExceptionpublic Relation renameIdentifier(ColumnIdentifier from, ColumnIdentifier to)
RelationrenameIdentifier in class Relationfrom - the old identifierto - the new identifierpublic java.lang.String toCQLString()
RelationtoCQLString in class Relationpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object o)
equals in class java.lang.ObjectCopyright © 2009-2022 The Apache Software Foundation