Patent ID: 8229923

Claim:
A computer-implemented method of executing a query of a data space having a number of dimensions, a particular dimension associated with a set of data references, a particular data reference defined to reference one or more stored data items located in one or more computer-readable storage media, the method comprising: receiving a query of the data space, the query having an expression with an operand comprising a particular dimension or a particular data reference or both, evaluation of the expression producing one or more calculated data items; based on the data space and the query, identifying a query result space, the query result space having one or more result dimensions; generating a calculation execution plan for each of one or more subcubes covering the query result space and for retrieving, from the one or more computer-readable storage media, stored data items referenced by the sets of data references associated with the result dimensions, and for evaluating the expression based on the retrieved stored data items to produce calculated data items, the calculation execution plan including a subcube to which the calculation execution plan applies and a calculation to be applied to the subcube; executing the calculation execution plan to produce a stream of data tuples, a particular data tuple having a set of data components storing the retrieved stored data items or storing the produced calculated data items, a particular data component of a particular data tuple being either empty or having a data value; iterating over the data tuples in the stream of data tuples, the iterating not including symbolic analysis of calculation expressions within data in the stream, the step of iterating comprising identifying a subject data tuple within the stream, determining whether each data component of the subject data tuple is empty at an intersection of the subject data tuple and each result dimension, when each data component of the subject data tuple is empty at an intersection of the subject data tuple and each result dimension, do not populate a query result set stored in a query result data structure with the subject data tuple, and when any data component of the subject data tuple has a data value at an intersection of the subject data tuple and any result dimension, do populate the query result set with the subject data tuple; and after iterating, presenting contents of the query result data structure to a user.