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<ColumnDefinition.Raw> 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<ColumnDefinition.Raw> entities,
Operator relationType,
Term.MultiColumnRaw valuesOrMarker)
Creates a multi-column EQ, LT, LTE, GT, or GTE relation.
|
static MultiColumnRelation |
createSingleMarkerInRelation(java.util.List<ColumnDefinition.Raw> entities,
Tuples.INRaw inMarker)
Creates a multi-column IN relation with a marker for the IN values.
|
java.util.List<ColumnDefinition.Raw> |
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.
|
boolean |
isMultiColumn()
Checks if this relation apply to multiple columns.
|
protected Restriction |
newContainsRestriction(CFMetaData cfm,
VariableSpecifications boundNames,
boolean isKey)
Creates a new Contains restriction instance.
|
protected Restriction |
newEQRestriction(CFMetaData cfm,
VariableSpecifications boundNames)
Creates a new EQ restriction instance.
|
protected Restriction |
newINRestriction(CFMetaData cfm,
VariableSpecifications boundNames)
Creates a new IN restriction instance.
|
protected Restriction |
newIsNotRestriction(CFMetaData cfm,
VariableSpecifications boundNames) |
protected Restriction |
newLikeRestriction(CFMetaData cfm,
VariableSpecifications boundNames,
Operator operator) |
protected Restriction |
newSliceRestriction(CFMetaData cfm,
VariableSpecifications boundNames,
Bound bound,
boolean inclusive)
Creates a new Slice restriction instance.
|
protected java.util.List<ColumnDefinition> |
receivers(CFMetaData cfm) |
Relation |
renameIdentifier(ColumnDefinition.Raw from,
ColumnDefinition.Raw to)
Renames an identifier in this Relation, if applicable.
|
java.lang.String |
toString() |
Relation |
toSuperColumnAdapter()
Required for SuperColumn compatibility, creates an adapter Relation that remaps all restrictions required for
SuperColumn tables.
|
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, toTermspublic static MultiColumnRelation createNonInRelation(java.util.List<ColumnDefinition.Raw> 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<ColumnDefinition.Raw> 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<ColumnDefinition.Raw> entities, Tuples.INRaw inMarker)
entities - the columns on the LHS of the relationinMarker - a single IN markerMultiColumnRelation instancepublic java.util.List<ColumnDefinition.Raw> 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(CFMetaData cfm, VariableSpecifications boundNames) throws InvalidRequestException
RelationnewEQRestriction in class Relationcfm - the Column Family meta databoundNames - the variables specification where to collect the bind variablesInvalidRequestException - if the relation cannot be converted into an EQ restriction.protected Restriction newINRestriction(CFMetaData cfm, VariableSpecifications boundNames) throws InvalidRequestException
RelationnewINRestriction in class Relationcfm - the Column Family meta databoundNames - the variables specification where to collect the bind variablesInvalidRequestException - if the relation cannot be converted into an IN restriction.protected Restriction newSliceRestriction(CFMetaData cfm, VariableSpecifications boundNames, Bound bound, boolean inclusive) throws InvalidRequestException
RelationnewSliceRestriction in class Relationcfm - the Column Family meta databoundNames - the variables specification where to collect the bind variablesbound - the slice boundinclusive - true if the bound is included.InvalidRequestException - if the Relation is not validprotected Restriction newContainsRestriction(CFMetaData cfm, VariableSpecifications boundNames, boolean isKey) throws InvalidRequestException
RelationnewContainsRestriction in class Relationcfm - the Column Family meta databoundNames - the variables specification where to collect the bind variablesisKey - true if the restriction to create is a CONTAINS KEYRestriction instanceInvalidRequestException - if the Relation is not validprotected Restriction newIsNotRestriction(CFMetaData cfm, VariableSpecifications boundNames) throws InvalidRequestException
newIsNotRestriction in class RelationInvalidRequestExceptionprotected Restriction newLikeRestriction(CFMetaData cfm, VariableSpecifications boundNames, Operator operator) throws InvalidRequestException
newLikeRestriction in class RelationInvalidRequestExceptionprotected 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<ColumnDefinition> receivers(CFMetaData cfm) throws InvalidRequestException
InvalidRequestExceptionpublic Relation renameIdentifier(ColumnDefinition.Raw from, ColumnDefinition.Raw to)
RelationrenameIdentifier in class Relationfrom - the old identifierto - the new identifierpublic java.lang.String toString()
toString in class java.lang.Objectpublic Relation toSuperColumnAdapter()
RelationtoSuperColumnAdapter in class RelationCopyright © 2018 The Apache Software Foundation