Skip to main content


class %DeepSee.Query.query extends %DeepSee.Query.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 Inventory

Method Inventory


property %LockKeys as %String [ MultiDimensional ];
This holds a copy of all lock keys protecting this execution.
Property methods: %LockKeysDisplayToLogical(), %LockKeysGet(), %LockKeysIsValid(), %LockKeysLogicalToDisplay(), %LockKeysLogicalToOdbc(), %LockKeysNormalize(), %LockKeysSet()
property %isCompound as %Boolean (XMLPROJECTION = "attribute") [ InitialExpression = 0 ];
If true, then this is a query on a compound cube.
Property methods: %isCompoundDisplayToLogical(), %isCompoundGet(), %isCompoundIsValid(), %isCompoundLogicalToDisplay(), %isCompoundLogicalToXSD(), %isCompoundNormalize(), %isCompoundSet(), %isCompoundXSDToLogical()
property %isCompoundMember as %Boolean [ InitialExpression = 0 ];
If true, this query is being run as a subquery in a compound cube.
Property methods: %isCompoundMemberDisplayToLogical(), %isCompoundMemberGet(), %isCompoundMemberIsValid(), %isCompoundMemberLogicalToDisplay(), %isCompoundMemberLogicalToXSD(), %isCompoundMemberNormalize(), %isCompoundMemberSet(), %isCompoundMemberXSDToLogical()
property %originalWITHContents as %String;
Original components of the WITH clause. Order is not necessarily preserved from the original query text.
Property methods: %originalWITHContentsDisplayToLogical(), %originalWITHContentsGet(), %originalWITHContentsIsValid(), %originalWITHContentsLogicalToDisplay(), %originalWITHContentsLogicalToOdbc(), %originalWITHContentsNormalize(), %originalWITHContentsSet()
property %variables as %String [ MultiDimensional ];
Current pivot variable settings for this query.
Property methods: %variablesDisplayToLogical(), %variablesGet(), %variablesIsValid(), %variablesLogicalToDisplay(), %variablesLogicalToOdbc(), %variablesNormalize(), %variablesSet()
relationship axes as array of %DeepSee.Query.axis (XMLELEMENTREF = 1, XMLPROJECTION = "ELEMENT", XMLTYPECONSTRAINT = "CHOICE") [ InitialExpression = $listbuild("%DeepSee.Query.axis","query",+$this,"many",0,0) , Transient , Inverse = query , Cardinality = many ];
Axes defined for this query.
Property methods: axesGet(), axesGetObject(), axesGetObjectId(), axesGetSwizzled(), axesIsEmpty(), axesIsValid(), axesNewObject(), axesRClose(), axesRExec(), axesRFetch(), axesRelate(), axesSQLCompute(), axesSet(), axesUnRelate()
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 methods: calculatedMembersBuildValueArray(), calculatedMembersCollectionToDisplay(), calculatedMembersCollectionToOdbc(), calculatedMembersDisplayToCollection(), calculatedMembersGet(), calculatedMembersGetObject(), calculatedMembersGetObjectId(), calculatedMembersGetSwizzled(), calculatedMembersIsValid(), calculatedMembersOdbcToCollection(), calculatedMembersSet(), calculatedMembersSetObject(), calculatedMembersSetObjectId()
property compoundDrillthroughs as list of %String (XMLPROJECTION = "NONE");
For DRILLTHROUGH queries on compound cubes, this is the MDX DRILLTHROUGH statements for each leg of the compound query.
Property methods: compoundDrillthroughsBuildValueArray(), compoundDrillthroughsCollectionToDisplay(), compoundDrillthroughsCollectionToOdbc(), compoundDrillthroughsDisplayToCollection(), compoundDrillthroughsDisplayToLogical(), compoundDrillthroughsGet(), compoundDrillthroughsGetObject(), compoundDrillthroughsGetObjectId(), compoundDrillthroughsGetSwizzled(), compoundDrillthroughsIsValid(), compoundDrillthroughsLogicalToDisplay(), compoundDrillthroughsLogicalToOdbc(), compoundDrillthroughsNormalize(), compoundDrillthroughsOdbcToCollection(), compoundDrillthroughsSet(), compoundDrillthroughsSetObject(), compoundDrillthroughsSetObjectId()
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 methods: compoundQueriesBuildValueArray(), compoundQueriesCollectionToDisplay(), compoundQueriesCollectionToOdbc(), compoundQueriesDisplayToCollection(), compoundQueriesDisplayToLogical(), compoundQueriesGet(), compoundQueriesGetObject(), compoundQueriesGetObjectId(), compoundQueriesGetSwizzled(), compoundQueriesIsValid(), compoundQueriesLogicalToDisplay(), compoundQueriesLogicalToOdbc(), compoundQueriesNormalize(), compoundQueriesOdbcToCollection(), compoundQueriesSet(), compoundQueriesSetObject(), compoundQueriesSetObjectId()
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 methods: cubeDisplayToLogical(), cubeGet(), cubeIsValid(), cubeLogicalToDisplay(), cubeLogicalToOdbc(), cubeNormalize(), cubeSet()
property filterAxis as %DeepSee.Query.axis (XMLPROJECTION = "NONE");
Used to hold cube/subjectArea level filter.
Property methods: filterAxisGet(), filterAxisGetSwizzled(), filterAxisIsValid(), filterAxisNewObject(), filterAxisSet()
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 methods: filtersBuildValueArray(), filtersCollectionToDisplay(), filtersCollectionToOdbc(), filtersDisplayToCollection(), filtersGet(), filtersGetObject(), filtersGetObjectId(), filtersGetSwizzled(), filtersIsValid(), filtersOdbcToCollection(), filtersSet(), filtersSetObject(), filtersSetObjectId()
property measureAxis as %Integer [ InitialExpression = -1 ];
Used as an indicator as to which axis supplies the measure information for this query. The slicer is denoted by a 0, other axes are logged as their 1-based number. A value of -1 for this property indicates the default measure will be used.
Property methods: measureAxisDisplayToLogical(), measureAxisGet(), measureAxisIsValid(), measureAxisLogicalToDisplay(), measureAxisNormalize(), measureAxisSet(), measureAxisXSDToLogical()
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 methods: namedSetsBuildValueArray(), namedSetsCollectionToDisplay(), namedSetsCollectionToOdbc(), namedSetsDisplayToCollection(), namedSetsGet(), namedSetsGetObject(), namedSetsGetObjectId(), namedSetsGetSwizzled(), namedSetsIsValid(), namedSetsOdbcToCollection(), namedSetsSet(), namedSetsSetObject(), namedSetsSetObjectId()
property parentCube as %String;
Contains the parent cube name if query is a member of a subquery.
Property methods: parentCubeDisplayToLogical(), parentCubeGet(), parentCubeIsValid(), parentCubeLogicalToDisplay(), parentCubeLogicalToOdbc(), parentCubeNormalize(), parentCubeSet()
property parentQueryKey as %String (XMLPROJECTION = "none");
For subqueries, remember which parent query initiated it.
Property methods: parentQueryKeyDisplayToLogical(), parentQueryKeyGet(), parentQueryKeyIsValid(), parentQueryKeyLogicalToDisplay(), parentQueryKeyLogicalToOdbc(), parentQueryKeyNormalize(), parentQueryKeySet()
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 methods: queryTypeDisplayToLogical(), queryTypeGet(), queryTypeIsValid(), queryTypeLogicalToDisplay(), queryTypeLogicalToOdbc(), queryTypeNormalize(), queryTypeSet()
property recompute as %Boolean (XMLPROJECTION = "none") [ InitialExpression = 1 ];
If true recompute previously run queries whose data has been updated. otherwise return old values.
Property methods: recomputeDisplayToLogical(), recomputeGet(), recomputeIsValid(), recomputeLogicalToDisplay(), recomputeLogicalToXSD(), recomputeNormalize(), recomputeSet(), recomputeXSDToLogical()
property showPlan as %Boolean (XMLPROJECTION = "none") [ InitialExpression = 0 ];
If true, execute this query in "plan" mode.
Property methods: showPlanDisplayToLogical(), showPlanGet(), showPlanIsValid(), showPlanLogicalToDisplay(), showPlanLogicalToXSD(), showPlanNormalize(), showPlanSet(), showPlanXSDToLogical()
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 methods: slicerGet(), slicerGetSwizzled(), slicerIsValid(), slicerNewObject(), slicerSet()
property subqueries as list of %DeepSee.ResultSet (XMLPROJECTION = "NONE");
Collection of all subqueries associated with this query.
Property methods: subqueriesBuildValueArray(), subqueriesCollectionToDisplay(), subqueriesCollectionToOdbc(), subqueriesDisplayToCollection(), subqueriesGet(), subqueriesGetObject(), subqueriesGetObjectId(), subqueriesGetSwizzled(), subqueriesIsValid(), subqueriesOdbcToCollection(), subqueriesSet(), subqueriesSetObject(), subqueriesSetObjectId()
property useAgents as %Boolean (XMLPROJECTION = "none") [ InitialExpression = 0 ];
If true, execute using background agents.
This is set when using async mode.
Property methods: useAgentsDisplayToLogical(), useAgentsGet(), useAgentsIsValid(), useAgentsLogicalToDisplay(), useAgentsLogicalToXSD(), useAgentsNormalize(), useAgentsSet(), useAgentsXSDToLogical()
property useCache as %Boolean (XMLPROJECTION = "attribute") [ InitialExpression = 1 ];
If true, then use results caching for this query.
Property methods: useCacheDisplayToLogical(), useCacheGet(), useCacheIsValid(), useCacheLogicalToDisplay(), useCacheLogicalToXSD(), useCacheNormalize(), useCacheSet(), useCacheXSDToLogical()


classmethod %AddLabel(pReferenceGroup As, pLabel As = "", Output pLabeledGroup As as %Status
Add a %LABEL to pReferenceGroup. The label is supplied to the method as an abstracted %LABEL object pLabel. The input group is placed in the first argument of a %LABEL which contains all the same parameters that are defined in pLabel. The newly labeled group is returned in pLabeledGroup.
classmethod %CheckResultsCache(pCubeName, pQueryKey, ByRef pUpToDate=1) as %Status
classmethod %CheckSubqueryResultsCache(pMainCube, pCubeName, pQueryKey, ByRef pUpToDate=1) as %Status
method %ClearStatistics()
Clear out current statistics for this query.
method %CompleteAxes() as %Status
Make sure this query has an executable set of axes. Axes 0 and 1 (COLUMNS, ROWS) are required, axis 2 is optional. If either Rows or Columns are missing, insert a placeholder %SEARCH term
method %CreateAxisKey(Output pStatus As %Status = $$$OK, pType="", pAxis As %DeepSee.Query.axis = $$$NULLOREF, pOriginalSpec="", Output pFinalText="", pRefreshKey As %Boolean = 0) as %String
Generate an axis key for a %DeepSee.Query.axis object.
method %CreateResultKey(Output pStatus As %Status = $$$OK, Output pFinalText="", pRefreshKey As %Boolean = 0, pMDXRequest As %String = "") as %String
Generate the result key for the current query object.
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, pAxesOnly As %Boolean = 0, pAxisQuery As %String = "", ByRef pParms) 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.
method %HasOrder(pMember, Output pHasOrder, Output pGroup) as %Status
Check if pMember has an ORDER() function in it (or in one of its children).
method %HasSubsetFunction(ByRef pMember, Output pGroup, Output pHasSubsetFunction) as %Status
Check if a given group has a subset function (HEAD, TAIL, SUBSET) in it and, if so, return the first such subgroup with output pGroup.
classmethod %IsAggFunc(pFunc As %String) as %Boolean
Test if pFunc is an aggregate function
method %IsExecutable(Output pStatus=$$$OK, Output pReason As %String = "") as %Boolean
Test the current query object for enabled dimensions, measures, and relationships as aplicable. If all items have completed a build process and contain queryable data, the query is executable.
method %LookupCalculatedMember(ByRef pMemberSpec As %String, pCount As %Integer, ByRef pSet As %DeepSee.Query.set, Output pSC As %Status, Output pIsFunc As %Boolean, pUseKey As %Boolean = 0) as %Boolean
See if the specified calculated member is defined.
pMemberSpec is an array of the names making up the member spec. pCount is the number of names to look at in the list. None of the names in the list should have [ ] characters around them.
If the last item in the list 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.
classmethod %NullifyAxis(pAxisKey) as %Status
Set the axis to a literal null
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 %RemoveLabel(pReferenceGroup As, Output pLabelGroup As, Output pInnerGroup As as %Status
Remove the %LABEL and expose the group is is acting upon. The abstracted contents of the %LABEL are returned as the pLabelGroup.
classmethod %RemoveLabelsInFilterExpression(pReferenceGroup As, Output pOutputGroup As, pCubeName As %String = "") as %Status
classmethod %ResolveVariablesInText(pMDX As %String, ByRef pVariables) as %Status
Resolve any instances of "$variable.Name" in the text pMDX using values in the lookup array pVariables.
method %RewriteForOrder(pAxis As %DeepSee.Query.axis, pOppAxis As %DeepSee.Query.axis) as %Status
Rewrite a group if necessary to sort the members of pOppAxis.
classmethod %RewriteNodeAsSubquery(pNode) as %DeepSee.Query.node
Write the node as the columns clause in an %MDX subquery.
method %SetVariables(ByRef pVariables) as %Status
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.

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab