|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mondrian.rolap.FastBatchingCellReader
public class FastBatchingCellReader
A FastBatchingCellReader
doesn'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. Later, we can look over the values which
are required, fetch them in an efficient way, and re-run the evaluation
with a real evaluator.
NOTE: When it doesn't know the answer, it lies by returning an error object. The calling code must be able to deal with that.
This class tries to minimize the amount of storage needed to record the fact that a cell was requested.
Nested Class Summary | |
---|---|
(package private) class |
FastBatchingCellReader.Batch
|
(package private) class |
FastBatchingCellReader.CompositeBatch
Set of Batches which can grouped together. |
(package private) static interface |
FastBatchingCellReader.Loadable
Encapsulates a common property of FastBatchingCellReader.CompositeBatch and
FastBatchingCellReader.CompositeBatch , namely, that they can be asked to load their
aggregations into the cache. |
Field Summary | |
---|---|
(package private) AggregationManager |
aggMgr
|
Constructor Summary | |
---|---|
FastBatchingCellReader(RolapCube cube)
|
Method Summary | |
---|---|
(package private) void |
addToCompositeBatch(Map<AggregationKey,FastBatchingCellReader.CompositeBatch> batchGroups,
FastBatchingCellReader.Batch detailedBatch,
FastBatchingCellReader.Batch summaryBatch)
|
(package private) boolean |
doesDBSupportGroupingSets()
Uses Dialect to identify if grouping sets is supported by the database. |
Object |
get(RolapEvaluator evaluator)
Returns the value of the cell which has the context described by the evaluator. |
(package private) SqlQuery.Dialect |
getDialect()
Returns the SQL dialect. |
int |
getMissCount()
Returns the number of times this cell reader has told a lie (since creation), because the required cell value is not in the cache. |
(package private) List<FastBatchingCellReader.CompositeBatch> |
groupBatches(List<FastBatchingCellReader.Batch> batchList)
|
boolean |
isDirty()
Returns whether this reader has told a lie. |
(package private) boolean |
loadAggregations()
|
(package private) boolean |
loadAggregations(Query query)
Loads pending aggregations, if any. |
void |
recordCellRequest(CellRequest request)
|
(package private) void |
setDirty(boolean dirty)
Sets the flag indicating that the reader has told a lie. |
(package private) boolean |
shouldUseGroupingFunction()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
final AggregationManager aggMgr
Constructor Detail |
---|
public FastBatchingCellReader(RolapCube cube)
Method Detail |
---|
public Object get(RolapEvaluator evaluator)
CellReader
If no aggregation contains the required cell, returns null.
If the value is null, returns Util.nullValue
.
get
in interface CellReader
Util.nullValue
if
the value is nullpublic int getMissCount()
CellReader
getMissCount
in interface CellReader
public final void recordCellRequest(CellRequest request)
public boolean isDirty()
setDirty(boolean)
has been
called.
isDirty
in interface CellReader
boolean loadAggregations()
boolean loadAggregations(Query query)
query
- the parent query object that initiated this
call
List<FastBatchingCellReader.CompositeBatch> groupBatches(List<FastBatchingCellReader.Batch> batchList)
void addToCompositeBatch(Map<AggregationKey,FastBatchingCellReader.CompositeBatch> batchGroups, FastBatchingCellReader.Batch detailedBatch, FastBatchingCellReader.Batch summaryBatch)
boolean shouldUseGroupingFunction()
boolean doesDBSupportGroupingSets()
SqlQuery.Dialect getDialect()
void setDirty(boolean dirty)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |