> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/server-usage/user-defined-functions.md).

# User-Defined Functions

{% columns %}
{% column %}
{% content-ref url="/pages/9nPbjBeNTNzhrOSqPsUl" %}
[User-Defined Functions Overview](/docs/server/server-usage/user-defined-functions/user-defined-functions-overview.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
An introduction to User-Defined Functions (UDFs) in MariaDB, explaining how they extend the server's functionality by adding new native-like functions.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/3oG4ipYCWFwQJMePVArg" %}
[Creating User-Defined Functions](/docs/server/server-usage/user-defined-functions/creating-user-defined-functions.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
A guide for developers on writing UDFs in C/C++, covering the required interface functions, memory allocation, and thread safety.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/e8SPHoKzwYpGk2iP84bp" %}
[CREATE FUNCTION UDF](/docs/server/server-usage/user-defined-functions/create-function-udf.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Install a user-defined function from a shared library. This command loads an external compiled function into the server for extended capabilities.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/1hUMNhsPFT8obmwDg4w1" %}
[DROP FUNCTION UDF](/docs/server/server-usage/user-defined-functions/drop-function-udf.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Documentation for the DROP FUNCTION statement, which uninstalls a UDF and removes its entry from the system table.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/SO3lMPnDwE0c4irxrN0n" %}
[User-Defined Functions Calling Sequences](/docs/server/server-usage/user-defined-functions/user-defined-functions-calling-sequences.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Technical details on the execution flow of UDFs, explaining the sequence in which initialization, processing, and de-initialization functions are called.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/a4WkMs0duu20ai9jmMoY" %}
[User-Defined Functions Security](/docs/server/server-usage/user-defined-functions/user-defined-functions-security.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Overview of security measures for UDFs, including file location restrictions, required privileges, and system variable configurations.
{% endcolumn %}
{% endcolumns %}
