Systems and methods for the implementation of unordered and ordered collections in a data store
First Claim
1. A relational data store method, said method comprising:
- receiving an operation to be applied to a collection in an extendable relational data store, the collection is derived from a generic user-defined type (UDT) in a common language runtime (CLR) and is a structured query language (SQL) scalar type, the collection being processable as a scalar and the same collection being queriable as a relation, wherein the operation is a scalar operation or a query operation;
for scalar operations applied to said collection, processing said collection as a scalar;
for query operations applied to said collection, querying said collection as a relation,wherein querying said collection as a relation comprises;
recognizing said collection as a queriable relation;
unnesting said collection to create a queriable object; and
performing said query operations on said queriable object; and
storing the results of the processing or querying.
2 Assignments
0 Petitions
Accused Products
Abstract
Several embodiments of the present invention are directed to systems and methods for extending the UDT framework of an extended relational data store (ERDS) to include support for unordered collections (multisets) and ordered collection (lists). More specifically, several embodiments of the present invention use an UDT infrastructure, CLR generics, and a new UNNEST operator to create and utilize a special type abstraction for collections that is simultaneously a scalar and a relation. As a scalar, this collection type can be processed by all parts of the data store engine that understand scalars (including but not limited to the client stack) and, as a relation, this collection type is queriable like any other type of relation.
66 Citations
16 Claims
-
1. A relational data store method, said method comprising:
-
receiving an operation to be applied to a collection in an extendable relational data store, the collection is derived from a generic user-defined type (UDT) in a common language runtime (CLR) and is a structured query language (SQL) scalar type, the collection being processable as a scalar and the same collection being queriable as a relation, wherein the operation is a scalar operation or a query operation; for scalar operations applied to said collection, processing said collection as a scalar; for query operations applied to said collection, querying said collection as a relation, wherein querying said collection as a relation comprises; recognizing said collection as a queriable relation; unnesting said collection to create a queriable object; and performing said query operations on said queriable object; and storing the results of the processing or querying. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage medium comprising computer-readable instructions for implementing a relational data store method, said computer-readable instructions comprising instructions for:
-
receiving an operation to be applied to a collection in an extendable relational data store, the collection derived from a generic user-defined type (UDT) in a common language runtime (CLR) and is a structured query language (SQL) scalar type, the collection being processable as a scalar and the same collection being queriable as a relation, wherein the operation is a scalar operation or a query operation; processing said collection as a scalar when the scalar operation is applied to said collection; querying said collection as a relation when the query operation is applied to said collection, wherein querying said collection as a relation comprises; recognizing said collection as a queriable relation; unnesting said collection to create a queriable object; and performing said query operation on said queriable object; and storing the results of the processing or querying. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system for implementing an extendable relational data store, said system comprising a processor and a storage for:
-
receiving an operation to be applied to a collection in the extendable relational data store, the collection derived from a generic user-defined type (UDT) in a common language runtime (CLR) and is a structured query language (SQL) scalar type, the collection being processable as a scalar and the same collection being queriable as a relation, wherein the operation is a scalar operation or a query operation; processing said collection as a scalar when the scalar operation is applied to said collection queying said collection as a relation when the query operation is applied to said collection, wherein querying said collection as a relation comprises; recognizing said collection as a queriable relation; unnesting said collection to create a queriable object; and performing said query operation on said queriable object; and storing the results of the processing or queuing. - View Dependent Claims (13, 14, 15, 16)
-
Specification