|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mondrian.rolap.RolapNative mondrian.rolap.RolapNativeSet
public abstract class RolapNativeSet
Analyses set expressions and executes them in SQL if possible. Supports crossjoin, member.children, level.members and member.descendants - all in non empty mode, i.e. there is a join to the fact table.
TODO: the order of the result is different from the order of the enumeration. Should sort.
Nested Class Summary | |
---|---|
protected static interface |
RolapNativeSet.CrossJoinArg
"Light version" of a TupleConstraint , represents one of
member.children, level.members, member.descendants, {enumeration}. |
protected static class |
RolapNativeSet.DescendantsCrossJoinArg
represents one of Level.Members: member == null and level != null Member.Children: member != null and level = member.getLevel().getChildLevel() Member.Descendants: member != null and level == some level below member.getLevel() |
protected static class |
RolapNativeSet.MemberListCrossJoinArg
Represents an enumeration {member1, member2, ...}. |
static interface |
RolapNativeSet.SchemaReaderWithMemberReaderAvailable
|
protected static class |
RolapNativeSet.SetConstraint
Constraint for non empty {crossjoin, member.children, member.descendants, level.members} |
protected class |
RolapNativeSet.SetEvaluator
|
Nested classes/interfaces inherited from class mondrian.rolap.RolapNative |
---|
RolapNative.Listener, RolapNative.NativeEvent, RolapNative.TupleEvent |
Field Summary | |
---|---|
protected static org.apache.log4j.Logger |
LOGGER
|
Fields inherited from class mondrian.rolap.RolapNative |
---|
listener |
Constructor Summary | |
---|---|
RolapNativeSet()
|
Method Summary | |
---|---|
protected RolapNativeSet.CrossJoinArg[] |
checkCrossJoin(RolapEvaluator evaluator,
FunDef fun,
Exp[] args)
Checks for CrossJoin(<set1>, <set2>) , where
set1 and set2 are one of
member.children , level.members or
member.descendants . |
protected RolapNativeSet.CrossJoinArg[] |
checkCrossJoinArg(RolapEvaluator evaluator,
Exp exp)
Scans for memberChildren, levelMembers, memberDescendants, crossJoin. |
protected RolapNativeSet.CrossJoinArg |
checkDescendants(Role role,
FunDef fun,
Exp[] args)
Checks for Descendants(<member>, <Level>) |
protected RolapNativeSet.CrossJoinArg |
checkEnumeration(RolapEvaluator evaluator,
FunDef fun,
Exp[] args)
Checks for a set constructor, {member1, member2,
...} that does not contain calculated members. |
protected RolapNativeSet.CrossJoinArg |
checkLevelMembers(Role role,
FunDef fun,
Exp[] args)
Checks for <Level>.Members . |
protected RolapNativeSet.CrossJoinArg |
checkMemberChildren(Role role,
FunDef fun,
Exp[] args)
Checks for <Member>.Children . |
protected boolean |
isPreferInterpreter(RolapNativeSet.CrossJoinArg[] args,
boolean joinArg)
Tests whether non-native evaluation is preferred for the given arguments. |
protected static boolean |
isSimpleLevel(RolapLevel level)
Ensures that level is not ragged and not a parent/child level. |
protected RolapEvaluator |
overrideContext(RolapEvaluator evaluator,
RolapNativeSet.CrossJoinArg[] cargs,
RolapStoredMeasure storedMeasure)
Override current members in position by default members in hierarchies which are involved in this filter/topcount. |
protected abstract boolean |
restrictMemberTypes()
Returns whether certain member types(e.g. |
(package private) void |
useHardCache(boolean hard)
disable garbage collection for test |
Methods inherited from class mondrian.rolap.RolapNative |
---|
createEvaluator, getListener, isEnabled, setEnabled, setListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final org.apache.log4j.Logger LOGGER
Constructor Detail |
---|
public RolapNativeSet()
Method Detail |
---|
protected abstract boolean restrictMemberTypes()
If true, expressions containing calculated members will be evaluated by the interpreter, instead of using SQL. If false, calc members will be ignored and the computation will be done in SQL, returning more members than requested.
protected RolapNativeSet.CrossJoinArg checkDescendants(Role role, FunDef fun, Exp[] args)
RolapNativeSet.CrossJoinArg
instance describing the Descendants
function, or null if fun
represents something else.protected RolapNativeSet.CrossJoinArg checkLevelMembers(Role role, FunDef fun, Exp[] args)
<Level>.Members
.
RolapNativeSet.CrossJoinArg
instance describing the Level.members
function, or null if fun
represents something else.protected RolapNativeSet.CrossJoinArg checkMemberChildren(Role role, FunDef fun, Exp[] args)
<Member>.Children
.
RolapNativeSet.CrossJoinArg
instance describing the member.children
function, or null if fun
represents something else.protected RolapNativeSet.CrossJoinArg checkEnumeration(RolapEvaluator evaluator, FunDef fun, Exp[] args)
{member1, member2,
...}
that does not contain calculated members.
RolapNativeSet.CrossJoinArg
instance describing the enumeration,
or null if fun
represents something else.protected RolapNativeSet.CrossJoinArg[] checkCrossJoin(RolapEvaluator evaluator, FunDef fun, Exp[] args)
CrossJoin(<set1>, <set2>)
, where
set1 and set2 are one of
member.children
, level.members
or
member.descendants
.
evaluator
- RolapEvaluator to use if inputs are to be evaluatedfun
- the CrossJoin function, either "CrossJoin" or "NonEmptyCrossJoin".args
- inputs to the CrossJoin
protected RolapNativeSet.CrossJoinArg[] checkCrossJoinArg(RolapEvaluator evaluator, Exp exp)
protected static boolean isSimpleLevel(RolapLevel level)
protected boolean isPreferInterpreter(RolapNativeSet.CrossJoinArg[] args, boolean joinArg)
joinArg
- true if evaluating a cross-join; false if
evaluating a single-input expression such as filter
void useHardCache(boolean hard)
useHardCache
in class RolapNative
protected RolapEvaluator overrideContext(RolapEvaluator evaluator, RolapNativeSet.CrossJoinArg[] cargs, RolapStoredMeasure storedMeasure)
RolapAggregationManager.makeRequest(RolapEvaluator)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |