System and method for executing compiled user defined functions in vectorized databases
AssigneeActian Corporation
InventorsSteffen Kläbe, Robert P. Desantis
Life of this patent
Estimating the term…
Abstract
Aspects described herein relate to executing a compiled user defined function (UDF) in an interpreted database query engine. A database query that invokes a UDF defined in an interpreted programming language can be received, and a shared library produced by compiling the UDF can be loaded during database runtime. The UDF can be executed via the shared library during the invocation of the database query, or another database query, in the interpreted database query engine.
Claims20
A computer-implemented method for executing a compiled user defined function (UDF) in an interpreted database query engine, comprising:
- receiving, from an interface, a database query that invokes a UDF defined in an interpreted programming language;
- producing a shared library of the UDF at least in part by:
- obtaining an object file compiled from the UDF;
- and
- modifying, in a function symbol table in the object file, a binding property and a visibility property of one or more function symbols that correspond to one or more functions to expose the one or more functions in the shared library;
- and
- executing a last compilation step of linking the object file to produce the shared library;
- loading, during database runtime, in a memory, and based on detecting the UDF in the database query, the shared library produced by compiling the UDF;
- and
- executing the UDF via the shared library during the invocation of the database query, or another database query, in the interpreted database query engine.
A system for executing a compiled user defined function (UDF) in an interpreted database query engine, comprising:
- a memory configured to store instructions;
- and
- one or more processors communicatively coupled with the memory, wherein the one or more processors are configured to:
- receive, from an interface, a database query that invokes a UDF defined in an interpreted programming language;
- produce a shared library of the UDF at least in part by:
- obtaining an object file compiled from the UDF;
- and
- modifying, in a function symbol table in the object file, a binding property and a visibility property of one or more function symbols that correspond to one or more functions to expose the one or more functions in the shared library;
- and
- executing a last compilation step of linking the object file to produce the shared library;
- load, during database runtime, in a memory, and based on detecting the UDF in the database query, the shared library produced by compiling the UDF;
- and
- execute the UDF via the shared library during the invocation of the database query, or another database query, in the interpreted database query engine.
A non-transitory computer-readable medium comprising code executable by one or more processors for executing a compiled user defined function (UDF) in an interpreted database query engine, the code comprising code for:
- receiving, from an interface, a database query that invokes a UDF defined in an interpreted programming language;
- producing a shared library of the UDF at least in part by:
- obtaining an object file compiled from the UDF;
- and
- modifying, in a function symbol table in the object file, a binding property and a visibility property of one or more function symbols that correspond to one or more functions to expose the one or more functions in the shared library;
- and
- executing a last compilation step of linking the object file to produce the shared library;
- loading, during database runtime, in a memory, and based on detecting the UDF in the database query, the shared library produced by compiling the UDF;
- and
- executing the UDF via the shared library during the invocation of the database query, or another database query, in the interpreted database query engine.
Dependencies are inferred from the claim text.