QUERY PROCESSING PIPELINES WITH SINGLE-ITEM AND MULTIPLE-ITEM QUERY OPERATORS
First Claim
1. A method of issuing a query comprising at least one data source reference to a data source using a set of data source mappings and a set of query operators comprising at least one single-item query operator and at least one multiple-item query operator, the method comprising:
- transforming the query into an expression tree;
identifying the query as one of a single-item query and a multiple-item query;
upon identifying a single-item query, selecting at least one single-item query operator invoked by the query;
upon identifying a multiple-item query, selecting at least one multiple-item query operator invoked by the query;
invoking selected query operators to;
map the data source references of the expression tree to respective aspects of the data source using the data source mappings, andtranslate the expression tree into a translated query in a query language; and
sending the translated query to the data source.
2 Assignments
0 Petitions
Accused Products
Abstract
Queries against data sources (such as language-integrated queries to be applied against relational databases) may be prepared for processing by a query processing pipeline. This pipeline performs services including transforming the query into a form more easily applied by the data source, e.g., into SQL, by matching query terms with query operators configured to handle various query operations. Many query processing pipelines include single-item query operators that perform individual operations (e.g., an updating query operator that specifies an updating of individual records of a table.) An integrated query pipeline may be devised that includes both single-item query operators and multiple-item query operators that specify operations on sets of data items. An integrated query processing pipeline may analyze the query to determine whether a single-item or multiple-item operation is specified in order to select an appropriate query operator, which may improve the efficiency and performance of the data source querying.
119 Citations
20 Claims
-
1. A method of issuing a query comprising at least one data source reference to a data source using a set of data source mappings and a set of query operators comprising at least one single-item query operator and at least one multiple-item query operator, the method comprising:
-
transforming the query into an expression tree; identifying the query as one of a single-item query and a multiple-item query; upon identifying a single-item query, selecting at least one single-item query operator invoked by the query; upon identifying a multiple-item query, selecting at least one multiple-item query operator invoked by the query; invoking selected query operators to; map the data source references of the expression tree to respective aspects of the data source using the data source mappings, and translate the expression tree into a translated query in a query language; and sending the translated query to the data source. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for issuing a query comprising at least one data source reference to a data source, the system comprising:
-
a set of data source mappings; a set of query operators comprising at least one single-item query operator and at least one multiple-item query operator; a query transforming component configured to transform the query into an expression tree; a query identifying component configured to identify the query as one of a single-item query and a multiple-item query; a query operator selecting component configured to select at least one of; at least one single-item query operator invoked by a single-item query, and at least one multiple-item query operator invoked by a multiple-item query; a query translating component configured to invoke the selected query operators to; map the data source references of the expression tree to respective aspects of the data source using the data source mappings, and translate the expression tree into a translated query in a query language; and a query sending component configured to send the translated query to the data source. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for issuing a data source altering query comprising at least one data source reference to a data source and referencing at least one local object, the system comprising:
-
a set of data source mappings comprising at least one of; a schema definition, and a set of metadata associated respective aspects of the data source; a set of query operators comprising at least one single-item query operator and at least one multiple-item query operator; a query transforming component configured to transform the query into an expression tree; a query identifying component configured to identify the query as one of a single-item query and a multiple-item query; a query operator selecting component configured to select at least one of; at least one single-item query operator invoked by a single-item query, and at least one multiple-item query operator invoked by a multiple-item query; a query translating component configured to invoke the selected query operators to; map the data source references of the expression tree to respective aspects of the data source using the data source mappings, and translate the expression tree into a translated query in a query language; at least one data source cache configured to cache at least one aspect of the data source upon sending a query and upon receiving a query result; a query sending component configured to; serialize the at least one local object, identify the query as one of an altering query and a non-altering query; upon identifying an altering query, cache at least one data source aspect set by the altering query in the data source cache; upon identifying a non-altering query; query the data source cache to identify at least one cached data source aspect referenced by the non-altering query; upon identifying at least one cached data source aspect referenced by the non-altering query, return the cached data source aspect in response to the query; and upon failing to identify at least one cached data source aspect referenced by the non-altering query; send the translated query to the data source, and send a serialized representation of the at least one local object to the data source; and a query result receiving component configured to; receive a query result from the data source in response to the query, and deserialize at least one local object from at least one aspect of the query result.
-
Specification