Efficient handling of multipart queries against relational data
AssigneeSap SE
InventorsFranz X. Faerber, Christian M. Bartholomae, Erich Marschall, Stefan Dipper, Guenter Radestock
Life of this patent
Estimating the term…
Abstract
A query having multiple parts may be processed to form an intermediate results set. This intermediate results set may be partitioned into a plurality of groups. Thereafter, the groups may be sorted into a plurality of containers so that each container contains data sufficient to calculate one requested result in the multipart query. Related techniques, apparatuses, systems, and computer program products are also described.
Claims16
A computer-implemented method comprising:
- receiving a multipart query at an engine executed on a processor;
- processing, by the engine, the multipart query to form an intermediate results set;
- accessing, by the engine, a matrix from a memory, the matrix including attributes of the multipart query;
- mapping attributes requested by the multipart query with parts of the multipart query;
- partitioning, by the engine, the intermediate results set into a plurality of groups, the partitioning being based on the matrix and the mapping of attributes with the parts of the multipart query and occurring in at least one pass through the intermediate results set;
- sorting the groups into a plurality of containers according to the matrix, so that each container contains data to calculate one result in the multipart query;
- processing, by the engine, the groups sorted into the plurality of containers;
- and
- generating a final results set containing results requested in the multipart query based on processing the groups.
An apparatus to handle a multipart query against relational data, the apparatus comprising:
- an input processor to receive the multipart query, to map attributes requested by the multipart query with parts of the multipart query, and to define groups based on the mapping of the attributes to the parts of the multipart query to generate an intermediate results set;
- an engine to partition the intermediate results set according to the groups and based on a matrix representing the attributes of the multipart query and the parts of the multipart query;
- and
- an output processor to sort, based on the matrix, the groups into a plurality of containers so that each container contains data to calculate one requested result in the multipart query, the output processor further configured to generate a final results set containing results requested in the multipart query based on the groups sorted into the plurality of containers.
An apparatus as in claim 13, further comprising a transmitter to transmit the final results set to a remote client over a communications network.
A computer program product, tangibly embodied on a machine-readable storage medium, configured to cause a data processing apparatus to:
- receive a multipart query at an engine executed on a processor;
- process the multipart query to form an intermediate results set;
- access a matrix from a memory, the matrix including attributes of the multipart query;
- map attributes requested by the multipart query with parts of the multipart query;
- partition the intermediate results set into a plurality of groups, the partitioning being based on the matrix and the mapping of attributes with the parts of the multipart query and occurring in at least one pass through the intermediate results set;
- sort the groups into a plurality of containers according to the matrix, so that each container contains data to calculate one result in the multipart query;
- process the groups sorted into the plurality of containers;
- and
- generate a final results set containing results requested in the multipart query based on processing the groups.
Dependencies are inferred from the claim text.