Implements the data access layer for the olap package.
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.