CREATE ANALYTIC FUNCTION
Associates a user-defined analytic function (UDAnF) stored in a shared Linux library with a SQL function name. You must have already loaded the library containing the UDAnF using the CREATE LIBRARY statement. When you call the SQL function, Vertica passes the arguments to the analytic function in the library to process.
CREATE ANALYTIC FUNCTION automatically determines the parameters and return value for the function from data supplied by the factory class.
Vertica supports overloading analytic functions.
Syntax
CREATE [ OR REPLACE ] ANALYTIC FUNCTION function-name
... AS [ LANGUAGE 'language' ] NAME 'factory'
... LIBRARY library_name
... [ FENCED | NOT FENCED ];
Parameters
function‑name
|
The name to assign to the UDAnF. This is the name you use in your SQL statements to call the function. |
LANGUAGE 'language'
|
The language used to develop this function, one of the following:
|
NAME 'factory'
|
The name of the C++ factory class in the shared library that generates the object to handle the function's processing. |
LIBRARY library‑name
|
The name of the shared library that contains the C++ object to perform the processing for this function. This library must have been previously loaded using the CREATE LIBRARY statement. |
FENCED | NOT FENCED
|
Enables or disables Fenced Mode for this function. Default Value: |
Privileges
Non-superuser:
- CREATE privilege on the function's schema
- USAGE privilege on the function's library
Examples
This example shows how to create an analytic function named an_rank based on the factory class named RankFactory in the AnalyticFunctions library..
=> CREATE ANALYTIC FUNCTION an_rank AS LANGUAGE 'C++' NAME 'RankFactory' LIBRARY AnalyticFunctions;