Patent ID: 8626745

Claim:
A method for updating a database table having multiple rows, the method comprising: maintaining predicates of received database queries in a predicate registry, wherein each predicate is associated with a different index value in the predicate registry, the predicates having an order in which a more recent predicate is ordered higher than a less recent predicate; for each row of the database table, maintaining a lineage bit set and a last-predicate-analyzed indicator, wherein: the lineage bit set includes multiple bit positions, each bit position in the lineage bit set corresponding to a query predicate, a bit value stored at each bit position indicates whether the corresponding predicate is satisfied by the row, and the last-predicate-analyzed indicator identifies a most recent predicate used in a most recent evaluation of the lineage bit set of the row; and receiving an update to an entry in the database table, wherein the entry corresponds to a first row of the database table and, in response to receiving the update: updating one or more bit positions in the lineage bit set of the first row that have previously been evaluated and require re-evaluation as a result of the received update; determining that the last-predicate-analyzed indicator of the first row identifies a predicate that is different from a currently most recent predicate in the predicate registry; and then evaluating one or more new predicates that entered the predicate registry to update one or more new bit positions in the lineage bit set of the first row that correspond to the one or more new predicates, wherein each new predicate is a predicate that is ordered higher than the predicate identified by the last-predicate-analyzed indicator of the first row.