Rewriting node reference-based XQuery using SQL/SML
First Claim
Patent Images
1. A method comprising:
- receiving a first query that conforms to a first XML query language;
determining that an operator included in the first query requires one or more node references, to one or more nodes, as operands of the operator instead of a value of any of the one or more nodes;
wherein the operator included in the first query is one of a node comparison operator or an operator that requires context node traversal; and
in response to determining that the operator included in the first query requires one or more node references as operands of the operator, generating, based on the first query, a second query (a) that conforms to a second XML query language that is different than the first XML query language and (b) that includes a particular operator not included in the first query;
wherein execution of the particular operator included in the second query causes a reference, to a node in an XML document, to be returned instead of a value of the node;
wherein the steps are performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for processing reference-based SQL/XML operators are provided. Instead of extracting copies of one or more nodes from XML data, a reference-based operator returns a reference to a node. Such a reference is used to determine, for example, whether the corresponding node comes logical before, after, or is the same as another node. An SQL/XML query that includes a reference-based operator may be the original query, or may be generated (e.g., rewritten) from a non-SQL/XML query, such as an XQuery query. One or more physical rewrites may be performed on the SQL/XML query, depending on how the XML data is stored and/or whether an XML index exists for the XML data.
115 Citations
24 Claims
-
1. A method comprising:
-
receiving a first query that conforms to a first XML query language; determining that an operator included in the first query requires one or more node references, to one or more nodes, as operands of the operator instead of a value of any of the one or more nodes; wherein the operator included in the first query is one of a node comparison operator or an operator that requires context node traversal; and in response to determining that the operator included in the first query requires one or more node references as operands of the operator, generating, based on the first query, a second query (a) that conforms to a second XML query language that is different than the first XML query language and (b) that includes a particular operator not included in the first query; wherein execution of the particular operator included in the second query causes a reference, to a node in an XML document, to be returned instead of a value of the node; wherein the steps are performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
executing an SQL/XML query that includes a reference-based operator, wherein the reference-based operator includes a set of one or more operands that each refer to one or more nodes of an XML document, wherein the reference-based operator is one of a node comparison operator or an operator that requires context node traversal; wherein execution of the reference-based operator returns a reference to the one or more nodes instead of a value of the one or more nodes; wherein executing the SQL/XML query includes; determining a reference for each of the one or more nodes; and generating results of the SQL/XML query based on the-reference; wherein the steps are performed by one or more computing devices. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A machine-readable storage medium storing instructions which, when executed by one or more processors, causes:
-
receiving a first query that conforms to a first XML query language; determining that an operator included in the first query requires one or more node references, to one or more nodes, as operands of the operator instead of a value of any of the one or more nodes; wherein the operator included in the first query is one of a node comparison operator or an operator that requires context node traversal; and in response to determining that the operator included in the first query requires one or more node references as operands of the operator, generating, based on the first query, a second query (a) that conforms to a second XML query language that is different than the first XML query language and (b) that includes a particular operator not included in the first query; wherein execution of the particular operator included in the second query causes a reference, to a node in an XML document, to be returned instead of a value of the node. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A machine-readable storage medium storing instructions which, when executed by one or more processors, cause:
-
executing an SQL/XML query that includes a reference-based operator, wherein the reference-based operator includes a set of one or more operands that each refer to one or more nodes of an XML document, wherein the reference-based operator is one of a node comparison operator or an operator that requires context node traversal; wherein execution of the reference-based operator returns a reference to the one or more nodes instead of a value of the one or more nodes; wherein executing the SQL/XML query includes; determining a reference for each of the one or more nodes; and generating results of the SQL/XML query based on the reference. - View Dependent Claims (21, 22, 23, 24)
-
Specification