Skip to main content


class %DeepSee.Query.Engine extends %Library.RegisteredObject

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

Method Inventory


parameter MAXLISTING = 20000;
Maximum number of items in a listing. Setting this above 20000 can cause browser timeouts.


classmethod %AggregateAccum(pFunction As %String, ByRef pFlags, ByRef pContext, pValue) as %Status
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.
classmethod %AggregateStart(pFunction As %String, ByRef pFlags, ByRef pContext) as %Status
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.
classmethod %CleanBranchesForSlicer(ByRef pSlicerBranches, pCube As %String = "") as %Status
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.
classmethod %ClearCache(pCubeName As %String, pResultsOnly As %Boolean = 0) as %Status
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.
classmethod %CubeRemoved(pCubeName As %String, pClassName As %String) as %Status
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
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.
classmethod %ReduceOrsInSlicer(ByRef pSlicerBranches, pCube As %String = "") as %Status
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
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
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

FeedbackOpens in a new tab