IP Library Granted Patent US 10,789,235
Granted Patent B2
US 10,789,235 · App. 15/555,634 · Granted Sep 29, 2020

Base user defined functions

Inventors: Qiming Chen (Sunnyvale, CA); Meichun Hsu (Sunnyvale, CA); Rui Liu (Sunnyvale, CA); Maria Guadalupe Castellanos (Sunnyvale, CA)
Assignee: MICRO FOCUS LLC
G06F16/2291G06F16/245
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 10,789,235
App. No.
15/555,634
Filed
Sep 5, 2017
Granted
Sep 29, 2020
Kind
B2
Art Unit
2162
USPC
707/687
Abstract

Methods, devices, and techniques for base user defined functions in a database management system are discussed herein. For example, in one aspect, a query request is received from a computer device. The query request may include a query operator representing a specialized user defined function (SUDF). The SUDF may then be executed. Executing the SUDF may include executing a base operation of a base user defined function (BUDF). The base operation may interact with an application programming interface (API) of the query engine to obtain a tuple stored in the database. Executing the SUDF may further include executing a specialized operation that processes the tuple according to an analytics function. The specialized operation may generate a result. Then, a query result may be returned to the computer device. The query result can include the result.

Claims (40)

1. A method comprising:

receiving, by at least one processor, a query request from a computer device, wherein the query request includes a query operator representing a specialized user defined function (SUDF) that specializes a base user defined function (BUDF), the BUDF comprises a base class definition, the base class definition defines a given function to be overridden by a subclass of the base class definition, and the SUDF corresponds to the subclass and overrides the given function;

executing, by the at least one processor, the SUDF, wherein executing the SUDF comprises:

executing a base operation of the BUDF that interacts with an application programming interface (API) of a query engine to obtain a tuple stored in a database;

executing a specialized operation that processes the tuple according to an analytics function, the specialized operation being defined by the SUDF, the specialized operation generating a result; and

returning, by the at least one processor, a query result to the computer device, the query result including the result.

2. The method of claim 1 , wherein the base operation obtains the tuple stored in the database through a read interface.

3. The method of claim 2 , wherein the base operation calls the specialized operation in a partition execution loop that advances the read interface at each iteration of the partition execution loop.

4. The method of claim 1 , wherein the BUDF connects to a given database platform.

5. The method of claim 1 , wherein the SUDF is a Java executable object.

6. A device comprising:

a processor; and

a machine-readable storage device comprising instructions that, when executed, cause the processor to:

receive a definition of a specialized user defined function (SUDF) from a computer device, wherein:

the SUDF specializes a base user defined function (BUDF) that includes: a base operation that includes a processing block that advances a read iterator to a database table, and a call to a specialized operation defined by the definition of the SUDF using a tuple pointed to by the read iterator,

the specialized operation processes the tuple according to an analytics function and returns a result to the base operation,

the BUDF comprises a base class definition,

the base class definition defines a given function to be overridden by a subclass of the base class definition, and

the SUDF corresponds to the subclass and overrides the given function; and

expose the SUDF as an executable operator for a query engine.

7. The device of claim 6 , wherein the base operation obtains the tuple stored in the database table through a read interface.

8. The device of claim 7 , wherein the base operation calls the specialized operation in a partition execution loop that advances the read interface at each iteration of the partition execution loop.

9. The device of claim 7 , wherein the BUDF includes an API call to connect to a given database platform.

10. The device of claim 6 , wherein the SUDF is an executable Java object.

11. A non-transitory machine-readable storage device comprising instructions that, when executed by a processor, cause the processor to:

receive a definition of a specialized user defined function (SUDF) from a computer device, wherein:

the SUDF specializes a base user defined function (BUDF) that includes: a base operation that handles interactions with an application programming interface (API) of a query engine of a database management system, and a call to a specialized operation defined by the definition of the SUDF,

the specialized operation processes a tuple according to an analytics function and returns a result to the base operation,

the BUDF comprises a base class definition,

the base class definition defines a method to be overridden by a subclass of the base class definition, and

the SUDF corresponds to the subclass and overrides the method; and

cause the SUDF to be available for execution by the query engine.

12. The non-transitory machine-readable storage device of claim 11 , wherein, the instructions, when executed by the processor, further cause the tuple to be passed to the specialized operation via the base operation.

13. The non-transitory machine-readable storage device of claim 11 , wherein the SUDF is a Java executable object.

14. The non-transitory machine-readable storage device of claim 11 , wherein the BUDF declares the special operation and the SUDF overrides the special operation with a first analytic function.

15. The non-transitory machine-readable storage device of claim 14 , wherein the instructions that, when executed by the processor, further cause the processor to:

receive an additional definition of an additional SUDF from the computer device, wherein the additional SUDF specializes the BUDF, and the additional SUDF overrides the specialized operation declared by the BUDF with a second analytic function.

16. The method of claim 1 , wherein the given function comprises an object oriented programming method.

17. The device of claim 6 , wherein the given function comprises an object oriented programming method.

18. The non-transitory machine-readable storage device of claim 11 , wherein the method comprises an object oriented programming method.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2026
From: MICRO FOCUS LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075795/0114 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043755/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2017
From: CHEN, QIMING; HSU, MEICHUN; LIU, RUI; CASTELLANOS, MARIA GUADALUPE
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 043487/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 043760/0306 →
Continuity (1)
Related Publication 20180046659A1 · Feb 15, 2018