ADAPTIVE FILTER INDEX FOR DETERMINING QUERIES AFFECTED BY A DML OPERATION
First Claim
1. A method comprising:
- receiving a query that includes a join predicate between a first table and a second table;
generating a virtual clause based on the join predicate;
generating a join source query based on the WHERE CLAUSE of the query;
executing the join source query to obtain a set of one or more values from the second table;
creating a filter condition based on the virtual clause and the one or more values obtained from the join source query;
storing the filter condition in an index in association with an identifier for said query.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are disclosed for creating and using a filter index in order to identify registered queries whose result sets are likely to have been changed by changes made to tables. The filter index entries are based on filter conditions. The filter conditions are created based on predicates contained in the registered queries. The filter conditions may include exclusive predicates and join predicates. Join predicates that join a table T1 with a table T2 may be instantiated by replacing references to table T2 with values extracted from table T2. Various techniques are described for recognizing situations in which a query can be included in, or excluded from, the set of likely-changed queries, without fully evaluating the filter conditions that correspond to the queries.
83 Citations
32 Claims
-
1. A method comprising:
-
receiving a query that includes a join predicate between a first table and a second table; generating a virtual clause based on the join predicate; generating a join source query based on the WHERE CLAUSE of the query; executing the join source query to obtain a set of one or more values from the second table; creating a filter condition based on the virtual clause and the one or more values obtained from the join source query; storing the filter condition in an index in association with an identifier for said query. - View Dependent Claims (2, 3, 4, 17, 18, 19, 20)
-
-
5. A method for identifying queries whose result sets are likely to have been changed by a change to data within a table, comprising:
-
using a filter index to determine a set of base predicates that are satisfied by the change; adding, to a list of dependent identifiers, dependent identifiers that are associated with the satisfied base predicates; based on the list of dependent identifiers adding, to a set of candidate queries, registered queries that correspond to dependent identifiers that have satisfied base predicates; and using the set of candidate queries to determine which registered queries have result sets that are likely to have been changed by the change to the data within the table. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification