Learning
Documentation
Community
Open Exchange
Global Masters
Home / Class Reference / ENSLIB namespace / %DeepSee.Query.Engine
Private  Storage   

%DeepSee.Query.Engine


class %DeepSee.Query.Engine extends
%RegisteredObject

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

Inventory


Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 44


Summary


Methods
%AddToSaveSet %AggregateAccum %AggregateEnd %AggregateStart
%ClassIsLatestVersion %ClassName %CleanBranchesForSlicer %ClearCache
%ConstructClone %CubeRemoved %DispatchClassMethod %DispatchGetModified
%DispatchGetProperty %DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty
%DispatchSetProperty %Extends %GetParameter %IsA
%IsModified %MergeRelatedBranches %New %NormalizeObject
%ObjectModified %OriginalNamespace %PackageName %ProcessResultSubset
%ReduceOrsInSlicer %RemoveFromSaveSet %ResolveAggregateAddress %SerializeObject
%SetModified %SpecToJoinIndex %ValidateObject


Parameters


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

Methods


• 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 %CubeRemoved(pCubeName As %String, pClassName As %String) as %Status
Notification that a cube has been removed / recompiled.
• classmethod %MergeRelatedBranches(ByRef pRelatedBranch, Output pLocalBranch) as %Status
• 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.
• 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
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 %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.