Execution of database queries including filtering
First Claim
Patent Images
1. A method comprising:
- stabilizing a page of data that includes a record to be accessed in accordance with an access plan generated for executing a query, the query comprising a non-predicate filtering operation;
positioning a cursor on the record to be accessed;
applying the non-predicate filtering operation of the query to the record to determine whether the record is to be filtered under the non-predicate filtering operation while the page of data remains stabilized; and
in response to a determination that the record is to be filtered under the non-predicate filtering operation,repositioning the cursor on a next record included in the page of data that is to be accessed in accordance with the access plan generated for executing the query without releasing stabilization of the page of data, andapplying the non-predicate filtering operation of the query to the next record to determine whether the next record is to be filtered under the non-predicate filtering operation while the page of data remains stabilized.
1 Assignment
0 Petitions
Accused Products
Abstract
A query processing system has a query processor and a data manager. The query processor calls the data manager to carry out data access for a query including a filtering operation. The data manager accesses the data in a set of data and before returning the data, initiates a callback to the query processor to determine if the located data meets the filtering criteria. Where the data does not satisfy the filtering criteria, the data manager seeks additional data in the set of data, without having to return the first located data to the query processor.
25 Citations
33 Claims
-
1. A method comprising:
-
stabilizing a page of data that includes a record to be accessed in accordance with an access plan generated for executing a query, the query comprising a non-predicate filtering operation; positioning a cursor on the record to be accessed; applying the non-predicate filtering operation of the query to the record to determine whether the record is to be filtered under the non-predicate filtering operation while the page of data remains stabilized; and in response to a determination that the record is to be filtered under the non-predicate filtering operation, repositioning the cursor on a next record included in the page of data that is to be accessed in accordance with the access plan generated for executing the query without releasing stabilization of the page of data, and applying the non-predicate filtering operation of the query to the next record to determine whether the next record is to be filtered under the non-predicate filtering operation while the page of data remains stabilized. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable storage medium encoded with a computer program, the computer program comprising computer-executable instructions for:
-
stabilizing a page of data that includes a record to be accessed in accordance with an access plan generated for executing a query, the query comprising a non-predicate filtering operation; positioning a cursor on the record to be accessed; applying the non-predicate filtering operation of the query to the record to determine whether the record is to be filtered under the non-predicate filtering operation while the page of data remains stabilized; and in response to a determination that the record is to be filtered under the non-predicate filtering operation, repositioning the cursor on a next record included in the page of data that is to be accessed in accordance with the access plan generated for executing the query without releasing stabilization of the page of data, and applying the non-predicate filtering operation of the query to the next record to determine whether the next record is to be filtered under the non-predicate filtering operation while the page of data remains stabilized. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a data manager, the data manager stabilizing a page of data that includes a record to be accessed in accordance with an access plan generated for executing a query, the query comprising a non-predicate filtering operation, and positioning a cursor on the record to be accessed; and a query manager in communication with the data manager, the query manager applying the non-predicate filtering operation of the query to the record to determine whether the record is qualifies under the non-predicate filtering operation while the page of data remains stabilized, and indicating to the data manager that the record is to be filtered responsive to a determination that the record does not qualify under the non-predicate filtering operation, in response to receiving the indication from the query manager that the record is to be filtered, the data manager repositions the cursor on a next record included in the page of data that is to be accessed in accordance with the access plan generated for executing the query without releasing stabilization of the page of data, and calls the query manager to apply the non-predicate filtering operation of the query to the next record without releasing stabilization of the page of data. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A query processing system comprising:
-
a compiler generating an access plan for executing a query, the query comprising a designated filtering operation, the designated filtering operation being a non-predicate filtering operation; a data manager managing access to records located in pages of stored data; and a query processor in communication with the compiler and the data manager, the query processor receiving the access plan for executing the query from the compiler, and indicating to the data manager that the query comprises the designated filtering operation, in response to receiving the indication from the query processor that the query comprises the designated filtering operation, the data manager stabilizes a page of data containing a record to be accessed in accordance with the access plan generated for executing the query, positions a cursor on the record to be accessed contained in the page of data, and calls the query processor to apply the designated filtering operation of the query to the record without releasing stabilization of the page of data, in response to receiving the call from the data manager to apply the designated filtering operation, the query processor applies the designated filtering operation of the query to the record contained in the page of data to determine whether the record qualifies under the designated filtering operation while the page of data remains stabilized, indicates to the data manager that the record is not to be filtered in response to a determination that the record qualifies under the designated filtering operation, and indicates to the data manager that the record is to be filtered in response to a determination that the record does not qualify under the designated filtering operation, in response to receiving the indication from the query processor that the record is not to be filtered, the data manager copies the record to a storage location for further processing in accordance with the access plan, and releases stabilization of the page of data, in response to receiving the indication from the query processor that the record is to be filtered, the data manager repositions the cursor on a next record to be accessed contained in the page of data without releasing stabilization of the page of data, and calls the query processor to apply the designated filtering operation of the query to the next record without releasing stabilization of the page of data. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method comprising:
-
generating an access plan for executing a query, the query comprising a designated filtering operation, the designated filtering operation being a non-predicate filtering operation; stabilizing a page of data containing a record to be accessed in accordance with the access plan generated for executing the query; positioning a cursor on the record to be accessed contained in the page of data; applying the designated filtering operation of the query to the record contained in the page of data to determine whether the record qualifies under the designated filtering operation while the page of data remains stabilized; in response to a determination that the record qualifies under the designated filtering operation, copying the record to a storage location for further processing in accordance with the access plan, and releasing stabilization of the page of data; and in response to a determination that the record does not qualify under the designated filtering operation, repositioning the cursor on a next record to be accessed contained in the page of data without releasing stabilization of the page of data, and applying the designated filtering operation of the query to the next record contained in the page of data while the page of data remains stabilized. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A non-transitory computer readable storage medium encoded with a computer program, the computer program comprising computer-executable instructions for:
-
generating an access plan for executing a query, the query comprising a designated filtering operation, the designated filtering operation being a non-predicate filtering operation; stabilizing a page of data containing a record to be accessed in accordance with the access plan generated for executing the query; positioning a cursor on the record to be accessed contained in the page of data; applying the designated filtering operation of the query to the record contained in the page of data to determine whether the record qualifies under the designated filtering operation while the page of data remains stabilized; in response to a determination that the record qualifies under the designated filtering operation, copying the record to a storage location for further processing in accordance with the access plan, and releasing stabilization of the page of data; and in response to a determination that the record does not qualify under the designated filtering operation, repositioning the cursor on a next record to be accessed contained in the page of data without releasing stabilization of the page of data, and applying the designated filtering operation of the query to the next record contained in the page of data while the page of data remains stabilized. - View Dependent Claims (30, 31, 32, 33)
-
Specification