Query processing with specialized query operators
First Claim
1. A system for generating a query processing solution for a query involving a data set on a device having a processor and a memory, comprising:
- a query operator set comprising;
at least one single-task query operator comprising instructions stored in the memory that, when executed on the processor, cause the device to perform a query task on the data set, andat least one multiple-task query operator comprising instructions stored in the memory that, when executed on the processor, cause the device to perform at least one query task and at least one additional query task on the data set; and
a query operator selecting component comprising instructions stored in the memory that, when executed on the processor, cause the device to;
for respective query terms;
for respective multiple-task query operators;
determine whether the at least one additional query task of the multiple-task query operator is also to be performed on the data set, andupon determining that the at least one additional query task is also to be performed on the data set, select the multiple-task query operator for applying the query task and the at least one additional query task to the data set; and
upon failing to select a multiple-task query operator for the query term, select an single-task query operator for applying the query task to the data set; and
generate the query processing solution as a sequence of selected query operators.
2 Assignments
0 Petitions
Accused Products
Abstract
Queries targeting various data sources are processed in a query processing pipeline that parses the query into a set of operations (e.g., an expression tree or a translated SQL query) using a set of query operators, each handling a particular type of operation. The query operators are often designed in an unspecialized manner, such that each query operator handles one query operation in an atomic, generic manner (e.g., sorting generic data items for an ORDER BY clause.) More efficient queries may be devised by including specialized queries that operate in common but special cases, such as a sorting of a particular data type (e.g., a floating-point number sort) or a sequence of two or more operations that are often performed together (e.g., a WHERE test of an attribute followed by a SELECT of the same attribute.) The use of specialized operators may result in the formulation of more efficient queries.
-
Citations
20 Claims
-
1. A system for generating a query processing solution for a query involving a data set on a device having a processor and a memory, comprising:
-
a query operator set comprising; at least one single-task query operator comprising instructions stored in the memory that, when executed on the processor, cause the device to perform a query task on the data set, and at least one multiple-task query operator comprising instructions stored in the memory that, when executed on the processor, cause the device to perform at least one query task and at least one additional query task on the data set; and a query operator selecting component comprising instructions stored in the memory that, when executed on the processor, cause the device to; for respective query terms; for respective multiple-task query operators; determine whether the at least one additional query task of the multiple-task query operator is also to be performed on the data set, and upon determining that the at least one additional query task is also to be performed on the data set, select the multiple-task query operator for applying the query task and the at least one additional query task to the data set; and upon failing to select a multiple-task query operator for the query term, select an single-task query operator for applying the query task to the data set; and generate the query processing solution as a sequence of selected query operators. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of generating a query processing solution for a query from a query operator set comprising at least one query operator configured to perform at least one query task on a data set, the method comprising:
-
for respective query terms; for respective multiple-task query operators respectively configured to perform the query task and at least one additional query task on the data set; determining whether the at least one additional query task of the multiple-task query operator is also to be performed on the data set, and upon determining that the additional query task is also to be performed on the data set, selecting the multiple-task query operator for applying the query task and the at least one additional query task to the data set; and upon failing to select a multiple-task query operator for the query term, selecting a single-task query operator for applying the query task to the data set; and generating the query processing solution as a sequence of selected query term operators.
-
-
20. A nonvolatile computer-readable storage device comprising instructions that, when executed on a processor of a device, cause the device to generate a query processing solution for a query from a query operator set comprising at least one query operator configured to perform at least one query task on a data set, by:
-
for respective query terms; for respective multiple-task query operators respectively configured to perform the query task and at least one additional query task on the data set; determine whether the at least one additional query task of the multiple-task query operator is also to be performed on the data set, and upon determining that the additional query task is also to be performed on the data set, selecting the multiple-task query operator for applying the query task and the at least one additional query task to the data set; and upon failing to select a multiple-task query operator for the query term, selecting a single-task query operator applying the query task to the data set; and generating the query processing solution as a sequence of selected query term operators.
-
Specification