System and method for providing user defined aggregates in a database system

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 aggregate and methods that can be invoked on instances of the user-defined aggregate. The class is then registered with the datab...

Full description

Saved in:
Bibliographic Details
Main Authors SEZGIN BEYSIM, VENKATESH RAMACHANDRAN, BLAKELEY JOSE A, ZHANG HONGANG, CARLIN PETER A, GALINDO-LEGARIA CESAR A, RATHAKRISHNAN BALAJI, BOUKOUVALAS ALEXIOS
Format Patent
LanguageEnglish
Published 11.08.2005
Edition7
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary: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 aggregate and methods that can be invoked on instances of the user-defined aggregate. The class is then registered with the database system, which enforces a specific contract for user-defined aggregates 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 aggregate in a database store. Second, the class must comprise a first method that can be invoked to initialize the computation of an instance of the user-defined aggregate, a second method that can be invoked to accumulate a plurality of values to be aggregated with the user-defined aggregate, a third method that can be invoked to merge an instance of the user-defined aggregate with another partial aggregation, and a fourth method that can be invoked to compute a final result of an instance of the user-defined aggregate. Once these requirements are satisfied, the database system enables instances of the user-defined aggregate to be created. Preferably, the database system stores metadata about the user-defined aggregate for subsequent use in creating instances of the aggregate.
Bibliography:Application Number: US20040775982