Hi Dev!

I would like to start a discussion on a new Flink Improvement Proposal,
FLIP-XXX: Make JAR keyword optional in CREATE FUNCTION's USING clause.

You can find the full proposal in the google doc
<https://docs.google.com/document/d/1M5_TiOLInGiUm27apDcfR9D1I6jRYZDCokYsV9mNJk0/edit?tab=t.0>
[1].

Here is a brief overview.

*Motivation*
The current DDL syntax for registering a UDF with a dependency, CREATE
FUNCTION ... USING JAR '...', is specific to Java/Scala artifacts. This
becomes semantically incorrect and restrictive as we improve support for
other languages, particularly for Python UDFs which may depend on wheels or
other archives.

This proposal aims to make the USING clause more generic and future-proof
by making the JAR keyword optional.


*Proposed Changes*
The implementation is confined to the Flink SQL parser. Focusing on
adjusting the grammar to recognize USING <string_literal> as a valid
clause, treating it identically to the existing USING JAR <string_literal>.
No changes are anticipated for the backend logic.

*Compatibility*

This change is fully backward compatible. All existing SQL scripts that use
the CREATE FUNCTION ... USING JAR '...' syntax will continue to work
without any modification. This proposal does not aim to deprecate the
explicit JAR keyword; it will remain as an optional clarifier.

Please take a look at the full proposal and share your thoughts and
feedback here on the mailing list.

Thanks,

Zander

[1]
https://docs.google.com/document/d/1M5_TiOLInGiUm27apDcfR9D1I6jRYZDCokYsV9mNJk0/edit?tab=t.0

Reply via email to