A SQL user-defined function (UDF) is a custom function authored by a Starburst Galaxy user and written in the SQL language. The syntax for SQL functions is described in the Galaxy SQL documentation, including some examples.
FUNCTION
so that they can be plugged into
either catalog or inline uses. You must preface such examples with CREATE
or
WITH
, as appropriate.galaxy
catalog #
Both inline and catalog UDFs are supported, as described in the SQL UDF
Introduction. In
Starburst Galaxy, catalog UDFs are stored in a global catalog named galaxy
that is automatically attached to each cluster in your account. Because galaxy
is a reserved word in Galaxy, it is not possible for a customer to
create a different catalog also named galaxy
.
The galaxy
catalog does not appear in the cluster explorer of the query
editor, but does appear in the catalog explorer, showing only an internal
information_schema
. You cannot create schemas, tables, or views in the
galaxy
catalog. Notice that the galaxy
catalog is not the same as the
galaxy_telemetry
catalog described
elsewhere.
To use the SQL UDF functionality, including to create,
delete, and show a list of functions, your current
role
must have the account-level privilege Create SQL routines
.
This privilege is not enabled by default for any role, including the
accountadmin
role, and must be explicitly added. Be sure to select the Allow
role receiving privilege slider before selecting the Create SQL routines
features checkbox, so that the accountadmin
role can pass the privilege on
to other roles as needed.
By default, the creator of a UDF is automatically granted permission to execute that routine, but no other role can run it by default. Each defined SQL UDF can be protected with a function-level privilege that allows or restricts its use to a particular role:
galaxy
.To see the list of SQL functions defined for an account, run the SHOW
FUNCTIONS
SQL statement as shown
here:
SHOW FUNCTIONS from galaxy.functions;
SHOW FUNCTIONS
without arguments displays a list of all functions, including
built-in functions and SQL UDFs.
To add a new SQL UDF to your account, use the CREATE
FUNCTION
statement. You can
also create an ephemeral inline SQL function in a WITH
block, as described in
the SQL UDF
introduction.
Notice that the FUNCTION
statement
includes a RETURNS
clause that is not the same as the
RETURN
statement. Use RETURNS
to
specify the data type of the returned value.
If a SQL UDF specifies a return type, you must include that data type when
using DROP FUNCTION
.
Is the information on this page helpful?
Yes
No