System and method for providing user defined types in a database system
First Claim
1. A computer-implemented method for creating a user-defined type in a database system, comprising:
- receiving code that executes on a processing unit and 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 to ensure that the user-defined type will act like any scalar type of the database system, 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, the plurality of different formats comprising at least a first format in which an instance of the user-defined type is automatically serialized in accordance with a native format of the database system and a second format in which an instance of the user-defined type is serialized in a manner defined by the class;
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;
storing metadata about the user-defined type for subsequent use by the database system in creating instances of the user-defined type; and
creating instances of the user-defined type 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.
57 Citations
19 Claims
-
1. A computer-implemented method for creating a user-defined type in a database system, comprising:
-
receiving code that executes on a processing unit and 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 to ensure that the user-defined type will act like any scalar type of the database system, 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, the plurality of different formats comprising at least a first format in which an instance of the user-defined type is automatically serialized in accordance with a native format of the database system and a second format in which an instance of the user-defined type is serialized in a manner defined by the class; 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; storing metadata about the user-defined type for subsequent use by the database system in creating instances of the user-defined type; and creating instances of the user-defined type only when the class meets the requirements of the contract. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system that implements a database system, the computer system comprising:
-
a processing unit; a memory; a runtime that executes on the processing unit and that provides code execution within the database system; and a database server executing on the processing unit, the database server enabling instances of user-defined types to be persisted in a database store in a plurality of different formats including at least a first format in which instances of user-defined types are automatically serialized in accordance with a native format of the database server and a second format in which instances of user-defined types are serialized in a manner defined by the user-defined types themselves, the database server 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 and that enforces a contract against the class to ensure that the user-defined type will act like any scalar type of the database system, the contract comprising; a first requirement that the class specify one of said plurality of different formats for persisting instances of the user-defined type in the 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 storing metadata about the user-defined type for subsequent use by the database server in creating instances of the user-defined type; and the database server creating instances of the user-defined type only when the class meets the requirements of the contract. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification