Virtualizing objects within queries
First Claim
1. A method, implemented within a computer system that includes one or more processors and memory storing instructions which, when executed by the one or more processors implement the method, for creating a data provider that virtualizes data access to an object so that a subset of a plurality of properties of the object are accessible without constructing the entire object, the method comprising:
- an act of a computer system that includes one or more processors receiving a data construction statement that describes at least a portion of a syntax tree of an object having a plurality of properties, wherein the value of at least one of the plurality of properties is determinable by execution of a query expression, and wherein the data construction statement includes;
an indication of a type of object that the data construction statement represents a construction of;
one or more property identifiers, wherein each property identifier identifies a property of the object; and
one or more mappings, wherein each mapping maps a property identifier to a corresponding query expression, and wherein the corresponding query expression indicates how to compute a value for the property of the object identified by the corresponding property identifier; and
an act of the computer system creating a data provider in response to receiving the data construction statement, wherein the data provider virtualizes data access to the object and facilitates lazy evaluation of queries on the object by creating a partial construction of the object based on the data construction statement, wherein the partial construction of the object provides access to values of one or more properties of the object by executing one or more query expressions corresponding to the one or more properties of the object without having to evaluate the entire data construction statement or fully construct the entire object, and wherein the data provider includes;
a reference to the data construction statement, wherein the reference transitively includes references to the type, the property identifiers, and the corresponding mappings of the data construction statement.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for virtualizing objects within queries. Embodiments of the invention virtualize data access for use with queries. Virtualization can be implemented within any portion of a syntax tree. For example, data can be virtualized for a property of an object that is itself another object. Data virtualization facilitates lazy evaluation of query expressions. That is, actual property values for properties within a data construction statement are virtualized until a query specifically requests the actual property values. Further, data virtualization also conserves resources and results in more efficient query evaluations.
53 Citations
20 Claims
-
1. A method, implemented within a computer system that includes one or more processors and memory storing instructions which, when executed by the one or more processors implement the method, for creating a data provider that virtualizes data access to an object so that a subset of a plurality of properties of the object are accessible without constructing the entire object, the method comprising:
-
an act of a computer system that includes one or more processors receiving a data construction statement that describes at least a portion of a syntax tree of an object having a plurality of properties, wherein the value of at least one of the plurality of properties is determinable by execution of a query expression, and wherein the data construction statement includes; an indication of a type of object that the data construction statement represents a construction of; one or more property identifiers, wherein each property identifier identifies a property of the object; and one or more mappings, wherein each mapping maps a property identifier to a corresponding query expression, and wherein the corresponding query expression indicates how to compute a value for the property of the object identified by the corresponding property identifier; and an act of the computer system creating a data provider in response to receiving the data construction statement, wherein the data provider virtualizes data access to the object and facilitates lazy evaluation of queries on the object by creating a partial construction of the object based on the data construction statement, wherein the partial construction of the object provides access to values of one or more properties of the object by executing one or more query expressions corresponding to the one or more properties of the object without having to evaluate the entire data construction statement or fully construct the entire object, and wherein the data provider includes; a reference to the data construction statement, wherein the reference transitively includes references to the type, the property identifiers, and the corresponding mappings of the data construction statement. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method implemented within a computer system that includes a processor and memory storing instructions which, when executed by the processor implement the method for responding to a query using a query evaluator that utilizes a data provider to virtualize data access to an object so that a subset of a plurality of properties of the object are accessible to the query evaluator without constructing the entire object, the method comprising:
-
an act of a computer system that includes one or more processors receiving a property value access query, wherein the property value access query queries for a property value of a property identified in a previously received data construction statement that describes at least a portion of a syntax tree of an object having a plurality of properties, and wherein the value of at least one of the plurality of properties is determinable by execution of a query expression; an act of the computer system identifying a data provider created from the previously received data construction statement based on data contained in the property value access query, wherein the data provider virtualizes data access to the object and facilitates lazy evaluation of queries on the object by creating a partial construction of the object based on the data construction statement, wherein the partial construction of the object provides access to values of one or more properties of the object by executing one or more query expressions corresponding to the one or more properties without having to evaluate the entire data construction statement or fully construct the entire object; an act of the computer system placing the identified data provider in a known location associated with the query evaluator; an act of the computer system creating a data consumer for the property value access query; an act of the data consumer accessing the identified data provider from the known location; an act of the data consumer requesting the property value of the identified property from the data provider; an act of the data consumer receiving the property value of the identified property from the data provider; an act of the data consumer placing the received property value in the known location for further processing. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification