class %DeepSee.Query.query
extends node
This class holds run-time information for a DeepSee MDX statement and
provides the machinery to prepare and execute it (via the
%DeepSee.ResultSet interface.
property %isCompound
as %Boolean(XMLPROJECTION="attribute") [ InitialExpression = 0 ];
If true, then this is a query on a compound cube.
relationship axes
as %DeepSee.Query.axis(XMLELEMENTREF=1,XMLPROJECTION="ELEMENT",XMLTYPECONSTRAINT="CHOICE") [ Inverse = query,Cardinality = many ];
Axes defined for this query.
property calculatedMembers
as array of %DeepSee.Query.calculatedMember(XMLKEYNAME="memberName",XMLPROJECTION="ELEMENT");
Collection of Calculated Members defined within the WITH clause of the query.
These are indexed by Dimension.MemberName.
property compoundQueries
as list of %String(XMLPROJECTION="NONE");
For queries on compound cubes, this is the set of keys for the subqueries that have to be executed
and then joined.
property cube
as %DeepSee.Datatype.string(XMLPROJECTION="attribute");
Name of the cube this query is based on.
This is the FROM clause of the query.
property filterAxis
as %DeepSee.Query.axis(XMLPROJECTION="NONE");
Used to hold cube/subjectArea level filter.
property filters
as list of %DeepSee.Query.axis(XMLPROJECTION="ELEMENT");
Filter(s) defined for this query.
This is the ISC extension %FILTER clause of the query.
property namedSets
as array of %DeepSee.Query.namedSet(XMLKEYNAME="setName",XMLPROJECTION="ELEMENT");
Collection of Named Sets defined within the WITH clause of the query.
property queryType
as %DeepSee.Datatype.string(VALUELIST=",SELECT,DRILLTHROUGH,CREATE,DROP,%BITSET",XMLPROJECTION="attribute") [ InitialExpression = "SELECT" ];
This indicates what type of MDX statement this is.
property recompute
as %Boolean(XMLPROJECTION="none") [ InitialExpression = 1 ];
If true recompute previously run queries whose data has been updated.
otherwise return old values.
property showPlan
as %Boolean(XMLPROJECTION="none") [ InitialExpression = 0 ];
If true, execute this query in "plan" mode.
property slicer
as %DeepSee.Query.axis(XMLPROJECTION="ELEMENT");
Slicer defined for this query.
This is the WHERE clause of the query.
From a definition perspective this is no different than any other axis.
property subqueries
as list of %DeepSee.ResultSet(XMLPROJECTION="NONE");
Collection of all subqueries associated with this query.
property useAgents
as %Boolean(XMLPROJECTION="none") [ InitialExpression = 0 ];
If true, execute using background agents.
This is set when using async mode.
property useCache
as %Boolean(XMLPROJECTION="attribute") [ InitialExpression = 1 ];
If true, then use results caching for this query.
method %ClearStatistics()
Clear out current statistics for this query.
method %CreateSubQueryResultSet(pMDX As %String, Output pRS As %DeepSee.ResultSet, pSkipWITH As %Boolean = 0)
as %Status
Create and prepare a result set for a subquery within this query.
method %ExecuteAsynch(pWait As %Boolean = 0, Output pTaskGroupId As %String)
as %Status
Execute this query using background agents.
If pWait is true (1) then do not return until the background
agents are finished.
If pWait is false, then pTaskGroupId will return the task group id
used to execute the query.
method %ExecuteParameters(ByRef pParms)
as %Status
Apply the set of named parameters values to this query and
then make sure the result cache is ready to accept values.
method %GetCalculatedMembers(pDimName As %String, ByRef pList As %String)
as %Status
Find the list of calculated members in the given dimension.
Return a list of their names:
pList(UNAME) = name
method %GetParameterInfo(Output pParms)
as %Status
Return the set of named parameters values defined by this query.
method %GetSubQuery(pKey As %Integer, Output pRS As %DeepSee.ResultSet)
as %Status
Retrieve a ResultSet from the set of registered subqueries.
classmethod %IsAggFunc(pFunc As %String)
as %Boolean
Test if pFunc is an aggregate function
method %LookupCalculatedMember(pDimName As %String, pName As %String, ByRef pSet As %DeepSee.Query.set, Output pSC As %Status, Output pIsFunc As %Boolean)
as %Boolean
See if the specified named set is defined.
Neither pDimName or pName should have [ ] characters around them.
If pName is the name of one of the few functions allowed on calculated dimensions,
then pIsFunc is set.
method %LookupNamedSet(pName As %String, ByRef pSet As %DeepSee.Query.set, Output pSC As %Status)
as %Boolean
See if the specified named set is defined.
pName should not have [ ] characters around it.
method %PreProcessQuery()
as %Status
Execute the pre-processing logic for this node.
method %Prepare()
as %Status
Prepare this query.
This is the first step in executing a query.
method %PrintNode(pLevel As %Integer = 0)
Diagnostic. Print value of this node to the console.
method %PrintStatistics()
Write out current statistics for this query.
method %RegisterSubQuery(pMDX As %String, Output pKey As %Integer, pAxis As axis = "", pSkipWITH As %Boolean = 0)
as %Status
Add the given subquery to the list of subqueries and return its key (for subsequent lookup).
classmethod %TestSubQueryCache(pCubeName As %String, pQueryKey As %String, pTimestamp As %String, Output pCurrent As %Boolean, pQueryCube As %String)
as %Status
Given a cube, subquery key, and timestamp, determine if there
is an up-to-date result cache for the query.
Return true (1) if this is the case.
As a side effect, remove any out-of-date portions of the result cache for this query.
method %ToString(Output pSC As %Status)
as %String
Convert this node to its text representation.
method %WITHToString()
as %String
Convert the WITH clause for this query (named sets and calculated members) to a canonic text representation.