Non-disruptive dynamic ad-hoc database catalog services
US-2020394191-A1 · Dec 17, 2020 · US
US12050602B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12050602-B2 |
| Application number | US-202117505741-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 20, 2021 |
| Priority date | Jun 14, 2019 |
| Publication date | Jul 30, 2024 |
| Grant date | Jul 30, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Approaches herein transparently delegate data access from a relational database management system (RDBMS) onto an offload engine (OE). The RDBMS receives a database statement referencing a user defined function (UDF). In an execution plan, the RDBMS replaces the UDF reference with an invocation of a relational operator in the OE. Execution invokes the relational operator in the OE to obtain a result based on data in the OE. Thus, the UDF is bound to the OE, and almost all of the RDBMS avoids specially handling the UDF. The UDF may be a table function that offloads a relational table for processing. User defined objects such as functions and types provide metadata about the table. Multiple tables can be offloaded and processed together, such that some or all offloaded tables are not materialized in the RDBMS. Offloaded tables may participate in standard relational algebra such as in a database statement.
Opening claim text (preview).
What is claimed is: 1. A method comprising: defining, in a database dictionary in a relational database management system (RDBMS), a user defined function (UDF); receiving a database statement that specifies an invocation of the UDF; generating, based on the database statement that specifies the invocation of the UDF, a tree that represents the database statement; and executing, without invoking the UDF, an execution plan that accesses data in an offload engine, wherein the execution plan is based on the tree that represents the database statement. 2. The method of claim 1 wherein the execution plan does not reference the UDF. 3. The method of claim 1 further comprising removing, from the execution plan, a reference to the UDF. 4. The method of claim 1 further comprising receiving, from the offload engine, said data formatted as one selected from a group consisting of: a scalar, a record, columnar data, and tabular data. 5. The method of claim 1 further comprising detecting that the execution plan will not cause more than a maximum count of operations in the offload engine. 6. The method of claim 1 further comprising sending, to the offload engine, at least one selected from a group consisting of: a single request to perform both of filtration and sorting, an integer that indicates an operation to perform, a request to detect a maximum value, a request to retrieve a computed scalar, a request to create a dictionary, a request to use a dictionary, an identifier of a table, tabular data, and compressed data. 7. The method of claim 6 wherein said sending the compressed data comprises sending, to the offload engine, data that comprises at least one selected from a group consisting of: dictionary encoded data and run length encoded (RLE) data. 8. The method of claim 6 wherein said sending the request to retrieve the computed scalar comprises sending, to the offload engine, a request to retrieve one selected from a group consisting of: a count of matching records, an average value of a column, and a Boolean that answers an EXISTS query. 9. The method of claim 1 wherein the UDF is a table function that returns a relational table. 10. The method of claim 9 further comprising: receiving a second database statement that specifies an invocation of same said UDF; accessing, for the second database statement, without accessing data in the offload engine, same said relational table that the UDF returns. 11. One or more computer-readable non-transitory media storing instructions that, when executed by one or more processors, cause: defining, in a database dictionary in a relational database management system (RDBMS), a user defined function (UDF); receiving a database statement that specifies an invocation of the UDF; generating, based on the database statement that specifies the invocation of the UDF, a tree that represents the database statement; and executing, without invoking the UDF, an execution plan that accesses data in an offload engine, wherein the execution plan is based on the tree that represents the database statement. 12. The one or more computer-readable non-transitory media of claim 1 wherein the execution plan does not reference the UDF. 13. The one or more computer-readable non-transitory media of claim 11 wherein the instructions further cause removing, from the execution plan, a reference to the UDF. 14. The one or more computer-readable non-transitory media of claim 11 wherein the instructions further cause receiving, from the offload engine, said data formatted as one selected from a group consisting of: a scalar, a record, columnar data, and tabular data. 15. The one or more computer-readable non-transitory media of claim 11 wherein the instructions further cause detecting that the execution plan will not cause more than a maximum count of operations in the offload engine. 16. The one or more computer-readable non-transitory media of claim 11 wherein the instructions further cause sending, to the offload engine, at least one selected from a group consisting of: a single request to perform both of filtration and sorting, an integer that indicates an operation to perform, a request to detect a maximum value, a request to retrieve a computed scalar, a request to create a dictionary, a request to use a dictionary, an identifier of a table, tabular data, and compressed data. 17. The one or more computer-readable non-transitory media of claim 16 wherein said sending the compressed data comprises sending, to the offload engine, data that comprises at least one selected from a group consisting of: dictionary encoded data and run length encoded (RLE) data. 18. The one or more computer-readable non-transitory media of claim 16 wherein said sending the request to retrieve the computed scalar comprises sending, to the offload engine, a request to retrieve one selected from a group consisting of: a count of matching records, an average value of a column, and a Boolean that answers an EXISTS query. 19. The one or more computer-readable non-transitory media of claim 11 wherein the UDF is a table function that returns a relational table. 20. The one or more computer-readable non-transitory media of claim 19 wherein the instructions further cause: receiving a second database statement that specifies an invocation of same said UDF; accessing, for the second database statement, without accessing data in the offload engine, same said relational table that the UDF returns.
Relational databases · CPC title
with details for data modelling support · CPC title
Plan optimisation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.