Function Namespace Managers

Warn This feature is developing now. So some interfaces and configuration may be changed in the next version.

Introduction

Function Namespace Managers support storing external function, and the external functions which register from connectors will be stored in it. A function namespace is in the format of catalog.schema(For example:mysqlfun.default). It is only a schema for storing function, but not for storing table and view. Every function in openLooKeng, no matter built in function or external function, belongs to a function namespace catalog.schema. The built in function belong to presto.default. The external function belong to a function namespace which is supplied by the user, for example:mysqlfun.default. All of the built in function must be used with the function namespace omitted, for example:select count(*) from .... The external function must be used with a full qualified name, for example: select mysqlfun.default.format(...) from ....

Every instance of Function Namespace Manager related to a catalog, and manage all the function qualified by it. We suggest that do not use a same name as the Connector catalog.

Mount Function Namespace Manager Instance

If we want to mount a Function Namespace Manager Instance named mysqlfun, we can add a property file named etc/function-namespace/mysqlfun.properties which following contents:

    function-namespace-manager.name=memory
    supported-function-languages=JDBC

Now we only support Function Namespace Manager named memory. The function information stored in the manager will lose after we restart the openLooKeng. The configuration propertysupported-function-languages declare function kind the function manager support. Now we only support JDBC.

Mount Multiple Function Namespace Manager Instances

We need to add different property files to mount multiple function namespace managers to manage different catalog.

Register External Functions to Function Namespace Manager

Now openLooKeng support register external function from Jdbc Connector which extends from presto-base-jdbc. For more information, please refer to: External Function Registration and Push Down

External Function Push Down

Now openLooKeng support to push external function down to data source. For more information, please refer to: External Function Registration and Push Down

Notes External functions only support to push down to data source to execute. If an external function cannot push down to data source, the query with external function will fail.