Hi Everyone,

This is a discussion to gauge the community interest in storing the
Versioned SQL UDFs in Iceberg.
We want to propose the spec addition for storing the versioned UDFs in
Iceberg (inspired by view spec).

These UDFs can operate similarly to views in that they are associated with
tables, but they can accept arguments and produce return values, or even
function as inline expressions.
Many Query engines like Dremio, Trino, Snowflake, Databricks Spark supports
SQL UDFs at catalog level [1].
But storing them in Iceberg can enable
- Versioning of these UDFs.
- Interoperability between the engines. Potentially engines can understand
the UDFs written by other engines (with the translate layer).

We believe that integrating this feature into Iceberg would be a valuable
addition, and we're eager to collaborate with the community to develop a
UDF specification.
Stephen <stephen....@dremio.com> has already begun drafting a specification
to propose to the community.

Let us know your thoughts on this.

[1]
Dremio -
https://docs.dremio.com/current/reference/sql/commands/functions#creating-a-function
Trino - https://trino.io/docs/current/sql/create-function.html
Snowflake -
https://docs.snowflake.com/en/developer-guide/udf/sql/udf-sql-scalar-functions
Databricks -
https://docs.databricks.com/en/sql/language-manual/sql-ref-syntax-ddl-create-sql-function.html

- Ajantha

Reply via email to