Managing expressions in a database system
First Claim
1. A method for managing expressions in a database, the method comprising the steps of:
- receiving a first query that includes a first conditional expression;
representing the first conditional expression as data in a column of a table;
receiving a second query that specifies a first set of one or more criteria; and
executing the second query to select data based at least on whether conditional expressions in the column satisfy the first set of criteria.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for managing expressions includes receiving a first query that includes a first conditional expression. The first expression is then represented as data in a column of a table. A second query is received that specifies a first set of criteria, and the second query is executed to select data based at least on whether expressions in the column satisfy the first set of criteria. In an embodiment, the second query further specifies a second set of criteria, wherein executing the second query includes selecting data based on whether data in columns other than the expression column satisfy the second criteria. A special index is defined, which can be created on the column that stores the expressions as data, to filter large sets of expressions efficiently. A method of evaluating an expression set stored as data in a table classifies each predicate from each expression, and filters the expression set based on the predicate classification.
173 Citations
25 Claims
-
1. A method for managing expressions in a database, the method comprising the steps of:
-
receiving a first query that includes a first conditional expression;
representing the first conditional expression as data in a column of a table;
receiving a second query that specifies a first set of one or more criteria; and
executing the second query to select data based at least on whether conditional expressions in the column satisfy the first set of criteria. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for evaluating an expression set that is stored as data in a column of a table, the method comprising the steps of:
-
classifying each predicate from each expression of the expression set as one of, an indexed attribute predicate, wherein a bitmap index is created based on a set of operator and constant attributes that are stored in respective columns of a predicate table in association with a respective predicate identifier;
a stored attribute predicate, wherein a set of operator and constant attributes are stored in respective columns of the predicate table in association with a respective predicate identifier, and wherein no index is created on the set of operator and constant attributes;
a sparse predicate, in which a predicate identifier associated with a sparse predicate is uncommon in the expression set, and wherein a sparse predicate is stored as data in the predicate table; and
filtering the expression set based on the classification of predicates from the expression set. - View Dependent Claims (10, 11)
-
-
12. A computer-readable medium storing an index that is built on a table that has a plurality of rows, the index comprising:
-
concatenated bit vectors, wherein each bit vector is associated with one of an operator and a constant that are each stored in respective columns of the table;
wherein the operator and the constant are associated with a predicate of one or more predicates from a conditional expression that specifies one or more criteria that must be satisfied by data for the data to be of interest to a subscriber to a subscription system.
-
-
13. A computer-readable medium carrying one or more sequences of instructions for managing expressions in a database, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving a first query that includes a first conditional expression;
representing the first conditional expression as data in a column of a table;
receiving a second query that specifies a first set of one or more criteria; and
executing the second query to select data based at least on whether conditional expressions in the column satisfy the first set of criteria. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-readable medium carrying one or more sequences of instructions for evaluating an expression set that is stored as data in a column of a table, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
classifying each predicate from each expression of the expression set as one of, an indexed attribute predicate, wherein a bitmap index is created based on a set of operator and constant attributes that are stored in respective columns of a predicate table in association with a respective predicate identifier;
a stored attribute predicate, wherein a set of operator and constant attributes are stored in respective columns of the predicate table in association with a respective predicate identifier, and wherein no index is created on the set of operator and constant attributes;
a sparse predicate, in which a predicate identifier associated with a sparse predicate is uncommon in the expression set, and wherein a sparse predicate is stored as data in the predicate table; and
filtering the expression set based on the classification of predicates from the expression set. - View Dependent Claims (22, 23)
-
-
24. An apparatus for managing expressions in a database, comprising:
-
means for receiving a first query that includes a first conditional expression;
means for representing the first conditional expression as data in a column of a table;
means for receiving a second query that specifies a first set of one or more criteria; and
means for executing the second query to select data based at least on whether conditional expressions in the column satisfy the first set of criteria.
-
-
25. An apparatus for evaluating an expression set that is stored as data in a column of a table, comprising:
-
means for classifying each predicate from each expression of the expression set as one of, an indexed attribute predicate, wherein a bitmap index is created based on a set of operator and constant attributes that are stored in respective columns of a predicate table in association with a respective predicate identifier;
a stored attribute predicate, wherein a set of operator and constant attributes are stored in respective columns of the predicate table in association with a respective predicate identifier, and wherein no index is created on the set of operator and constant attributes;
a sparse predicate, in which a predicate identifier associated with a sparse predicate is uncommon in the expression set, and wherein a sparse predicate is stored as data in the predicate table; and
means for filtering the expression set based on the classification of predicates from the expression set.
-
Specification