System and method for providing user defined types in a database system
First Claim
1. A method for creating a user-defined type in a database system, comprising:
- receiving code that implements a class defining the structure of a user-defined type and methods that can be invoked on instances of the user-defined type;
enforcing a contract against the class, the contract comprising;
a first requirement that the class specify one of a plurality of different formats for persisting instances of the user-defined type in a database store;
a second requirement that the class be capable of returning a null value for the user-defined type; and
a third requirement that the class provide a method for converting the user-defined type to another type; and
enabling instances of the user-defined type to be created only when the class meets the requirements of the contract.
1 Assignment
0 Petitions
Accused Products
Abstract
A database system and method allows a user to write program code in a high-level programming language that implements a class that defines the structure of a user-defined type and methods that can be invoked on instances of the type. The class is then registered with the database system, which enforces a specific contract for user-defined types against the class. The contract comprises the following requirements. First, the class must specify one of a plurality of different formats for persisting instances of the user-defined type in a database store. Second, the class must be capable of returning a null value for the user-defined type. Third, the class must provide a method for converting the user-defined type to another type. Once these requirements are satisfied, the database system enables instances of the user-defined type to be created. A user-defined type can be used in all contexts where any other built-in type can be used. This includes defining columns of tables, declaring variables and parameters to functions and stored procedures, and evaluating expressions of the user-defined type in SQL queries and updates. Preferably, the database system stores metadata about the user-defined type for subsequent use in creating instances of the type.
-
Citations
32 Claims
-
1. A method for creating a user-defined type in a database system, comprising:
-
receiving code that implements a class defining the structure of a user-defined type and methods that can be invoked on instances of the user-defined type;
enforcing a contract against the class, the contract comprising;
a first requirement that the class specify one of a plurality of different formats for persisting instances of the user-defined type in a database store;
a second requirement that the class be capable of returning a null value for the user-defined type; and
a third requirement that the class provide a method for converting the user-defined type to another type; and
enabling instances of the user-defined type to be created only when the class meets the requirements of the contract. - View Dependent Claims (2, 3, 4, 6, 7, 10, 12, 13, 14, 15, 32)
-
-
5. (canceled)
-
8. (canceled)
-
9. (canceled)
-
11. (canceled)
-
16. (canceled)
-
17. A database system comprising:
-
a runtime that provides code execution within the database system; and
a database server that receives code that implements a class defining the structure of a user-defined type and methods that can be invoked on instances of the user-defined type and that enforces a contract against the class, the contract comprising;
a first requirement that the class specify one of a plurality of different formats for persisting instances of the user-defined type in a database store;
a second requirement that the class be capable of returning a null value for the user-defined type; and
a third requirement that the class provide a method for converting the user-defined type to another type, the database server enabling instances of the user-defined type to be created only when the class meets the requirements of the contract. - View Dependent Claims (18, 19, 20, 22, 23, 26, 28, 29, 30, 31)
-
-
21. (canceled)
-
24. (canceled)
-
25. (canceled)
-
27. (canceled)
Specification