Accelerating value-based lookup of XML document in XQuery
First Claim
1. A method comprising machine steps including:
- for each particular node of a set of one or more nodes in a markup language document, storing an entry for the particular node in a first index; and
for each complex node that is in the set of nodes and has one or more child nodes, performing steps comprising;
identifying all simple nodes that are descendants of the complex node and that have no child nodes;
generating, based on the values of a plurality of the simple nodes, a representative node value for the complex node; and
associating the representative node value with an index entry in the first index for the particular complex node;
receiving a query conforming to a query language, wherein the query specifies a path-based expression and a target value;
identifying a set of entries in the first index that are associated with one or more nodes to which the path-based expression refers;
identifying, from the set of entries, a target entry having a representative node value that matches the target value;
returning a node associated with the target entry; and
wherein the steps are performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for accelerating value-based lookups of XML documents in XQuery is provided. XML indices can help to optimize SQL queries of XML documents stored in object-relational databases. Certain SQL/XML functions such as
156 Citations
28 Claims
-
1. A method comprising machine steps including:
-
for each particular node of a set of one or more nodes in a markup language document, storing an entry for the particular node in a first index; and for each complex node that is in the set of nodes and has one or more child nodes, performing steps comprising; identifying all simple nodes that are descendants of the complex node and that have no child nodes; generating, based on the values of a plurality of the simple nodes, a representative node value for the complex node; and associating the representative node value with an index entry in the first index for the particular complex node; receiving a query conforming to a query language, wherein the query specifies a path-based expression and a target value; identifying a set of entries in the first index that are associated with one or more nodes to which the path-based expression refers; identifying, from the set of entries, a target entry having a representative node value that matches the target value; returning a node associated with the target entry; and wherein the steps are performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus for accelerating value-based lookups, comprising:
-
for each particular node of a set of one or more nodes in a markup language document, means for storing an entry for the particular node in a first index; for each simple node that has no child nodes, means for associating a node value with an index entry in the first index for the simple node; and for each complex node that is in the set of nodes and has one or more child nodes, means for performing steps comprising; means for identifying all simple nodes that are descendants of the complex node and that have no child nodes; means for generating, based on the values of a plurality of the simple nodes, a representative node value for the complex node; and means for associating the representative node value with an index entry in the first index for the particular complex node; means for receiving a query conforming to a query language, wherein the query specifies a path-based expression and a target value; means for identifying a set of entries in the first index that are associated with one or more nodes to which the path-based expression refers; means for identifying, from the set of entries, a target entry having a representative node value that matches the target value; and means for returning a node associated with the target entry. - View Dependent Claims (16)
-
-
17. A computer-readable storage that stores instructions which, when executed by one or more processors, cause the one of more processors to perform the steps of:
-
for each particular node of a set of one or more nodes in a markup language document, storing an entry for the particular node in a first index; and for each complex node that is in the set of nodes and has one or more child nodes, performing steps comprising; identifying all simple nodes that are descendants of the complex node and that have no child nodes; generating, based on the values of a plurality of the simple nodes, a representative node value for the complex node; and associating the representative node value with an index entry in the first index for the particular complex node; receiving a query conforming to a query language, wherein the query specifies a path-based expression and a target value; identifying a set of entries in the first index that are associated with one or more nodes to which the path-based expression refers; identifying, from the set of entries, a target entry having a representative node value that matches the target value; and returning a node associated with the target entry. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification