Patent ID: 7636739

Claim:
A computer-implemented method for maintaining an XML index table, wherein the XML index table comprises a row entry for every node in an XML object, the method comprising; receiving an update to a primary database, the update referencing an XML object; updating the primary database according to the update, including the referenced XML object; retrieving from the XML index table rows corresponding to the referenced XML object, wherein each row corresponds to a node in the XML object; assigning each row at least one node identifier; generating a pre-update node table comprising the retrieved rows; shredding the referenced XML object in the primary database to extract a post-update node from the referenced XML object; generating a post-update node table from the extracted nodes; comparing the post-update node table to the pre-update node table to determine which nodes were at least one of deleted, added, or updated from the referenced XML object, wherein comparing the post-update node table to the pre-update node table comprises: generating a first probe column for the pre-update node table and a second probe column for the post-update node table, wherein the first and second probe columns comprise non-Null values; generating a composite table by performing a full outer merge operation on the pre and post-update node tables by node identifier; and for each row in the composite table: determining that the node corresponding to the node identifier was added to the referenced XML object if the first probe column in the composite table is Null and the second probe column in the composite table is non-Null; determining that the node corresponding to the node identifier was deleted from the referenced XML object if the if the first probe column in the composite table is non-Null and the second probe column in the composite table is Null; and determining that the node corresponding to the node identifier was updated in the referenced XML object if the first probe column in the composite table is non-Null and the second probe column in the composite table is non-Null; and filtering out unchanged nodes.