IRISLIB database
All Classes Namespaces Functions Variables Pages
Engine Class Reference

Contains the logic for calculating the results of a DeepSee query. More...

Inheritance diagram for Engine:
Collaboration diagram for Engine:

Static Public Attributes

 MAXLISTING = None
 Maximum number of items in a listing. More...
 
- Static Public Attributes inherited from RegisteredObject
 CAPTION = None
 Optional name used by the Form Wizard for a class when generating forms. More...
 
 JAVATYPE = None
 The Java type to be used when exported.
 
 PROPERTYVALIDATION = None
 This parameter controls the default validation behavior for the object. More...
 

Static Private Member Functions

_.Library.Status AggregateAccum (_.Library.String pFunction, pFlags, pContext, pValue)
 This is called during processing for an aggregate function. More...
 
_.Library.Status AggregateEnd (_.Library.String pFunction, pFlags, pContext, pResult, pPendingInfo, _.Library.String pCubeName, _.Library.String pQueryKey)
 This is called at the end of processing for an aggregate function. More...
 
_.Library.Status AggregateStart (_.Library.String pFunction, pFlags, pContext)
 This is called at the start of processing for an aggregate function. More...
 
_.Library.Status CleanBranchesForSlicer (pSlicerBranches, _.Library.String pCube)
 The raw collection of the slicer branches can produce branches that define logically null sets. More...
 
_.Library.Status ClearCache (_.Library.String pCubeName, _.Library.Boolean pResultsOnly)
 Clear the results cache for the given cube. More...
 
 ClearLog ()
 Clear all data stored in the runtime log. More...
 
_.Library.Status CubeRemoved (_.Library.String pCubeName, _.Library.String pClassName)
 Notification that a cube has been removed / recompiled.
 
 GetLogSetting ()
 Return the current MDX Engine log setting.
 
 PrintLog (pStatistics, pVerbose)
 Diagnostic printout of the recorded computation metrics.
 
_.Library.Status ProcessResultSubset (pCube, pQueryKey, pAxisNo)
 Process any subset functions that have been noted for processing in the axis cache under
More...
 
_.Library.Status ReduceOrsInSlicer (pSlicerBranches, _.Library.String pCube)
 Reduce to minimal AND logic for the purposes of identifying global fact restrictions. More...
 
_.Library.Status ResolveAggregateAddress (pCubeIndex, pQueryKey, pAddr, pRealAxisCount, pFindAggregate)
 Given a current address in the results cache, find the root node for the aggregate. More...
 
 SetLogging (pLogLevel)
 Set the logging global to signal the engine to record events according to the appropriate level. More...
 
_.Library.Status SpecToJoinIndex (_.Library.List pSpec, _.Library.String pCube, _.Library.String pKey, _.Library.Boolean pUseAgents, pRelation, pIntersect, _.Library.String pGroupId)
 Produce all join index entries for a particular pSpec. More...
 

Additional Inherited Members

- Public Member Functions inherited from RegisteredObject
_.Library.Status OnAddToSaveSet (_.Library.Integer depth, _.Library.Integer insert, _.Library.Integer callcount)
 This callback method is invoked when the current object is added to the SaveSet,. More...
 
_.Library.Status OnClose ()
 This callback method is invoked by the <METHOD>Close</METHOD> method to. More...
 
_.Library.Status OnConstructClone (_.Library.RegisteredObject object, _.Library.Boolean deep, _.Library.String cloned)
 This callback method is invoked by the <METHOD>ConstructClone</METHOD> method to. More...
 
_.Library.Status OnNew ()
 This callback method is invoked by the <METHOD>New</METHOD> method to. More...
 
_.Library.Status OnValidateObject ()
 This callback method is invoked by the <METHOD>ValidateObject</METHOD> method to. More...
 

Detailed Description

Contains the logic for calculating the results of a DeepSee query.

Member Function Documentation

◆ AggregateAccum()

_.Library.Status AggregateAccum ( _.Library.String  pFunction,
  pFlags,
  pContext,
  pValue 
)
staticprivate

This is called during processing for an aggregate function.

It is called for each value in the set being aggregated.

◆ AggregateEnd()

_.Library.Status AggregateEnd ( _.Library.String  pFunction,
  pFlags,
  pContext,
  pResult,
  pPendingInfo,
_.Library.String  pCubeName,
_.Library.String  pQueryKey 
)
staticprivate

This is called at the end of processing for an aggregate function.


If the aggregate is being computed in the background, then pPendingInfo will contain details.

◆ AggregateStart()

_.Library.Status AggregateStart ( _.Library.String  pFunction,
  pFlags,
  pContext 
)
staticprivate

This is called at the start of processing for an aggregate function.


pFunction is the aggregate function.
pFlags is a set of flags for the aggregate function.
pContext is used to hold any context required to compute the aggregate.

◆ CleanBranchesForSlicer()

_.Library.Status CleanBranchesForSlicer (   pSlicerBranches,
_.Library.String  pCube 
)
staticprivate

The raw collection of the slicer branches can produce branches that define logically null sets.

This removes those branches, and removes duplicate entries within a branch that would lead to extra processing.

◆ ClearCache()

_.Library.Status ClearCache ( _.Library.String  pCubeName,
_.Library.Boolean  pResultsOnly 
)
staticprivate

Clear the results cache for the given cube.

If pResultsOnly is true, then only clear the results cache.

◆ ClearLog()

ClearLog ( )
staticprivate

Clear all data stored in the runtime log.

This preserves the original log level setting.

◆ ProcessResultSubset()

_.Library.Status ProcessResultSubset (   pCube,
  pQueryKey,
  pAxisNo 
)
staticprivate

Process any subset functions that have been noted for processing in the axis cache under

^DeepSee.Cache.Axis(cube,axisKey,"subset")
For each subset node the results currently in the result cache will be trimmed according to the subset function and the count of that subset function. If multiple subset functions are nested within one another, the innermost function will be processed first and subsequent nested functions will be processed on the remaining results.
If these nodes do not exist in the axis cache this method will do nothing.

◆ ReduceOrsInSlicer()

_.Library.Status ReduceOrsInSlicer (   pSlicerBranches,
_.Library.String  pCube 
)
staticprivate

Reduce to minimal AND logic for the purposes of identifying global fact restrictions.

This attempts to simplify the restriction terms by reducing a slicer tree
pSlicerBranches(OrIndex,AndIndex)
structure into a single OR branch. This produces the minimally restrictive representation of the slicer. Note that this should not be used when calculating the final results, as it will throw away some restrictions!

◆ ResolveAggregateAddress()

_.Library.Status ResolveAggregateAddress (   pCubeIndex,
  pQueryKey,
  pAddr,
  pRealAxisCount,
  pFindAggregate 
)
staticprivate

Given a current address in the results cache, find the root node for the aggregate.

If the input address is not the

child of an aggregate, change nothing. If pFindAggregate=1, then search the axes for a special aggregate node. If none is found,

◆ SetLogging()

SetLogging (   pLogLevel)
staticprivate

Set the logging global to signal the engine to record events according to the appropriate level.

pLogLevel may be set to

  • 1 - Record basic metrics such as method timers
  • 2 - Record actual counts of computational operations during query execution

◆ SpecToJoinIndex()

_.Library.Status SpecToJoinIndex ( _.Library.List  pSpec,
_.Library.String  pCube,
_.Library.String  pKey,
_.Library.Boolean  pUseAgents,
  pRelation,
  pIntersect,
_.Library.String  pGroupId 
)
staticprivate

Produce all join index entries for a particular pSpec.

The references pCube and pKeyare required.

The array pRelation contains the metadata about the current relationships in play in the cube. The by-reference pIntersect can be used to prevent duplicate calculations of the same join index keys.

Member Data Documentation

◆ MAXLISTING

MAXLISTING = None
static

Maximum number of items in a listing.

Setting this above 20000 can cause browser timeouts.