Package mondrian.rolap.sql
Class MemberKeyConstraint
java.lang.Object
mondrian.rolap.sql.MemberKeyConstraint
- All Implemented Interfaces:
SqlConstraint,TupleConstraint
Restricts the SQL result set to members where particular columns have
particular values.
- Version:
- $Id$
-
Constructor Summary
ConstructorsConstructorDescriptionMemberKeyConstraint(List<MondrianDef.Expression> columnList, List<Dialect.Datatype> datatypeList, List<Comparable> valueList) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar) Modifies a Level.Members query.voidaddLevelConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar, RolapLevel level) Will be called multiple times for every "group by" level in Level.Members query, i.e.Returns a key that becomes part of the key for caching the result of the SQL query.When the members of a level are fetched, the result is grouped by into parents and their children.booleantoString()
-
Constructor Details
-
MemberKeyConstraint
public MemberKeyConstraint(List<MondrianDef.Expression> columnList, List<Dialect.Datatype> datatypeList, List<Comparable> valueList)
-
-
Method Details
-
addConstraint
Description copied from interface:TupleConstraintModifies a Level.Members query.- Specified by:
addConstraintin interfaceTupleConstraint- Parameters:
sqlQuery- the query to modifybaseCube- base cube for virtual cube constraintsaggStar- aggregate star to use
-
addLevelConstraint
public void addLevelConstraint(SqlQuery sqlQuery, RolapCube baseCube, AggStar aggStar, RolapLevel level) Description copied from interface:TupleConstraintWill be called multiple times for every "group by" level in Level.Members query, i.e. the level that contains the members and all parent levels except All. If the condition requires so, it may join the levels table to the fact table.- Specified by:
addLevelConstraintin interfaceTupleConstraint- Parameters:
sqlQuery- the query to modifybaseCube- base cube for virtual cube constraintsaggStar- Aggregate table, or null if query is against fact tablelevel- the level which is accessed in the Level.Members query
-
getMemberChildrenConstraint
Description copied from interface:TupleConstraintWhen the members of a level are fetched, the result is grouped by into parents and their children. These parent/children are stored in the parent/children cache, whose key consists of the parent and the MemberChildrenConstraint#hashKey(). So we need a matching MemberChildrenConstraint to store the parent with its children into the parent/children cache.The returned MemberChildrenConstraint must be one that would have returned the same children for the given parent as the MemberLevel query has found for that parent.
If null is returned, the parent/children will not be cached (but the level/members still will be).
- Specified by:
getMemberChildrenConstraintin interfaceTupleConstraint
-
toString
-
getCacheKey
Description copied from interface:SqlConstraintReturns a key that becomes part of the key for caching the result of the SQL query. So SqlConstraint instances that produce the same SQL resultset must return equal keys in terms of equal() and hashCode().- Specified by:
getCacheKeyin interfaceSqlConstraint- Returns:
- valid key or null to prevent the result from being cached
-
getEvaluator
- Specified by:
getEvaluatorin interfaceTupleConstraint- Returns:
- the evaluator currently associated with the constraint; null if there is no associated evaluator
-
supportsAggTables
public boolean supportsAggTables()- Specified by:
supportsAggTablesin interfaceTupleConstraint- Returns:
- true if the constraint can leverage an aggregate table
-