IP Library Granted Patent US 8,301,620
Granted Patent B2
US 8,301,620 · App. 12/474,133 · Granted Oct 30, 2012

Efficient way to evaluate aggregations on XML data using path-based row sources

Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,301,620
App. No.
12/474,133
Granted
Oct 30, 2012
Kind
B2
Abstract

The approaches described herein provide an efficient way for a database server to process certain kinds of queries that require the evaluation of an aggregation function over XML data stored in an object-relational database. An aggregation function takes multiple inputs and generates a single output. A database server first determines whether the query qualifies for this particular kind of optimization, then creates a query execution plan that specifies the use of an enhanced path-based row source, eliminating the need for a second path-based row source for computing the aggregation function. The enhanced path-based row source specified in the query execution plan computes an aggregation function and stores the result of that function computation in a column of each row. The XPath evaluation results that are the individual inputs to the aggregation function are only stored temporarily until they are used to compute the aggregation function.

Claims (29)

1. A method comprising:

a server computing a query expression against a collection of XML documents stored in one or more tables of a database by, at least in part, executing a plurality of row sources of a query execution plan that is generated by the server to compute the query expression, said plurality of row sources including a path-based row source based on a path expression;

said server determining whether to enable the path-based row source to compute an aggregate function; and

in response to determining to enable the path-based row source to compute said aggregate function, said server enabling the path-based row source to compute said aggregate function;

wherein the enabled path-based row source is configured to cause upon execution:

generating an aggregate value by applying an aggregate function to XML data identified, at least in part, by said path expression, said XML data being generated based on rows from said one or more tables of said database;

generating an output row of the path-based row source that contains said aggregate value;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , wherein

determining whether to enable the path-based row source to compute an aggregation function comprises determining whether the cardinality of a second path expression is greater than the cardinality of the driving path expression associated with the path-based row source, wherein the evaluation of the second path expression generates input values to the aggregation function.

3. The method of claim 1 , wherein the path-based row source is an XPATHTABLE.

4. The method of claim 2 , wherein the aggregate function is one of a set of aggregate functions comprising min, max, sum, count, and XMLagg.

5. The method of claim 2 , wherein the driving operand is XML data from an XML base table.

6. The method of claim 2 , wherein the driving operand is XML data in a row generated by a path-based row source.

7. The method of claim 4 , wherein determining whether to enable the path-based row source to compute an aggregate function further comprises determining whether the path-based row source is correlated with a second path-based row source, wherein the second path-based row source depends on row data from the path-based row source as input.

8. A machine-readable storage medium storing instructions, wherein the instructions, when executed by one or more processors, cause:

a server computing a query expression against a collection of XML documents stored in one or more tables of a database by, at least in part, executing a plurality of row sources of a query execution plan that is generated by the server to compute the query expression, said plurality of row sources including a path-based row source based on a path expression;

said server determining whether to enable the path-based row source to compute an aggregate function; and

in response to determining to enable the path-based row source to compute said aggregate function, said server enabling the path-based row source to compute said aggregate function

wherein the enabled path-based row source is configured to cause upon execution:

generating an aggregate value by applying an aggregate function to XML data identified, at least in part, by said path expression, said XML data being generated based on rows from said one or more tables of said database;

generating an output row of the path-based row source that contains said aggregate value.

9. The machine-readable storage medium of claim 8 , wherein

determining whether to enable the path-based row source to compute an aggregation function comprises determining whether the cardinality of a second path expression is greater than the cardinality of the driving path expression associated with the path-based row source, wherein the evaluation of the second path expression generates input values to the aggregation function.

10. The machine-readable storage medium of claim 8 , wherein the path-based row source is an XPATHTABLE.

11. The machine-readable storage medium of claim 9 , wherein the aggregate function is one of a set of aggregate functions comprising min, max, sum, count, and XMLagg.

12. The machine-readable storage medium of claim 9 , wherein the driving operand is XML data from an XML base table.

13. The machine-readable storage medium of claim 9 , wherein the driving operand is XML data in a row generated by a path-based row source.

14. The machine-readable storage medium of claim 11 , wherein determining whether to enable the path-based row source to compute an aggregate function further comprises determining whether the path-based row source is correlated with a second path-based row source, wherein the second path-based row source depends on row data from the path-based row source as input.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2009
From: STHANIKAM, BALASUBRAMANYAM; IDICULA, SAM; AGARWAL, NIPUN
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 022753/0545 →
Continuity (1)
Related Publication 20100306220A1 · Dec 2, 2010