mondrian.rolap
Class RolapNativeSet.SetConstraint
java.lang.Object
mondrian.rolap.SqlContextConstraint
mondrian.rolap.RolapNativeSet.SetConstraint
- All Implemented Interfaces:
- MemberChildrenConstraint, SqlConstraint, TupleConstraint
- Direct Known Subclasses:
- RolapNativeCrossJoin.NonEmptyCrossJoinConstraint, RolapNativeFilter.FilterConstraint, RolapNativeTopCount.TopCountConstraint
- Enclosing class:
- RolapNativeSet
protected abstract static class RolapNativeSet.SetConstraint
- extends SqlContextConstraint
Constraint for non empty {crossjoin, member.children,
member.descendants, level.members}
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
args
RolapNativeSet.CrossJoinArg[] args
RolapNativeSet.SetConstraint
RolapNativeSet.SetConstraint(RolapNativeSet.CrossJoinArg[] args,
RolapEvaluator evaluator,
boolean strict)
isJoinRequired
protected boolean isJoinRequired()
- Returns whether a join with the fact table is required. A join is
required if the context contains members from dimensions other than
level. If we are interested in the members of a level or a members
children then it does not make sense to join only one dimension (the one
that contains the requested members) with the fact table for NON EMPTY
optimization.
If there is a crossjoin, we need to join the fact table - even if
the evaluator context is empty.
- Overrides:
isJoinRequired
in class SqlContextConstraint
addConstraint
public void addConstraint(SqlQuery sqlQuery,
RolapCube baseCube,
AggStar aggStar)
- Description copied from class:
SqlContextConstraint
- Called from LevelMembers: restricts the SQL resultset to the current
context.
- Specified by:
addConstraint
in interface TupleConstraint
- Overrides:
addConstraint
in class SqlContextConstraint
- Parameters:
sqlQuery
- the query to modifybaseCube
- base cube for virtual cube constraintsaggStar
- aggregate star to use
getMemberChildrenConstraint
public MemberChildrenConstraint getMemberChildrenConstraint(RolapMember parent)
- Returns null to prevent the member/childern from being cached. There
exists no valid MemberChildrenConstraint that would fetch those
children that were extracted as a side effect from evaluating a non
empty crossjoin
- Specified by:
getMemberChildrenConstraint
in interface TupleConstraint
- Overrides:
getMemberChildrenConstraint
in class SqlContextConstraint
getCacheKey
public java.lang.Object getCacheKey()
- returns a key to cache the result
- Specified by:
getCacheKey
in interface SqlConstraint
- Overrides:
getCacheKey
in class SqlContextConstraint
- Returns:
- valid key or null to prevent the result from being cached