IP Library Granted Patent US 8,856,151
Granted Patent B2
US 8,856,151 · App. 13/249,482 · Granted Oct 7, 2014

Output field mapping of user defined functions in databases

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,856,151
App. No.
13/249,482
Granted
Oct 7, 2014
Kind
B2
Abstract

Systems and apparatuses are provided for analytical data processing. A system includes a processor and a non-transitory computer readable medium, comprising machine readable instructions executable by the processor. The instructions include a query compiler to identify a call to a user defined function and an output expression defining an output field for the user defined function within a query and generate an output table object for the user defined function. The generated output table object contains the defined output field. The instructions further include a processing engine to execute the user defined function and populate the output field in rows into the output table object with the output of the user defined function.

Claims (39)

1. An analytical data processing system comprising:

at least one processor;

a non-transitory computer readable medium, comprising machine readable instructions that when executed cause the at least one processor to:

identify, by a query compiler, a call to a user defined function, the call being in a query and including at least one output expression defining output fields for the user defined function, the user defined function having metadata exposed to the query compiler and to a processing engine that executes the user defined function, the metadata indicating properties of the defined output fields, and the metadata comprising a function pointer for a validation and resolution of the defined output fields in the call to the user defined function;

generate, by the query compiler, an output table object for the user defined function, the generated output table object containing the defined output fields; and

execute the user defined function to populate the defined output fields in a row of data in the output table object.

2. The analytical data processing system of claim 1 , the user defined function having a plurality of associated output field metadata in a sequence, the at least one output field expression being composed by one of output field names from fixed output fields, generated field names from variable output fields, and ordinal numbers derived from the output field metadata sequence.

3. The analytical data processing system of claim 1 , the metadata indicating a field name, an associated data type, and a data size of a given defined output field from the defined output fields.

4. The analytical data processing system of claim 3 , the metadata indicating that the associated data type of the given defined output field is undefined, the associated data type being set to depend on an input field such that the instructions upon execution derives a data type of the given defined output field from the input field on which the given defined output field is set to depend in the call to the user defined function.

5. The analytical data processing system of claim 1 , the metadata defining a plurality of output fields associated with the user defined function in a first order, and the at least one output expression in the call to the user defined function defining a set of output fields from the plurality of output fields in a second order, the second order being different from the first order.

6. The analytical data processing system of claim 1 , the at least one output expression in the call to the user defined function defining a set of output fields, the defined set of output fields being a proper subset of a plurality of output fields associated with the user defined function.

7. The analytical data processing system of claim 1 , the at least one output expression comprising a user defined alias name for a given defined output field, such that the output table object has the user defined alias name for use in other parts of the query.

8. The analytical data processing system of claim 1 , wherein the user defined function is executed when executing the query.

9. An analytical data processing system comprising:

at least one processor;

a non-transitory computer readable medium, comprising machine readable instructions that when executed cause the at least one processor to:

identify, by a query compiler, a call to a user defined function, the call being in a query and including at least one output expression defining output fields for the user defined function, the user defined function having metadata exposed to the query compiler and to a processing engine that executes the user defined function, the metadata indicating properties of the defined output fields, and the metadata indicating a plurality of default output fields associated with the user defined function;

generate, by the query compiler, an output table object for the user defined function, the generated output table object containing the defined output fields;

execute the user defined function to populate the defined output fields in a row of data in the output table object; and

return the default output fields when a call of the user defined function is without any output expression defining output fields for the user defined function.

10. An analytical data processing system comprising:

at least one processor;

a non-transitory computer readable medium, comprising machine readable instructions that when executed cause the at least one processor to:

identify, by a query compiler, a call to a user defined function, the call being in a query and including at least one output expression defining output fields for the user defined function, the user defined function having metadata exposed to the query compiler and to a processing engine that executes the user defined function, the metadata indicating properties of the defined output fields, the metadata of the user defined function comprising output metadata fields indicating whether each defined output field is a fixed field, representing a single field in the output table object, or a variable field, representing zero, one, or multiple fields, wherein a minimum number of fields represented by the variable field is defined in the metadata;

generate, by the query compiler, an output table object for the user defined function, the generated output table object containing the defined output fields; and

execute the user defined function to populate the defined output fields in a row of data in the output table object.

11. The analytical data processing system of claim 10 , wherein for a given defined output field that is a variable field, the instructions when executed causing the at least one processor to:

derive an integer value from one of an integer parameter field and a variable input field on which the given defined output field is set to depend, and

generate a number of variant fields represented by the given defined output field in the output table object equal to the integer value.

12. A non-transitory computer readable medium, comprising machine readable instructions that when executed cause a system including a processor to:

identify a call to a user defined function having exposed metadata that defines a plurality of output fields having a first order;

generate at least one output expression providing a set of output fields from the plurality of output fields, the at least one expression included in a query, and the at least one output expression providing the output fields of the set in a second order different from the first order, the user defined function representing an inner user defined function of a nested processing arrangement, the second order representing an order in which the set of output fields is input into an output user defined function of the nested processing arrangement;

generate an output table object for the user defined function, the generated output table object containing the set of output fields; and

execute the user defined function to populate the set of output fields in a row of the output table object provided as an output of the user defined function.

13. A method comprising:

identifying, by a query compiler executing in a system including a processor, a call to a user defined function, the call including at least one output expression defining a set of output fields that is a subset of a plurality of output fields defined by metadata of the user defined function, the call being within a query, wherein the metadata specifies a first order of the plurality of output fields, and wherein the at least one output expression specifies a second order of the output fields in the set of output fields different from the first order;

generating, by the query compiler, an output table object for the user defined function, the generated output table object containing the defined set of output fields;

executing the user defined function to populate the set of output fields in the output table object with an output of the user defined function; and

outputting the plurality of output fields defined by the metadata in response to a call to the user defined function not including any output expression defining a set of output fields.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →