public class AggregationManager extends RolapAggregationManager
RolapAggregationManager manages all Aggregations
 in the system. It is a singleton class.| Modifier and Type | Class and Description | 
|---|---|
static class  | 
AggregationManager.PinSetImpl
Implementation of  
RolapAggregationManager.PinSet
 using a HashSet. | 
RolapAggregationManager.PinSet| Modifier and Type | Field and Description | 
|---|---|
SegmentCacheManager | 
cacheMgr  | 
| Constructor and Description | 
|---|
AggregationManager(MondrianServer server)
Creates the AggregationManager. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
RolapAggregationManager.PinSet | 
createPinSet()
Creates a  
RolapAggregationManager.PinSet. | 
static AggStar | 
findAgg(RolapStar star,
       BitKey levelBitKey,
       BitKey measureBitKey,
       boolean[] rollup)
Finds an aggregate table in the given star which has the desired levels
 and measures. 
 | 
static Pair<String,List<SqlStatement.Type>> | 
generateSql(GroupingSetsList groupingSetsList,
           List<StarPredicate> compoundPredicateList)
Generates the query to retrieve the cells for a list of segments. 
 | 
CacheControl | 
getCacheControl(RolapConnection connection,
               PrintWriter pw)
Returns an API with which to explicitly manage the contents of the cache. 
 | 
Object | 
getCellFromAllCaches(CellRequest request)  | 
Object | 
getCellFromCache(CellRequest request)
Retrieves the value of a cell from the cache. 
 | 
Object | 
getCellFromCache(CellRequest request,
                RolapAggregationManager.PinSet pinSet)  | 
String | 
getDrillThroughSql(DrillThroughCellRequest request,
                  StarPredicate starPredicateSlicer,
                  List<Exp> fields,
                  boolean countOnly)
Generates a SQL statement which will return the rows which contribute to
 this request. 
 | 
org.apache.log4j.Logger | 
getLogger()
Returns the log4j logger. 
 | 
static AggregationManager | 
instance()
Deprecated. 
 
No longer a singleton, and will be removed in mondrian-4.
   Use  
MondrianServer.getAggregationManager().
   To get a server, call
   MondrianServer.forConnection(mondrian.olap.Connection),
   passing in a null connection if you absolutely must. | 
static void | 
loadAggregation(SegmentCacheManager cacheMgr,
               int cellRequestCount,
               List<RolapStar.Measure> measures,
               RolapStar.Column[] columns,
               AggregationKey aggregationKey,
               StarColumnPredicate[] predicates,
               GroupingSetsCollector groupingSetsCollector,
               List<Future<Map<Segment,SegmentWithData>>> segmentFutures)
Called by FastBatchingCellReader.load where the
 RolapStar creates an Aggregation if needed. 
 | 
void | 
shutdown()  | 
getCacheCellReader, makeCacheRegion, makeDrillThroughRequest, makeRequest, makeRequestpublic final SegmentCacheManager cacheMgr
public AggregationManager(MondrianServer server)
public final org.apache.log4j.Logger getLogger()
public static AggregationManager instance()
MondrianServer.getAggregationManager().
   To get a server, call
   MondrianServer.forConnection(mondrian.olap.Connection),
   passing in a null connection if you absolutely must.public static void loadAggregation(SegmentCacheManager cacheMgr, int cellRequestCount, List<RolapStar.Measure> measures, RolapStar.Column[] columns, AggregationKey aggregationKey, StarColumnPredicate[] predicates, GroupingSetsCollector groupingSetsCollector, List<Future<Map<Segment,SegmentWithData>>> segmentFutures)
cacheMgr - Cache managercellRequestCount - Number of missed cells that led to this requestmeasures - Measures to loadcolumns - this is the CellRequest's constrained columnsaggregationKey - this is the CellRequest's constraint keypredicates - Array of constraints on each columngroupingSetsCollector - grouping sets collectorsegmentFutures - List of futures into which each statement will
     place a list of the segments it has loaded, when it completespublic CacheControl getCacheControl(RolapConnection connection, PrintWriter pw)
connection - Server whose cache to controlpw - Print writer, for tracingpublic Object getCellFromCache(CellRequest request)
RolapAggregationManagergetCellFromCache in class RolapAggregationManagerrequest - Cell requestUtil.nullValue if cell's value is nullpublic Object getCellFromCache(CellRequest request, RolapAggregationManager.PinSet pinSet)
getCellFromCache in class RolapAggregationManagerpublic Object getCellFromAllCaches(CellRequest request)
public String getDrillThroughSql(DrillThroughCellRequest request, StarPredicate starPredicateSlicer, List<Exp> fields, boolean countOnly)
RolapAggregationManagergetDrillThroughSql in class RolapAggregationManagerrequest - Cell requeststarPredicateSlicer - A StarPredicate representing slicer positions
 that could not be represented by the CellRequest, or
 null if no additional predicate is necessary.countOnly - If true, return a statment which returns only the countpublic static Pair<String,List<SqlStatement.Type>> generateSql(GroupingSetsList groupingSetsList, List<StarPredicate> compoundPredicateList)
public static AggStar findAgg(RolapStar star, BitKey levelBitKey, BitKey measureBitKey, boolean[] rollup)
If there no aggregate is an exact match, returns a more granular aggregate which can be rolled up, and sets rollup to true. If one or more of the measures are distinct-count measures rollup is possible only in limited circumstances.
star - StarlevelBitKey - Set of levelsmeasureBitKey - Set of measuresrollup - Out parameter, is set to true if the aggregate is not
   an exact matchpublic RolapAggregationManager.PinSet createPinSet()
RolapAggregationManagerRolapAggregationManager.PinSet.createPinSet in class RolapAggregationManagerpublic void shutdown()