%DeepSee.Query.Engine
class %DeepSee.Query.Engine extends %Library.RegisteredObject
Contains the logic for calculating the results of a DeepSee query.Method Inventory
- %AggregateAccum()
- %AggregateEnd()
- %AggregateStart()
- %CleanBranchesForSlicer()
- %ClearCache()
- %ClearLog()
- %CubeRemoved()
- %GetLogSetting()
- %MergeRelatedBranches()
- %PrintLog()
- %ProcessResultSubset()
- %ReduceOrsInSlicer()
- %ResolveAggregateAddress()
- %SetLogging()
- %SpecToJoinIndex()
Parameters
parameter MAXLISTING = 20000;
Maximum number of items in a listing.
Setting this above 20000 can cause browser timeouts.
Methods
This is called during processing for an aggregate function.
It is called for each value in the set being aggregated.
classmethod %AggregateEnd(pFunction As %String, ByRef pFlags, ByRef pContext, Output pResult, Output pPendingInfo, pCubeName As %String = "", pQueryKey As %String = "") as %Status
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.
If the aggregate is being computed in the background, then pPendingInfo will contain details.
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.
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.
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.
Clear the results cache for the given cube.
If pResultsOnly is true, then only clear the results cache.
classmethod %ClearLog()
Clear all data stored in the runtime log. This preserves the original log level setting.
Notification that a cube has been removed / recompiled.
classmethod %GetLogSetting()
Return the current MDX Engine log setting.
classmethod %MergeRelatedBranches(ByRef pRelatedBranch, Output pLocalBranch) as %Status
classmethod %PrintLog(Output pStatistics, pVerbose=1)
Diagnostic printout of the recorded computation metrics
classmethod %ProcessResultSubset(pCube, pQueryKey, pAxisNo) as %Status
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.
^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.
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!
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!
classmethod %ResolveAggregateAddress(pCubeIndex="", pQueryKey="", ByRef pAddr, pRealAxisCount="", pFindAggregate=0) as %Status
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,
classmethod %SetLogging(pLogLevel=0)
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
- 1 - Record basic metrics such as method timers - 2 - Record actual counts of computational operations during query execution
classmethod %SpecToJoinIndex(pSpec As %List, pCube As %String = "", pKey As %String = "", pUseAgents As %Boolean = 1, ByRef pRelation, ByRef pIntersect, pGroupId As %String = "") as %Status
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.
Inherited Members
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()