IP Library Granted Patent US 9,355,145
Granted Patent B2
US 9,355,145 · App. 13/240,582 · Granted May 31, 2016

User defined function classification in analytical data processing systems

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 9,355,145
App. No.
13/240,582
Granted
May 31, 2016
Kind
B2
Abstract

Systems and apparatuses are provided for integrating user defined functions into an analytical data processing framework. The system includes a plurality of user defined functions ( 28 ), each having metadata defining an associated class type. A query compiler ( 22 ) identifies a call to a user defined function ( 28 ) within a query of an associated data table ( 26 ), retrieves the associated class type of the user defined function from the metadata, and provides a query plan according to a plurality of processing instructions derived from the retrieved class type.

Claims (36)

1. An analytical data processing system comprising:

a non-transitory computer readable medium storing machine readable instructions, the machine readable instructions comprising:

a plurality of user defined functions, each having metadata defining an associated class type, where a given class type is associated with a plural set of user defined functions; and

a query compiler configured to:

identify a call to a given user defined function of the plurality of user defined functions within a query of an associated data table,

retrieve the associated class type of the user defined function from the metadata of the user defined function,

provide a query plan according to a plurality of processing instructions derived from the retrieved class type, where the plurality of processing instructions derived from the class type includes an instruction to determine:

an associated output cardinality of the user defined function, and

whether the user defined function can be processed in an online analytics processing window,

where the output cardinality indicates whether the given user defined function produces, from a given set of input rows, an indeterminate number of output rows, a single output row, or a determinate, known number of output rows comprising at least two output rows, and

validate the query according to the associated class type of the user defined function such that only the user defined function configured to be processed in the online analytical window are designated to be processed in an online analytical window; and

a processor operatively connected to the non-transitory computer readable medium and configured to execute the machine readable instructions.

2. The analytical data processing system of claim 1 , the processing instruction defining the output cardinality of the user defined function.

3. The analytical data processing system of claim 2 , the processing instruction indicating that the user defined function produces a number of output rows equal to a number of input rows.

4. The analytical data processing system of claim 2 , the processing instruction indicating that the user defined function produces one output row from a given set of input rows.

5. The analytical data processing system of claim 1 , the processing instruction defining one of a plurality of associated processing scenarios for the user defined function, a first processing scenario requiring input rows to be provided to the user defined function one at a time and a second processing scenario requiring all the input rows to be provided simultaneously to the user defined function.

6. The analytic data processing system of claim 1 , the processing instruction indicating whether the user defined function is configured to be processed in an online analytics processing (OLAP) window.

7. The analytic data processing system of claim 1 , the processing instruction indicating that an output field of the user defined function is projected into a SELECT projection list of the query.

8. The analytical data processing system of claim 1 , the processing instruction indicating that the user defined function is configured to receive input rows in a sorted order.

9. The analytic data processing system of claim 1 , the processing instruction indicating one of that the user defined function is configured to occur anywhere within a query in which an expression can occur and that the user defined function is limited to a projection list of the query.

10. A non-transitory computer readable medium comprising:

a query parser configured to identify calls to a plurality of user defined functions within a query of an associated data table and retrieve associated class types of the user defined functions from metadata associated with the user defined functions, where a given class type is associated with a plural set of user defined functions;

a query optimizer configured to provide a query plan according to a plurality of processing instructions derived from the retrieved function class types, the processing instructions for each class type including at least an instruction to determine whether functions associated with the class type can be processed in an online analytics processing window, and whether the functions associated with the class type have an indeterminate output cardinality, and reject the query associated with the query plan if more than one user defined function in the query has an indeterminate output cardinality; and

a processing engine configured to process the query plan to execute an analytic function represented by the user defined function.

11. The non-transitory computer readable medium of claim 10 , the query parser validating the query according a rule derived from the associated class type of the user defined function.

12. An analytical data processing system comprising:

a non-transitory computer readable medium storing machine readable instructions, the machine readable instructions comprising:

a plurality of user defined functions, each having metadata defining an associated class type, where a given class type is associated with a plural set of the plurality of user defined functions; and

a query compiler configured to:

identify a call to a user defined function within a query of an associated data table,

retrieve the associated class type of the user defined function from the metadata of the user defined function,

validate the query according to the associated class type of the user defined function, such that only user defined functions belonging to a class type configured to be processed in an online analytics processing window are designated to be processed in an online analytical window,

determine an associated cardinality of the user defined function from the associated class type, and whether the user defined function can be processed in an online analytics processing window, where the cardinality of the function indicating if a number of rows output by the function is known or unknown at the time the query is validated given the number of input rows, and

provide a query plan according to the determined cardinality; and

a processor operatively connected to the non-transitory computer readable medium and configured to execute the machine readable instructions.

13. The analytical data processing system of claim 1 , wherein the validated query is processed in an online analytical window.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2011
From: GEORGE, MUTHIAN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 026950/0803 →