Package mondrian.rolap
package mondrian.rolap
Implements the data access layer for the olap package.
When a member expression like member.children is evaluated, the function
requests the SchemaReader from the Evaluator. The RolapEvaluator
uses the RolapSchemaReader which delegates most calls to one
of its MemberReaders (one per dimension). In most cases, a SmartMemberReader
will be used, which returns the requested members immediately.
Cells are evaluated multiple times. For the first time,
a FastBatchingCellReader is used. When a cell is evaluated,
Evaluator.evaluateCurrent() is called. The FastBatchingCellReader
will not compute the cells value but record a CellRequest for that cell
and return (not throw) an exception. After all CellRequests for all cells
have been recorded, the Aggregation will generate SQL to load all cells
with a single SQL query. After that the cells are evaluated again with
an AggregatingCellReader that will return the cell values from the cache.
MemberReader
When a member expression like member.children is evaluated, the function
requests the SchemaReader from the Evaluator. The RolapEvaluator
uses the RolapSchemaReader which delegates most calls to one
of its MemberReaders (one per dimension). In most cases, a SmartMemberReader
will be used, which returns the requested members immediately.
CellReader
Cells are evaluated multiple times. For the first time,
a FastBatchingCellReader is used. When a cell is evaluated,
Evaluator.evaluateCurrent() is called. The FastBatchingCellReader
will not compute the cells value but record a CellRequest for that cell
and return (not throw) an exception. After all CellRequests for all cells
have been recorded, the Aggregation will generate SQL to load all cells
with a single SQL query. After that the cells are evaluated again with
an AggregatingCellReader that will return the cell values from the cache.-
ClassDescriptionRepresents a set of bits.Abstract implementation of
BitKey.Implementation ofBitKeywith more than 64 bits.Implementation ofBitKeygood for sizes less than 128.Implementation ofBitKeyfor bit counts less than 64.Implementation ofCacheControlAPI.Default implementation ofCacheControlImpl.MemberSetVisitor.ACellKeyis used as a key in maps which access cells by their position.Constructs a Pair<BitKey, StarPredicate> based on an tuple list and measure, along with the string representation of the predicate.Restricts the SQL result set to the parent member of a MemberChildren query.TupleConstraint which does not restrict the result.Implementation ofRolapMemberthat delegates all calls to an underlying member.AFastBatchingCellReaderdoesn't really Read cells: when asked to look up the values of stored measures, it lies, and records the fact that the value was asked for.TheGroupingSetsCollectorcollects the GroupinpSets and pass the consolidated list to form group by grouping sets sqlAHierarchyUsageis the usage of a hierarchy in the context of a cube.Deprecated.Deprecated for Mondrian 4.0.Encapsulation of member caching.Encapsulation of member caching for no caching.AMemberSourcehas the basic operations to read the members of ahierarchy.Modulos implementations encapsulate algorithms to map between integral ordinals and position arrays.NoCacheMemberReaderimplementsMemberReaderbut without doing any kind of caching and avoiding to read all members.Loader to be iterated to load all results from database.RolapAggregationManagermanages allSegments in the system.A set of segments which are pinned (prevented from garbage collection) for a short duration as a result of a cache inquiry.Describes an aggregation operator, such as "sum" or "count".Aggregator used for aggregate tables implementing the average aggregator.Aggregator used for aggregate tables implementing the average aggregator.This is the base class for implementing aggregators over sum and average columns in an aggregate table.This is an aggregator used for aggregate tables implementing the sum aggregator.Implementation of the Axis interface.Measure which is computed from a SQL column (or expression) and which is defined in a non-virtual cube.ARolapCacheRegionrepresents a region of multidimensional space in the cache.ARolapCalculatedMemberis a member based upon aFormula.ARolapConnectionis a connection to a Mondrian OLAP Server.RolapConnectionPropertiesenumerates the allowable values of keywords in a Mondrian connect string.RolapCubeimplementsCubefor a ROLAP database.RolapCubeDimension wraps a RolapDimension for a specific Cube.Hierarchy that is associated with a specific Cube.TODO: Since this is part of a caching strategy, should be implemented as a Strategy Pattern, avoiding hierarchy.RolapCubeLevel wraps a RolapLevel for a specific Cube.RolapCubeMember wraps RolapMembers and binds them to a specific cube.Provides the base cubes that a virtual cube uses and specifies if unrelated dimensions to measures from these cubes should be ignored.Evaluator which checks dependencies of expressions.RolapEvaluatorevaluates expressions in a dimensional environment.RolapHierarchyimplementsHierarchyfor a ROLAP database.Substitute for a member in a hierarchy whose rollup policy is 'partial' or 'hidden'.Calculated member which is also a measure (that is, a member of the [Measures] dimension).RolapLevelimplementsLevelfor a ROLAP database.Conditions under which a level's members may be hidden (thereby creating a ragged hierarchy).Interface implemented by all measures (both stored and calculated).ARolapMemberis a member of aRolapHierarchy.Basic implementation of a member in aRolapHierarchy.DefaultRolapMemberBase.PropertyValueMapFactoryimplementation, used ifMondrianProperties.PropertyValueMapFactoryClassis not set.Interface definition for the pluggable factory used to decide which implementation ofMapto use to store property string/value pairs for member properties.Creates the PropertyValueMapFactory which is in turn used to create property-value maps for member properties.Extension toRolapMemberthat knows the current cube.A factory forNativeEvaluator.Creates aNativeEvaluatorthat evaluates NON EMPTY CrossJoin in SQL.Computes a Filter(set, condition) in SQL.Composite ofRolapNatives.Analyses set expressions and executes them in SQL if possible.Constraint for non empty {crossjoin, member.children, member.descendants, level.members}Creates SQL from parse tree nodes.Computes a TopCount in SQL.Evaluator that collects profiling information as it evaluates expressions.ARolapResultis the result of running a query.Extension toRolapEvaluatorRootwhich is capable of evaluating sets and named sets.A utility class forRolapConnection.Parameter that is defined in a schema.A collection of schemas, identified by their connection properties (catalog name, JDBC URL, and so forth).ARolapSchemaReaderallows you to read schema objects while observing the access-control profile specified by a given role.ARolapStaris a star schema.Creates a copy of an expression, everywhere replacing one alias with another.Temporary.A column in a star schema.Comparator to compare columns based on their name and table that contains themDefinition of a measure in a star schema.Definition of a table in a star schema.Provides and caches statistics.A measure which is implemented by a SQL column or SQL expression (as opposed to aRolapCalculatedMember.Utility methods for classes in themondrian.rolappackage.Writes to a string and also to an underlying writer.Measure which is defined in a virtual cube, and based on a stored measure in one of the virtual cube's base cubes.Implementation ofScenario.Key for an instance of a schema.SmartIncrementalCache<K,V extends Collection> Uses a SmartCache to store a collection of values.SmartMemberListCache<K,V> Uses aSmartCacheto store lists of members, where the key depends on aSqlConstraint.SmartMemberReaderimplementsMemberReaderby keeping a cache of members and their children.Creates the right constraint for common tasks.Utility class used by implementations ofSqlConstraint, used to generate constraints intoSqlQuery.limits the result of a Member SQL query to the current evaluation context.SqlStatement contains a SQL statement and associated resources throughout its lifetime.Reflectively implements theResultSetinterface by routing method calls to the result set inside aSqlStatement.The approximate JDBC type of column.Reads the members of a single level (level.members) or of multiple levels (crossjoin).Refinement ofStarPredicatewhich constrains precisely one column.Returned byStarColumnPredicate.intersect(mondrian.rolap.StarColumnPredicate), describes whether two predicates overlap, and if so, the remaining predicate.Condition which constrains a set of values of a singleRolapStar.Columnor a set of columns.Implementation ofMemberReaderwhich replaces given members with a substitute.Deprecated.Deprecated for Mondrian 4.0.Base helper class for the SQL tuple readersHighCardSqlTupleReaderandSqlTupleReader.todo:Describes the public methods ofSqlTupleReader.Factory to create new members for a hierarchy from SQL result.